diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cbdac6666da10c7e0092d604e6eec625fccbd928..02eb22467f56319e16296528badbd15a5a893a4b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -107,9 +107,9 @@ build_MCU_MAC: - cd build/gnucxx11_opt - cmake -DBUILD_PACKAGES=$PACKAGE -DWINCC_ROOT_DIR=/opt/WinCC_OA/3.16/ -DBLITZ_ROOT_DIR=/opt/blitz/ -DCASACORE_ROOT_DIR=/opt/casacore/ -DCMAKE_INSTALL_PREFIX=/opt/lofar ../.. - make -j 12 - - make DESTDIR=${CI_BUILDS_DIR}/install install - - cd ${CI_BUILDS_DIR}/install/opt/lofar - - tar --ignore-failed-read --exclude=include -czf MCU_MAC_${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}.ztar * + - make DESTDIR=${CI_BUILDS_DIR}/${CI_COMMIT_SHORT_SHA}/install install + - cd ${CI_BUILDS_DIR}/${CI_COMMIT_SHORT_SHA}/install/opt/lofar + - tar --ignore-failed-read --exclude=include --exclude="*.ztar" -czf MCU_MAC_${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}.ztar * - curl --insecure --upload-file MCU_MAC_${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}.ztar -u upload:upload https://support.astron.nl/nexus/content/repositories/branches/nl/astron/lofar/${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}/MCU_MAC_${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}.x86_64.ztar dependencies: diff --git a/Docker/lofar-ci/Dockerfile_ci_sas b/Docker/lofar-ci/Dockerfile_ci_sas index 9ba900945658fc9770bcb51489e56ae6c8fdf8a6..106829eb48987c05e2cb8015386d5ddb1e600a0d 100644 --- a/Docker/lofar-ci/Dockerfile_ci_sas +++ b/Docker/lofar-ci/Dockerfile_ci_sas @@ -7,7 +7,7 @@ ARG BASE_VERSION=latest FROM ci_base:$BASE_VERSION RUN echo "Installing packages for SAS..." && \ - yum install -y log4cplus log4cplus-devel python3 python3-libs python3-devel boost readline-devel boost-devel binutils-devel boost-python36 boost-python36-devel gettext which openldap-devel git java-11-openjdk python-twisted-core + yum install -y log4cplus log4cplus-devel python3 python3-libs python3-devel boost readline-devel boost-devel binutils-devel boost-python36 boost-python36-devel gettext which openldap-devel git java-11-openjdk python-twisted-core graphviz # see https://www.postgresql.org/download/linux/redhat/ on how to install postgresql-server > 9.2 on centos7 RUN yum erase -y postgresql postgresql-server postgresql-devel && \ @@ -16,7 +16,7 @@ RUN yum erase -y postgresql postgresql-server postgresql-devel && \ cd /bin && ln -s /usr/pgsql-9.6/bin/initdb && ln -s /usr/pgsql-9.6/bin/postgres ENV PATH /usr/pgsql-9.6/bin:$PATH -RUN pip3 install cython kombu lxml requests pygcn xmljson mysql-connector-python python-dateutil Django==3.0.9 djangorestframework djangorestframework-xml ldap==1.0.2 flask fabric coverage python-qpid-proton PyGreSQL numpy h5py psycopg2 testing.postgresql Flask-Testing scipy Markdown django-filter python-ldap python-ldap-test ldap3 djangorestframework django-jsonforms django-json-widget django-jsoneditor drf-yasg flex swagger-spec-validator django-auth-ldap mozilla-django-oidc jsonschema comet +RUN pip3 install cython kombu lxml requests pygcn xmljson mysql-connector-python python-dateutil Django==3.0.9 djangorestframework djangorestframework-xml ldap==1.0.2 flask fabric coverage python-qpid-proton PyGreSQL numpy h5py psycopg2 testing.postgresql Flask-Testing scipy Markdown django-filter python-ldap python-ldap-test ldap3 djangorestframework django-jsonforms django-json-widget django-jsoneditor drf-yasg flex swagger-spec-validator django-auth-ldap mozilla-django-oidc jsonschema comet pyxb==1.2.5 graphviz isodate # Note: nodejs now comes with npm, do not install the npm package separately, since that will be taken from the epel repo and is conflicting. RUN echo "Installing Nodejs packages..." && \ diff --git a/LTA/sip/lib/CMakeLists.txt b/LTA/sip/lib/CMakeLists.txt index 38d1cb2703bd53045842fb58c9923fef2edee951..a9851a135a5f82c62c0110b5d802d191a95a2fe0 100644 --- a/LTA/sip/lib/CMakeLists.txt +++ b/LTA/sip/lib/CMakeLists.txt @@ -19,7 +19,6 @@ set(_py_files set(resource_files station_coordinates.conf - LTA-SIP.xsd ) diff --git a/LTA/sip/lib/constants.py b/LTA/sip/lib/constants.py index f46aa4e5eedc36e33ab501a828b0a0bb5ccea0bb..f26fb5d176601deaee29b06a5d803bab2f501cfd 100755 --- a/LTA/sip/lib/constants.py +++ b/LTA/sip/lib/constants.py @@ -40,6 +40,7 @@ DATAPRODUCTTYPE_SKY_IMAGE="Sky Image" DATAPRODUCTTYPE_SKY_MODEL="Sky Model" DATAPRODUCTTYPE_TRANSIENT_BUFFER_BOARD_DATA="Transient Buffer Board data" DATAPRODUCTTYPE_UNKNOWN="Unknown" +EQUINOXTYPE_AZELGEO="AZELGEO" EQUINOXTYPE_B1950="B1950" EQUINOXTYPE_J2000="J2000" EQUINOXTYPE_JUPITER="JUPITER" @@ -47,7 +48,9 @@ EQUINOXTYPE_SUN="SUN" FILEFORMATTYPE_AIPS___CASA="AIPS++/CASA" FILEFORMATTYPE_FITS="FITS" FILEFORMATTYPE_HDF5="HDF5" +FILEFORMATTYPE_PREFACTOR="PREFACTOR" FILEFORMATTYPE_PULP="PULP" +FILEFORMATTYPE_UNDOCUMENTED="UNDOCUMENTED" FILTERSELECTIONTYPE_10_70_MHZ="10-70 MHz" FILTERSELECTIONTYPE_10_90_MHZ="10-90 MHz" FILTERSELECTIONTYPE_110_190_MHZ="110-190 MHz" @@ -146,6 +149,11 @@ STATIONSELECTIONTYPE_SINGLE="Single" STATIONTYPETYPE_CORE="Core" STATIONTYPETYPE_INTERNATIONAL="International" STATIONTYPETYPE_REMOTE="Remote" +STORAGEWRITERTYPE_CASASTORAGEMANAGERS="CasaStorageManagers" +STORAGEWRITERTYPE_DYSCOSTORAGEMANAGER="DyscoStorageManager" +STORAGEWRITERTYPE_HDF5DEFAULT="HDF5Default" +STORAGEWRITERTYPE_LOFARSTORAGEMANAGER="LofarStorageManager" +STORAGEWRITERTYPE_UNKNOWN="Unknown" TELESCOPE_LOFAR="LOFAR" TIMESYSTEMTYPE_LST="LST" TIMESYSTEMTYPE_UTC="UTC" diff --git a/LTA/sip/lib/constants_generator.py b/LTA/sip/lib/constants_generator.py index 13897a3af39fb28a77850bbcae9d03d6fa5994f7..d5b055493b9c7004cda8cc734c52576597c84108 100755 --- a/LTA/sip/lib/constants_generator.py +++ b/LTA/sip/lib/constants_generator.py @@ -4,10 +4,12 @@ # enumerations in the XSD). These are dynamically retrieved from the pyxb-generated API module and in most cases can # just be rerun after pyxb to update the constants module after something has changed in the XSD schema definition. -from . import ltasip +import ltasip import inspect import pyxb #from collections import namedtuple +import logging +logger = logging.getLogger(__name__) VERSION = "SIPlib Constants Generator 0.1" @@ -75,7 +77,7 @@ def main(path): else: value = str(value) line = key+"="+value+"\n" - print(line, end=' ') + logger.info(line) f.write(line) diff --git a/LTA/sip/lib/feedback.py b/LTA/sip/lib/feedback.py index 1e9f15613d957d363061202c97d74e48ccfa487d..dc1a08be74f5c19c2c38693b785def1c5bc21108 100644 --- a/LTA/sip/lib/feedback.py +++ b/LTA/sip/lib/feedback.py @@ -1,5 +1,27 @@ #!/usr/bin/env python3 +# Copyright (C) 2012-2015 ASTRON (Netherlands Institute for Radio Astronomy) +# P.O. Box 2, 7990 AA Dwingeloo, The Netherlands +# +# This file is part of the LOFAR software suite. +# The LOFAR software suite is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# The LOFAR software suite is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with the LOFAR software suite. If not, see <http://www.gnu.org/licenses/>. + +# $Id: $ +# +# !!! This is a stub and needs significant work to be usable in practice !!! + + import sys import pprint from . import siplib @@ -8,14 +30,22 @@ from ast import literal_eval import datetime import copy import uuid +import logging +logger = logging.getLogger(__name__) +# Unfortunately storageWriter choices in XSD and Feedback differ... +storage_writer_mapping = {"CASA": constants.STORAGEWRITERTYPE_CASASTORAGEMANAGERS, + "DYSCO": constants.STORAGEWRITERTYPE_DYSCOSTORAGEMANAGER, + "HDF5DEFAULT": constants.STORAGEWRITERTYPE_HDF5DEFAULT, + "LOFAR": constants.STORAGEWRITERTYPE_LOFARSTORAGEMANAGER, + "UNKNOWN": constants.STORAGEWRITERTYPE_UNKNOWN} class Feedback(): def __init__(self, feedback): self.__inputstrings = feedback self.__tree = {} - print("parsing",len(feedback),"lines of feedback") + logger.info("parsing %s lines of feedback" % len(feedback)) for line in feedback: if line.strip() and not line.startswith("#"): try: @@ -30,7 +60,7 @@ class Feedback(): except: t[key.split('.')[-1]] = value.strip() except: - print("Skipping line:", line) + logger.info("Skipping line: %s" % line) # Now self.__tree holds nested dicts according to the dot-encoded key hierarchy #pprint.pprint(self.__tree) @@ -73,13 +103,11 @@ class Feedback(): prefixes = prefix.split(".") dps = self.__get_tree_elem(prefix) - #print dps.items() - dataproducts = [] dps = [(k, dp) for (k, dp) in list(dps.items()) if k.startswith("Output_")] for k, dp in dps: - print("Parsing",k,"...") + logger.info("Parsing %s..." % k) # correct timestamp format startt=dp.get("startTime") @@ -95,6 +123,8 @@ class Feedback(): size=dp.get("size"), filename=dp.get("filename"), fileformat=dp.get("fileFormat"), + storage_writer=storage_writer_mapping[dp.get("storageWriter")], + storage_writer_version=dp.get("storageWriterVersion"), process_identifier=process_identifier, ), subarraypointing_identifier=subarraypointing_identifier, @@ -114,17 +144,19 @@ class Feedback(): elif k.startswith("Output_Beamformed_["): beamlist=None - dataproduct = siplib.BeamFormedDataProduct( + dataproducts.append(siplib.BeamFormedDataProduct( siplib.DataProductMap( type="Correlator data", identifier=siplib.Identifier('identifier_source'), size=dp.get("size"), filename=dp.get("filename"), fileformat=dp.get("fileFormat"), + storage_writer=dp.get("storageWriter"), + storage_writer_version=dp.get("storageWriterVersion"), process_identifier=process_identifier ), beams=beamlist - ) + )) # todo other dataproduct types (if helpful, this is kind of prefactor specific for now) return dataproducts @@ -137,7 +169,7 @@ class Feedback(): if elem.get(prefix): elem = elem.get(prefix) else: - print("provided prefix seems to be wrong: '"+prefix+"' not in", list(elem.keys())) + logger.info("provided prefix seems to be wrong: %s not in %s" % (prefix, list(elem.keys()))) return elem @@ -151,7 +183,7 @@ class Feedback(): # todo: After evaluation, if still applicable, check assumptions made for missing attributes, assign new IDs, etc. def get_dataproduct_sips(self, obs_prefix="ObsSW.Observation", dp_prefix="ObsSW.Observation.DataProducts"): - print("Generating SIPs for all dataproducts") + logger.info("Generating SIPs for all dataproducts") obs = self.__get_tree_elem(obs_prefix) dps = self.__get_tree_elem(dp_prefix) @@ -271,9 +303,10 @@ class Feedback(): # create sip for each dataproduct sips = {} for dataproduct in self.get_dataproducts(prefix=dp_prefix): + filename = None try: - filename = dataproduct.get_pyxb_dataproduct().fileName - print("Creating SIP for", filename) + filename = dataproduct._get_pyxb_dataproduct().fileName + logger.info("Creating SIP for %s" % filename) # create SIP document for dataproduct sip = self.__get_basic_sip(dataproduct) @@ -322,7 +355,7 @@ class Feedback(): except Exception as err: if not filename: filename = "UNDEFINED" - print("Could not create SIP for", filename,"->",err) + logger.info("Could not create SIP for %s -> %s" % (filename,err)) if sips: return sips @@ -331,7 +364,7 @@ class Feedback(): def example(fil): - print("Now running example on file", fil) + logger.info("Now running example on file %s" % fil) with open(fil) as f: text = f.readlines() @@ -340,7 +373,7 @@ def example(fil): # A) Parse complete SIP: sips = feedback.get_dataproduct_sips(obs_prefix="ObsSW.Observation", dp_prefix="Observation.DataProducts") for key in list(sips.keys()): - print("Created SIP for file "+ str(key)) + logger.info("Created SIP for file %s" %key) # B) Alternatively: Parse dataproducts from pseudo-feedback (specialty of Leiden group): @@ -378,8 +411,8 @@ def example(fil): def main(argv): - print("! This is a stub, the feedback to SIP conversion is not correctly working at this point.") - print("! You may use this as a module to do some feedback parsing, but unfortunately not all information can be determined from feedback to create a valid SIP.") + logger.warning("! This is a stub, the feedback to SIP conversion is not correctly working at this point.") + logger.warning("! You may use this as a module to do some feedback parsing, but unfortunately not all information can be determined from feedback to create a valid SIP.") if argv[1] is not None: example(argv[1]) diff --git a/LTA/sip/lib/ltasip.py b/LTA/sip/lib/ltasip.py index 5f457d208a3ac34c55bdef6a6caf26fbbb4868db..fa23581b10cd57389cf39849f18ef9ea8b92ecae 100644 --- a/LTA/sip/lib/ltasip.py +++ b/LTA/sip/lib/ltasip.py @@ -1,10 +1,10 @@ # ./ltasip.py # -*- coding: utf-8 -*- # PyXB bindings for NM:4d7a8ef1458fc65d34d2aea044869f9c907a2072 -# Generated 2017-04-05 12:06:22.893714 by PyXB version 1.2.5 using Python 2.7.6.final.0 +# Generated 2020-08-07 07:06:30.537748 by PyXB version 1.2.5 using Python 3.6.8.final.0 # Namespace http://www.astron.nl/SIP-Lofar - +from __future__ import unicode_literals import pyxb import pyxb.binding import pyxb.binding.saxer @@ -14,7 +14,7 @@ import pyxb.utils.domutils import sys import pyxb.utils.six as _six # Unique identifier for bindings created at the same time -_GenerationUID = pyxb.utils.utility.UniqueIdentifier('urn:uuid:8579f6ca-19e7-11e7-9dbf-28d2444d27e5') +_GenerationUID = pyxb.utils.utility.UniqueIdentifier('urn:uuid:84ba4972-d87c-11ea-a91f-0242ac110001') # Version of PyXB used to generate the bindings _PyXBVersion = '1.2.5' @@ -82,7 +82,7 @@ class FrequencyUnit (pyxb.binding.datatypes.string, pyxb.binding.basis.enumerati """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'FrequencyUnit') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 24, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 24, 1) _Documentation = None FrequencyUnit._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=FrequencyUnit, enum_prefix=None) FrequencyUnit.Hz = FrequencyUnit._CF_enumeration.addEnumeration(unicode_value='Hz', tag='Hz') @@ -99,7 +99,7 @@ class LengthUnit (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_ """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'LengthUnit') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 39, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 39, 1) _Documentation = None LengthUnit._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=LengthUnit, enum_prefix=None) LengthUnit.m = LengthUnit._CF_enumeration.addEnumeration(unicode_value='m', tag='m') @@ -114,7 +114,7 @@ class TimeUnit (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mi """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'TimeUnit') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 52, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 52, 1) _Documentation = None TimeUnit._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=TimeUnit, enum_prefix=None) TimeUnit.s = TimeUnit._CF_enumeration.addEnumeration(unicode_value='s', tag='s') @@ -131,7 +131,7 @@ class AngleUnit (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_m """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'AngleUnit') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 67, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 67, 1) _Documentation = None AngleUnit._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=AngleUnit, enum_prefix=None) AngleUnit.radians = AngleUnit._CF_enumeration.addEnumeration(unicode_value='radians', tag='radians') @@ -147,7 +147,7 @@ class PixelUnit (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_m """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'PixelUnit') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 81, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 81, 1) _Documentation = None PixelUnit._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=PixelUnit, enum_prefix=None) PixelUnit.Jybeam = PixelUnit._CF_enumeration.addEnumeration(unicode_value='Jy/beam', tag='Jybeam') @@ -162,7 +162,7 @@ class ListOfDouble (pyxb.binding.basis.STD_list): """Simple type that is a list of pyxb.binding.datatypes.double.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'ListOfDouble') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 93, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 93, 1) _Documentation = None _ItemType = pyxb.binding.datatypes.double @@ -177,7 +177,7 @@ class ListOfString (pyxb.binding.basis.STD_list): """Simple type that is a list of pyxb.binding.datatypes.string.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'ListOfString') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 96, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 96, 1) _Documentation = None _ItemType = pyxb.binding.datatypes.string @@ -192,7 +192,7 @@ class ListOfSubbands (pyxb.binding.basis.STD_list): """Simple type that is a list of pyxb.binding.datatypes.unsignedShort.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'ListOfSubbands') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 99, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 99, 1) _Documentation = None _ItemType = pyxb.binding.datatypes.unsignedShort @@ -206,13 +206,14 @@ class EquinoxType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'EquinoxType') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 120, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 120, 1) _Documentation = None EquinoxType._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=EquinoxType, enum_prefix=None) EquinoxType.B1950 = EquinoxType._CF_enumeration.addEnumeration(unicode_value='B1950', tag='B1950') EquinoxType.J2000 = EquinoxType._CF_enumeration.addEnumeration(unicode_value='J2000', tag='J2000') EquinoxType.SUN = EquinoxType._CF_enumeration.addEnumeration(unicode_value='SUN', tag='SUN') EquinoxType.JUPITER = EquinoxType._CF_enumeration.addEnumeration(unicode_value='JUPITER', tag='JUPITER') +EquinoxType.AZELGEO = EquinoxType._CF_enumeration.addEnumeration(unicode_value='AZELGEO', tag='AZELGEO') EquinoxType._InitializeFacetMap(EquinoxType._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'EquinoxType', EquinoxType) _module_typeBindings.EquinoxType = EquinoxType @@ -223,7 +224,7 @@ class STD_ANON (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mi """An atomic simple type.""" _ExpandedName = None - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 158, 4) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 159, 4) _Documentation = None STD_ANON._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=STD_ANON, enum_prefix=None) STD_ANON.WGS84 = STD_ANON._CF_enumeration.addEnumeration(unicode_value='WGS84', tag='WGS84') @@ -238,7 +239,7 @@ class AntennaFieldType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumer """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'AntennaFieldType') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 186, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 187, 1) _Documentation = None AntennaFieldType._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=AntennaFieldType, enum_prefix=None) AntennaFieldType.HBA0 = AntennaFieldType._CF_enumeration.addEnumeration(unicode_value='HBA0', tag='HBA0') @@ -255,7 +256,7 @@ class StationTypeType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumera """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'StationTypeType') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 197, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 198, 1) _Documentation = None StationTypeType._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=StationTypeType, enum_prefix=None) StationTypeType.Core = StationTypeType._CF_enumeration.addEnumeration(unicode_value='Core', tag='Core') @@ -271,7 +272,7 @@ class ProcessRelationType (pyxb.binding.datatypes.string, pyxb.binding.basis.enu """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'ProcessRelationType') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 239, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 240, 1) _Documentation = None ProcessRelationType._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=ProcessRelationType, enum_prefix=None) ProcessRelationType.GroupID = ProcessRelationType._CF_enumeration.addEnumeration(unicode_value='GroupID', tag='GroupID') @@ -285,7 +286,7 @@ class FilterSelectionType (pyxb.binding.datatypes.string, pyxb.binding.basis.enu """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'FilterSelectionType') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 274, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 275, 1) _Documentation = None FilterSelectionType._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=FilterSelectionType, enum_prefix=None) FilterSelectionType.n10_70_MHz = FilterSelectionType._CF_enumeration.addEnumeration(unicode_value='10-70 MHz', tag='n10_70_MHz') @@ -305,7 +306,7 @@ class STD_ANON_ (pyxb.binding.datatypes.double, pyxb.binding.basis.enumeration_m """An atomic simple type.""" _ExpandedName = None - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 285, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 286, 1) _Documentation = None STD_ANON_._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=STD_ANON_, enum_prefix=None) STD_ANON_._CF_enumeration.addEnumeration(unicode_value='160', tag=None) @@ -319,7 +320,7 @@ class AntennaSetType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumerat """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'AntennaSetType') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 294, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 295, 1) _Documentation = None AntennaSetType._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=AntennaSetType, enum_prefix=None) AntennaSetType.HBA_Zero = AntennaSetType._CF_enumeration.addEnumeration(unicode_value='HBA Zero', tag='HBA_Zero') @@ -346,7 +347,7 @@ class StationSelectionType (pyxb.binding.datatypes.string, pyxb.binding.basis.en """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'StationSelectionType') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 312, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 313, 1) _Documentation = None StationSelectionType._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=StationSelectionType, enum_prefix=None) StationSelectionType.Single = StationSelectionType._CF_enumeration.addEnumeration(unicode_value='Single', tag='Single') @@ -364,7 +365,7 @@ class ObservingModeType (pyxb.binding.datatypes.string, pyxb.binding.basis.enume """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'ObservingModeType') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 321, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 322, 1) _Documentation = None ObservingModeType._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=ObservingModeType, enum_prefix=None) ObservingModeType.Interferometer = ObservingModeType._CF_enumeration.addEnumeration(unicode_value='Interferometer', tag='Interferometer') @@ -384,7 +385,7 @@ class TimeSystemType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumerat """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'TimeSystemType') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 332, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 333, 1) _Documentation = None TimeSystemType._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=TimeSystemType, enum_prefix=None) TimeSystemType.UTC = TimeSystemType._CF_enumeration.addEnumeration(unicode_value='UTC', tag='UTC') @@ -399,7 +400,7 @@ class ProcessingType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumerat """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'ProcessingType') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 420, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 421, 1) _Documentation = None ProcessingType._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=ProcessingType, enum_prefix=None) ProcessingType.Correlator = ProcessingType._CF_enumeration.addEnumeration(unicode_value='Correlator', tag='Correlator') @@ -417,7 +418,7 @@ class MeasurementType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumera """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'MeasurementType') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 429, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 430, 1) _Documentation = None MeasurementType._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=MeasurementType, enum_prefix=None) MeasurementType.Test = MeasurementType._CF_enumeration.addEnumeration(unicode_value='Test', tag='Test') @@ -436,7 +437,7 @@ class PulsarSelectionType (pyxb.binding.datatypes.string, pyxb.binding.basis.enu """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'PulsarSelectionType') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 647, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 648, 1) _Documentation = None PulsarSelectionType._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=PulsarSelectionType, enum_prefix=None) PulsarSelectionType.Pulsars_in_observation_specs_file_or_SAP = PulsarSelectionType._CF_enumeration.addEnumeration(unicode_value='Pulsars in observation specs, file or SAP', tag='Pulsars_in_observation_specs_file_or_SAP') @@ -457,7 +458,7 @@ class DataProductType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumera """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'DataProductType') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 705, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 706, 1) _Documentation = None DataProductType._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=DataProductType, enum_prefix=None) DataProductType.Correlator_data = DataProductType._CF_enumeration.addEnumeration(unicode_value='Correlator data', tag='Correlator_data') @@ -483,7 +484,7 @@ class ChecksumAlgorithm (pyxb.binding.datatypes.string, pyxb.binding.basis.enume """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'ChecksumAlgorithm') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 722, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 723, 1) _Documentation = None ChecksumAlgorithm._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=ChecksumAlgorithm, enum_prefix=None) ChecksumAlgorithm.MD5 = ChecksumAlgorithm._CF_enumeration.addEnumeration(unicode_value='MD5', tag='MD5') @@ -498,7 +499,7 @@ class FileFormatType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumerat """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'FileFormatType') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 742, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 743, 1) _Documentation = None FileFormatType._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=FileFormatType, enum_prefix=None) FileFormatType.FITS = FileFormatType._CF_enumeration.addEnumeration(unicode_value='FITS', tag='FITS') @@ -511,13 +512,31 @@ FileFormatType._InitializeFacetMap(FileFormatType._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'FileFormatType', FileFormatType) _module_typeBindings.FileFormatType = FileFormatType +# Atomic simple type: {http://www.astron.nl/SIP-Lofar}StorageWriterType +class StorageWriterType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): + + """An atomic simple type.""" + + _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'StorageWriterType') + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 753, 2) + _Documentation = None +StorageWriterType._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=StorageWriterType, enum_prefix=None) +StorageWriterType.LofarStorageManager = StorageWriterType._CF_enumeration.addEnumeration(unicode_value='LofarStorageManager', tag='LofarStorageManager') +StorageWriterType.CasaStorageManagers = StorageWriterType._CF_enumeration.addEnumeration(unicode_value='CasaStorageManagers', tag='CasaStorageManagers') +StorageWriterType.DyscoStorageManager = StorageWriterType._CF_enumeration.addEnumeration(unicode_value='DyscoStorageManager', tag='DyscoStorageManager') +StorageWriterType.HDF5Default = StorageWriterType._CF_enumeration.addEnumeration(unicode_value='HDF5Default', tag='HDF5Default') +StorageWriterType.Unknown = StorageWriterType._CF_enumeration.addEnumeration(unicode_value='Unknown', tag='Unknown') +StorageWriterType._InitializeFacetMap(StorageWriterType._CF_enumeration) +Namespace.addCategoryObject('typeBinding', 'StorageWriterType', StorageWriterType) +_module_typeBindings.StorageWriterType = StorageWriterType + # Atomic simple type: {http://www.astron.nl/SIP-Lofar}PolarizationType class PolarizationType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'PolarizationType') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 764, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 774, 1) _Documentation = None PolarizationType._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=PolarizationType, enum_prefix=None) PolarizationType.None_ = PolarizationType._CF_enumeration.addEnumeration(unicode_value='None', tag='None_') @@ -547,7 +566,7 @@ class PulsarPipelineDataType (pyxb.binding.datatypes.string, pyxb.binding.basis. """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'PulsarPipelineDataType') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 939, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 951, 1) _Documentation = None PulsarPipelineDataType._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=PulsarPipelineDataType, enum_prefix=None) PulsarPipelineDataType.CoherentStokes = PulsarPipelineDataType._CF_enumeration.addEnumeration(unicode_value='CoherentStokes', tag='CoherentStokes') @@ -566,7 +585,7 @@ class RaDecSystem (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'RaDecSystem') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1023, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1035, 1) _Documentation = None RaDecSystem._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=RaDecSystem, enum_prefix=None) RaDecSystem.ICRS = RaDecSystem._CF_enumeration.addEnumeration(unicode_value='ICRS', tag='ICRS') @@ -584,7 +603,7 @@ class LocationFrame (pyxb.binding.datatypes.string, pyxb.binding.basis.enumerati """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'LocationFrame') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1032, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1044, 1) _Documentation = None LocationFrame._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=LocationFrame, enum_prefix=None) LocationFrame.GEOCENTER = LocationFrame._CF_enumeration.addEnumeration(unicode_value='GEOCENTER', tag='GEOCENTER') @@ -606,7 +625,7 @@ class SpectralQuantityType (pyxb.binding.datatypes.string, pyxb.binding.basis.en """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'SpectralQuantityType') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1067, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1079, 1) _Documentation = None SpectralQuantityType._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=SpectralQuantityType, enum_prefix=None) SpectralQuantityType.Frequency = SpectralQuantityType._CF_enumeration.addEnumeration(unicode_value='Frequency', tag='Frequency') @@ -629,7 +648,7 @@ class Telescope (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_m """An atomic simple type.""" _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'Telescope') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1180, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1192, 1) _Documentation = None Telescope._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=Telescope, enum_prefix=None) Telescope.LOFAR = Telescope._CF_enumeration.addEnumeration(unicode_value='LOFAR', tag='LOFAR') @@ -644,20 +663,20 @@ class ListOfFrequencies (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'ListOfFrequencies') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 102, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 102, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element frequencies uses Python identifier frequencies - __frequencies = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'frequencies'), 'frequencies', '__httpwww_astron_nlSIP_Lofar_ListOfFrequencies_frequencies', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 104, 3), ) + __frequencies = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'frequencies'), 'frequencies', '__httpwww_astron_nlSIP_Lofar_ListOfFrequencies_frequencies', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 104, 3), ) frequencies = property(__frequencies.value, __frequencies.set, None, None) # Element unit uses Python identifier unit - __unit = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'unit'), 'unit', '__httpwww_astron_nlSIP_Lofar_ListOfFrequencies_unit', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 105, 3), ) + __unit = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'unit'), 'unit', '__httpwww_astron_nlSIP_Lofar_ListOfFrequencies_unit', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 105, 3), ) unit = property(__unit.value, __unit.set, None, None) @@ -680,34 +699,34 @@ class IdentifierType (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'IdentifierType') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 112, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 112, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element source uses Python identifier source - __source = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'source'), 'source', '__httpwww_astron_nlSIP_Lofar_IdentifierType_source', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 114, 3), ) + __source = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'source'), 'source', '__httpwww_astron_nlSIP_Lofar_IdentifierType_source', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 114, 3), ) source = property(__source.value, __source.set, None, None) # Element identifier uses Python identifier identifier - __identifier = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'identifier'), 'identifier', '__httpwww_astron_nlSIP_Lofar_IdentifierType_identifier', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 115, 3), ) + __identifier = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'identifier'), 'identifier', '__httpwww_astron_nlSIP_Lofar_IdentifierType_identifier', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 115, 3), ) identifier = property(__identifier.value, __identifier.set, None, None) # Element name uses Python identifier name - __name = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'name'), 'name', '__httpwww_astron_nlSIP_Lofar_IdentifierType_name', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 116, 3), ) + __name = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'name'), 'name', '__httpwww_astron_nlSIP_Lofar_IdentifierType_name', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 116, 3), ) name = property(__name.value, __name.set, None, None) # Element label uses Python identifier label - __label = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'label'), 'label', '__httpwww_astron_nlSIP_Lofar_IdentifierType_label', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 117, 12), ) + __label = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'label'), 'label', '__httpwww_astron_nlSIP_Lofar_IdentifierType_label', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 117, 12), ) label = property(__label.value, __label.set, None, None) @@ -732,41 +751,41 @@ class Pointing (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'Pointing') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 131, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 132, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element rightAscension uses Python identifier rightAscension - __rightAscension = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'rightAscension'), 'rightAscension', '__httpwww_astron_nlSIP_Lofar_Pointing_rightAscension', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 134, 4), ) + __rightAscension = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'rightAscension'), 'rightAscension', '__httpwww_astron_nlSIP_Lofar_Pointing_rightAscension', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 135, 4), ) rightAscension = property(__rightAscension.value, __rightAscension.set, None, None) # Element azimuth uses Python identifier azimuth - __azimuth = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'azimuth'), 'azimuth', '__httpwww_astron_nlSIP_Lofar_Pointing_azimuth', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 135, 4), ) + __azimuth = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'azimuth'), 'azimuth', '__httpwww_astron_nlSIP_Lofar_Pointing_azimuth', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 136, 4), ) azimuth = property(__azimuth.value, __azimuth.set, None, None) # Element declination uses Python identifier declination - __declination = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'declination'), 'declination', '__httpwww_astron_nlSIP_Lofar_Pointing_declination', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 138, 4), ) + __declination = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'declination'), 'declination', '__httpwww_astron_nlSIP_Lofar_Pointing_declination', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 139, 4), ) declination = property(__declination.value, __declination.set, None, None) # Element altitude uses Python identifier altitude - __altitude = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'altitude'), 'altitude', '__httpwww_astron_nlSIP_Lofar_Pointing_altitude', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 139, 4), ) + __altitude = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'altitude'), 'altitude', '__httpwww_astron_nlSIP_Lofar_Pointing_altitude', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 140, 4), ) altitude = property(__altitude.value, __altitude.set, None, None) # Element equinox uses Python identifier equinox - __equinox = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'equinox'), 'equinox', '__httpwww_astron_nlSIP_Lofar_Pointing_equinox', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 141, 3), ) + __equinox = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'equinox'), 'equinox', '__httpwww_astron_nlSIP_Lofar_Pointing_equinox', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 142, 3), ) equinox = property(__equinox.value, __equinox.set, None, None) @@ -792,55 +811,55 @@ class Coordinates (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'Coordinates') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 155, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 156, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element coordinateSystem uses Python identifier coordinateSystem - __coordinateSystem = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'coordinateSystem'), 'coordinateSystem', '__httpwww_astron_nlSIP_Lofar_Coordinates_coordinateSystem', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 157, 3), ) + __coordinateSystem = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'coordinateSystem'), 'coordinateSystem', '__httpwww_astron_nlSIP_Lofar_Coordinates_coordinateSystem', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 158, 3), ) coordinateSystem = property(__coordinateSystem.value, __coordinateSystem.set, None, None) # Element x uses Python identifier x - __x = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'x'), 'x', '__httpwww_astron_nlSIP_Lofar_Coordinates_x', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 168, 5), ) + __x = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'x'), 'x', '__httpwww_astron_nlSIP_Lofar_Coordinates_x', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 169, 5), ) x = property(__x.value, __x.set, None, None) # Element y uses Python identifier y - __y = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'y'), 'y', '__httpwww_astron_nlSIP_Lofar_Coordinates_y', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 169, 5), ) + __y = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'y'), 'y', '__httpwww_astron_nlSIP_Lofar_Coordinates_y', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 170, 5), ) y = property(__y.value, __y.set, None, None) # Element z uses Python identifier z - __z = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'z'), 'z', '__httpwww_astron_nlSIP_Lofar_Coordinates_z', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 170, 5), ) + __z = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'z'), 'z', '__httpwww_astron_nlSIP_Lofar_Coordinates_z', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 171, 5), ) z = property(__z.value, __z.set, None, None) # Element radius uses Python identifier radius - __radius = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'radius'), 'radius', '__httpwww_astron_nlSIP_Lofar_Coordinates_radius', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 173, 5), ) + __radius = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'radius'), 'radius', '__httpwww_astron_nlSIP_Lofar_Coordinates_radius', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 174, 5), ) radius = property(__radius.value, __radius.set, None, None) # Element longitude uses Python identifier longitude - __longitude = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'longitude'), 'longitude', '__httpwww_astron_nlSIP_Lofar_Coordinates_longitude', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 174, 5), ) + __longitude = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'longitude'), 'longitude', '__httpwww_astron_nlSIP_Lofar_Coordinates_longitude', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 175, 5), ) longitude = property(__longitude.value, __longitude.set, None, None) # Element latitude uses Python identifier latitude - __latitude = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'latitude'), 'latitude', '__httpwww_astron_nlSIP_Lofar_Coordinates_latitude', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 175, 5), ) + __latitude = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'latitude'), 'latitude', '__httpwww_astron_nlSIP_Lofar_Coordinates_latitude', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 176, 5), ) latitude = property(__latitude.value, __latitude.set, None, None) @@ -868,20 +887,20 @@ class AntennaField (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'AntennaField') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 204, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 205, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element name uses Python identifier name - __name = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'name'), 'name', '__httpwww_astron_nlSIP_Lofar_AntennaField_name', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 206, 3), ) + __name = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'name'), 'name', '__httpwww_astron_nlSIP_Lofar_AntennaField_name', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 207, 3), ) name = property(__name.value, __name.set, None, None) # Element location uses Python identifier location - __location = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'location'), 'location', '__httpwww_astron_nlSIP_Lofar_AntennaField_location', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 207, 3), ) + __location = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'location'), 'location', '__httpwww_astron_nlSIP_Lofar_AntennaField_location', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 208, 3), ) location = property(__location.value, __location.set, None, None) @@ -904,13 +923,13 @@ class Stations (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'Stations') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 210, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 211, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element station uses Python identifier station - __station = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'station'), 'station', '__httpwww_astron_nlSIP_Lofar_Stations_station', True, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 212, 3), ) + __station = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'station'), 'station', '__httpwww_astron_nlSIP_Lofar_Stations_station', True, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 213, 3), ) station = property(__station.value, __station.set, None, None) @@ -932,27 +951,27 @@ class Station (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'Station') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 218, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 219, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element name uses Python identifier name - __name = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'name'), 'name', '__httpwww_astron_nlSIP_Lofar_Station_name', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 220, 3), ) + __name = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'name'), 'name', '__httpwww_astron_nlSIP_Lofar_Station_name', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 221, 3), ) name = property(__name.value, __name.set, None, None) # Element stationType uses Python identifier stationType - __stationType = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'stationType'), 'stationType', '__httpwww_astron_nlSIP_Lofar_Station_stationType', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 221, 3), ) + __stationType = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'stationType'), 'stationType', '__httpwww_astron_nlSIP_Lofar_Station_stationType', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 222, 3), ) stationType = property(__stationType.value, __stationType.set, None, None) # Element antennaField uses Python identifier antennaField - __antennaField = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'antennaField'), 'antennaField', '__httpwww_astron_nlSIP_Lofar_Station_antennaField', True, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 222, 3), ) + __antennaField = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'antennaField'), 'antennaField', '__httpwww_astron_nlSIP_Lofar_Station_antennaField', True, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 223, 3), ) antennaField = property(__antennaField.value, __antennaField.set, None, None) @@ -976,27 +995,27 @@ class ProcessRelation (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'ProcessRelation') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 244, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 245, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element relationType uses Python identifier relationType - __relationType = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'relationType'), 'relationType', '__httpwww_astron_nlSIP_Lofar_ProcessRelation_relationType', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 246, 3), ) + __relationType = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'relationType'), 'relationType', '__httpwww_astron_nlSIP_Lofar_ProcessRelation_relationType', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 247, 3), ) relationType = property(__relationType.value, __relationType.set, None, None) # Element identifier uses Python identifier identifier - __identifier = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'identifier'), 'identifier', '__httpwww_astron_nlSIP_Lofar_ProcessRelation_identifier', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 247, 3), ) + __identifier = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'identifier'), 'identifier', '__httpwww_astron_nlSIP_Lofar_ProcessRelation_identifier', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 248, 3), ) identifier = property(__identifier.value, __identifier.set, None, None) # Element name uses Python identifier name - __name = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'name'), 'name', '__httpwww_astron_nlSIP_Lofar_ProcessRelation_name', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 248, 3), ) + __name = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'name'), 'name', '__httpwww_astron_nlSIP_Lofar_ProcessRelation_name', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 249, 3), ) name = property(__name.value, __name.set, None, None) @@ -1020,13 +1039,13 @@ class ProcessRelations (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'ProcessRelations') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 251, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 252, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element relation uses Python identifier relation - __relation = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'relation'), 'relation', '__httpwww_astron_nlSIP_Lofar_ProcessRelations_relation', True, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 253, 3), ) + __relation = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'relation'), 'relation', '__httpwww_astron_nlSIP_Lofar_ProcessRelations_relation', True, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 254, 3), ) relation = property(__relation.value, __relation.set, None, None) @@ -1048,62 +1067,62 @@ class Process (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'Process') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 256, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 257, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element processIdentifier uses Python identifier processIdentifier - __processIdentifier = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'processIdentifier'), 'processIdentifier', '__httpwww_astron_nlSIP_Lofar_Process_processIdentifier', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 258, 3), ) + __processIdentifier = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'processIdentifier'), 'processIdentifier', '__httpwww_astron_nlSIP_Lofar_Process_processIdentifier', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 259, 3), ) processIdentifier = property(__processIdentifier.value, __processIdentifier.set, None, None) # Element observationId uses Python identifier observationId - __observationId = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'observationId'), 'observationId', '__httpwww_astron_nlSIP_Lofar_Process_observationId', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 259, 3), ) + __observationId = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'observationId'), 'observationId', '__httpwww_astron_nlSIP_Lofar_Process_observationId', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 260, 3), ) observationId = property(__observationId.value, __observationId.set, None, None) # Element parset uses Python identifier parset - __parset = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'parset'), 'parset', '__httpwww_astron_nlSIP_Lofar_Process_parset', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3), ) + __parset = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'parset'), 'parset', '__httpwww_astron_nlSIP_Lofar_Process_parset', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3), ) parset = property(__parset.value, __parset.set, None, None) # Element strategyName uses Python identifier strategyName - __strategyName = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'strategyName'), 'strategyName', '__httpwww_astron_nlSIP_Lofar_Process_strategyName', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 261, 3), ) + __strategyName = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'strategyName'), 'strategyName', '__httpwww_astron_nlSIP_Lofar_Process_strategyName', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 262, 3), ) strategyName = property(__strategyName.value, __strategyName.set, None, None) # Element strategyDescription uses Python identifier strategyDescription - __strategyDescription = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'strategyDescription'), 'strategyDescription', '__httpwww_astron_nlSIP_Lofar_Process_strategyDescription', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 262, 3), ) + __strategyDescription = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'strategyDescription'), 'strategyDescription', '__httpwww_astron_nlSIP_Lofar_Process_strategyDescription', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 263, 3), ) strategyDescription = property(__strategyDescription.value, __strategyDescription.set, None, None) # Element startTime uses Python identifier startTime - __startTime = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'startTime'), 'startTime', '__httpwww_astron_nlSIP_Lofar_Process_startTime', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 263, 3), ) + __startTime = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'startTime'), 'startTime', '__httpwww_astron_nlSIP_Lofar_Process_startTime', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 264, 3), ) startTime = property(__startTime.value, __startTime.set, None, None) # Element duration uses Python identifier duration - __duration = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'duration'), 'duration', '__httpwww_astron_nlSIP_Lofar_Process_duration', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 264, 3), ) + __duration = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'duration'), 'duration', '__httpwww_astron_nlSIP_Lofar_Process_duration', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 265, 3), ) duration = property(__duration.value, __duration.set, None, None) # Element relations uses Python identifier relations - __relations = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'relations'), 'relations', '__httpwww_astron_nlSIP_Lofar_Process_relations', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 265, 3), ) + __relations = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'relations'), 'relations', '__httpwww_astron_nlSIP_Lofar_Process_relations', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 266, 3), ) relations = property(__relations.value, __relations.set, None, None) @@ -1132,41 +1151,41 @@ class Processing (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'Processing') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 439, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 440, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element correlator uses Python identifier correlator - __correlator = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'correlator'), 'correlator', '__httpwww_astron_nlSIP_Lofar_Processing_correlator', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 441, 3), ) + __correlator = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'correlator'), 'correlator', '__httpwww_astron_nlSIP_Lofar_Processing_correlator', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 442, 3), ) correlator = property(__correlator.value, __correlator.set, None, None) # Element coherentStokes uses Python identifier coherentStokes - __coherentStokes = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'coherentStokes'), 'coherentStokes', '__httpwww_astron_nlSIP_Lofar_Processing_coherentStokes', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 442, 3), ) + __coherentStokes = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'coherentStokes'), 'coherentStokes', '__httpwww_astron_nlSIP_Lofar_Processing_coherentStokes', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 443, 3), ) coherentStokes = property(__coherentStokes.value, __coherentStokes.set, None, None) # Element incoherentStokes uses Python identifier incoherentStokes - __incoherentStokes = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'incoherentStokes'), 'incoherentStokes', '__httpwww_astron_nlSIP_Lofar_Processing_incoherentStokes', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 443, 3), ) + __incoherentStokes = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'incoherentStokes'), 'incoherentStokes', '__httpwww_astron_nlSIP_Lofar_Processing_incoherentStokes', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 444, 3), ) incoherentStokes = property(__incoherentStokes.value, __incoherentStokes.set, None, None) # Element flysEye uses Python identifier flysEye - __flysEye = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'flysEye'), 'flysEye', '__httpwww_astron_nlSIP_Lofar_Processing_flysEye', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 444, 3), ) + __flysEye = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'flysEye'), 'flysEye', '__httpwww_astron_nlSIP_Lofar_Processing_flysEye', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 445, 3), ) flysEye = property(__flysEye.value, __flysEye.set, None, None) # Element nonStandard uses Python identifier nonStandard - __nonStandard = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'nonStandard'), 'nonStandard', '__httpwww_astron_nlSIP_Lofar_Processing_nonStandard', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 445, 3), ) + __nonStandard = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'nonStandard'), 'nonStandard', '__httpwww_astron_nlSIP_Lofar_Processing_nonStandard', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 446, 3), ) nonStandard = property(__nonStandard.value, __nonStandard.set, None, None) @@ -1192,13 +1211,13 @@ class RealTimeProcess (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'RealTimeProcess') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 448, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 449, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element processingType uses Python identifier processingType - __processingType = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'processingType'), 'processingType', '__httpwww_astron_nlSIP_Lofar_RealTimeProcess_processingType', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 450, 3), ) + __processingType = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'processingType'), 'processingType', '__httpwww_astron_nlSIP_Lofar_RealTimeProcess_processingType', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 451, 3), ) processingType = property(__processingType.value, __processingType.set, None, None) @@ -1220,13 +1239,13 @@ class TransientBufferBoardEvents (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'TransientBufferBoardEvents') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 534, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 535, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element transientBufferBoardEvent uses Python identifier transientBufferBoardEvent - __transientBufferBoardEvent = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'transientBufferBoardEvent'), 'transientBufferBoardEvent', '__httpwww_astron_nlSIP_Lofar_TransientBufferBoardEvents_transientBufferBoardEvent', True, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 536, 3), ) + __transientBufferBoardEvent = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'transientBufferBoardEvent'), 'transientBufferBoardEvent', '__httpwww_astron_nlSIP_Lofar_TransientBufferBoardEvents_transientBufferBoardEvent', True, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 537, 3), ) transientBufferBoardEvent = property(__transientBufferBoardEvent.value, __transientBufferBoardEvent.set, None, None) @@ -1248,13 +1267,13 @@ class TransientBufferBoardEvent (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'TransientBufferBoardEvent') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 539, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 540, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element eventSource uses Python identifier eventSource - __eventSource = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'eventSource'), 'eventSource', '__httpwww_astron_nlSIP_Lofar_TransientBufferBoardEvent_eventSource', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 541, 3), ) + __eventSource = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'eventSource'), 'eventSource', '__httpwww_astron_nlSIP_Lofar_TransientBufferBoardEvent_eventSource', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 542, 3), ) eventSource = property(__eventSource.value, __eventSource.set, None, None) @@ -1276,13 +1295,13 @@ class SubArrayPointings (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'SubArrayPointings') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 544, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 545, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element subArrayPointing uses Python identifier subArrayPointing - __subArrayPointing = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'subArrayPointing'), 'subArrayPointing', '__httpwww_astron_nlSIP_Lofar_SubArrayPointings_subArrayPointing', True, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 546, 3), ) + __subArrayPointing = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'subArrayPointing'), 'subArrayPointing', '__httpwww_astron_nlSIP_Lofar_SubArrayPointings_subArrayPointing', True, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 547, 3), ) subArrayPointing = property(__subArrayPointing.value, __subArrayPointing.set, None, None) @@ -1304,97 +1323,97 @@ class SubArrayPointing (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'SubArrayPointing') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 557, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 558, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element pointing uses Python identifier pointing - __pointing = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'pointing'), 'pointing', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_pointing', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 559, 3), ) + __pointing = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'pointing'), 'pointing', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_pointing', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 560, 3), ) pointing = property(__pointing.value, __pointing.set, None, None) # Element beamNumber uses Python identifier beamNumber - __beamNumber = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'beamNumber'), 'beamNumber', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_beamNumber', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 560, 3), ) + __beamNumber = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'beamNumber'), 'beamNumber', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_beamNumber', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 561, 3), ) beamNumber = property(__beamNumber.value, __beamNumber.set, None, None) # Element measurementDescription uses Python identifier measurementDescription - __measurementDescription = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'measurementDescription'), 'measurementDescription', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_measurementDescription', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 561, 3), ) + __measurementDescription = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'measurementDescription'), 'measurementDescription', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_measurementDescription', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 562, 3), ) measurementDescription = property(__measurementDescription.value, __measurementDescription.set, None, None) # Element subArrayPointingIdentifier uses Python identifier subArrayPointingIdentifier - __subArrayPointingIdentifier = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'subArrayPointingIdentifier'), 'subArrayPointingIdentifier', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_subArrayPointingIdentifier', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 562, 3), ) + __subArrayPointingIdentifier = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'subArrayPointingIdentifier'), 'subArrayPointingIdentifier', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_subArrayPointingIdentifier', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 563, 3), ) subArrayPointingIdentifier = property(__subArrayPointingIdentifier.value, __subArrayPointingIdentifier.set, None, None) # Element measurementType uses Python identifier measurementType - __measurementType = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'measurementType'), 'measurementType', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_measurementType', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 563, 3), ) + __measurementType = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'measurementType'), 'measurementType', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_measurementType', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 564, 3), ) measurementType = property(__measurementType.value, __measurementType.set, None, None) # Element targetName uses Python identifier targetName - __targetName = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'targetName'), 'targetName', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_targetName', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 564, 3), ) + __targetName = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'targetName'), 'targetName', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_targetName', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 565, 3), ) targetName = property(__targetName.value, __targetName.set, None, None) # Element startTime uses Python identifier startTime - __startTime = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'startTime'), 'startTime', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_startTime', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 565, 3), ) + __startTime = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'startTime'), 'startTime', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_startTime', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 566, 3), ) startTime = property(__startTime.value, __startTime.set, None, None) # Element duration uses Python identifier duration - __duration = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'duration'), 'duration', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_duration', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 566, 3), ) + __duration = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'duration'), 'duration', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_duration', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 567, 3), ) duration = property(__duration.value, __duration.set, None, None) # Element numberOfProcessing uses Python identifier numberOfProcessing - __numberOfProcessing = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfProcessing'), 'numberOfProcessing', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_numberOfProcessing', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 567, 3), ) + __numberOfProcessing = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfProcessing'), 'numberOfProcessing', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_numberOfProcessing', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 568, 3), ) numberOfProcessing = property(__numberOfProcessing.value, __numberOfProcessing.set, None, None) # Element processing uses Python identifier processing - __processing = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'processing'), 'processing', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_processing', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 568, 3), ) + __processing = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'processing'), 'processing', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_processing', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 569, 3), ) processing = property(__processing.value, __processing.set, None, None) # Element numberOfCorrelatedDataProducts uses Python identifier numberOfCorrelatedDataProducts - __numberOfCorrelatedDataProducts = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts'), 'numberOfCorrelatedDataProducts', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_numberOfCorrelatedDataProducts', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 569, 3), ) + __numberOfCorrelatedDataProducts = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts'), 'numberOfCorrelatedDataProducts', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_numberOfCorrelatedDataProducts', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 570, 3), ) numberOfCorrelatedDataProducts = property(__numberOfCorrelatedDataProducts.value, __numberOfCorrelatedDataProducts.set, None, None) # Element numberOfBeamFormedDataProducts uses Python identifier numberOfBeamFormedDataProducts - __numberOfBeamFormedDataProducts = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfBeamFormedDataProducts'), 'numberOfBeamFormedDataProducts', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_numberOfBeamFormedDataProducts', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 570, 3), ) + __numberOfBeamFormedDataProducts = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfBeamFormedDataProducts'), 'numberOfBeamFormedDataProducts', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_numberOfBeamFormedDataProducts', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 571, 3), ) numberOfBeamFormedDataProducts = property(__numberOfBeamFormedDataProducts.value, __numberOfBeamFormedDataProducts.set, None, None) # Element relations uses Python identifier relations - __relations = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'relations'), 'relations', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_relations', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 571, 3), ) + __relations = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'relations'), 'relations', '__httpwww_astron_nlSIP_Lofar_SubArrayPointing_relations', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 572, 3), ) relations = property(__relations.value, __relations.set, None, None) @@ -1431,13 +1450,13 @@ class DataSources (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'DataSources') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 574, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 575, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element dataProductIdentifier uses Python identifier dataProductIdentifier - __dataProductIdentifier = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier'), 'dataProductIdentifier', '__httpwww_astron_nlSIP_Lofar_DataSources_dataProductIdentifier', True, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 582, 3), ) + __dataProductIdentifier = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier'), 'dataProductIdentifier', '__httpwww_astron_nlSIP_Lofar_DataSources_dataProductIdentifier', True, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 583, 3), ) dataProductIdentifier = property(__dataProductIdentifier.value, __dataProductIdentifier.set, None, None) @@ -1459,20 +1478,20 @@ class ChecksumType (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'ChecksumType') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 728, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 729, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element algorithm uses Python identifier algorithm - __algorithm = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'algorithm'), 'algorithm', '__httpwww_astron_nlSIP_Lofar_ChecksumType_algorithm', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 730, 3), ) + __algorithm = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'algorithm'), 'algorithm', '__httpwww_astron_nlSIP_Lofar_ChecksumType_algorithm', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 731, 3), ) algorithm = property(__algorithm.value, __algorithm.set, None, None) # Element value uses Python identifier value_ - __value = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'value'), 'value_', '__httpwww_astron_nlSIP_Lofar_ChecksumType_value', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 731, 3), ) + __value = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'value'), 'value_', '__httpwww_astron_nlSIP_Lofar_ChecksumType_value', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 732, 3), ) value_ = property(__value.value, __value.set, None, None) @@ -1495,20 +1514,20 @@ class TBBTrigger (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'TBBTrigger') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 755, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 765, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element type uses Python identifier type - __type = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'type'), 'type', '__httpwww_astron_nlSIP_Lofar_TBBTrigger_type', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 757, 3), ) + __type = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'type'), 'type', '__httpwww_astron_nlSIP_Lofar_TBBTrigger_type', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 767, 3), ) type = property(__type.value, __type.set, None, None) # Element value uses Python identifier value_ - __value = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'value'), 'value_', '__httpwww_astron_nlSIP_Lofar_TBBTrigger_value', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 758, 3), ) + __value = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'value'), 'value_', '__httpwww_astron_nlSIP_Lofar_TBBTrigger_value', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 768, 3), ) value_ = property(__value.value, __value.set, None, None) @@ -1531,62 +1550,76 @@ class DataProduct (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'DataProduct') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 788, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 798, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element dataProductType uses Python identifier dataProductType - __dataProductType = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'dataProductType'), 'dataProductType', '__httpwww_astron_nlSIP_Lofar_DataProduct_dataProductType', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 790, 3), ) + __dataProductType = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'dataProductType'), 'dataProductType', '__httpwww_astron_nlSIP_Lofar_DataProduct_dataProductType', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 800, 3), ) dataProductType = property(__dataProductType.value, __dataProductType.set, None, None) # Element dataProductIdentifier uses Python identifier dataProductIdentifier - __dataProductIdentifier = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier'), 'dataProductIdentifier', '__httpwww_astron_nlSIP_Lofar_DataProduct_dataProductIdentifier', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 791, 3), ) + __dataProductIdentifier = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier'), 'dataProductIdentifier', '__httpwww_astron_nlSIP_Lofar_DataProduct_dataProductIdentifier', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 801, 3), ) dataProductIdentifier = property(__dataProductIdentifier.value, __dataProductIdentifier.set, None, None) # Element storageTicket uses Python identifier storageTicket - __storageTicket = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'storageTicket'), 'storageTicket', '__httpwww_astron_nlSIP_Lofar_DataProduct_storageTicket', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3), ) + __storageTicket = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'storageTicket'), 'storageTicket', '__httpwww_astron_nlSIP_Lofar_DataProduct_storageTicket', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3), ) storageTicket = property(__storageTicket.value, __storageTicket.set, None, None) # Element size uses Python identifier size - __size = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'size'), 'size', '__httpwww_astron_nlSIP_Lofar_DataProduct_size', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 793, 3), ) + __size = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'size'), 'size', '__httpwww_astron_nlSIP_Lofar_DataProduct_size', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 803, 3), ) size = property(__size.value, __size.set, None, None) # Element checksum uses Python identifier checksum - __checksum = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'checksum'), 'checksum', '__httpwww_astron_nlSIP_Lofar_DataProduct_checksum', True, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3), ) + __checksum = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'checksum'), 'checksum', '__httpwww_astron_nlSIP_Lofar_DataProduct_checksum', True, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3), ) checksum = property(__checksum.value, __checksum.set, None, None) # Element fileName uses Python identifier fileName - __fileName = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'fileName'), 'fileName', '__httpwww_astron_nlSIP_Lofar_DataProduct_fileName', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 795, 3), ) + __fileName = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'fileName'), 'fileName', '__httpwww_astron_nlSIP_Lofar_DataProduct_fileName', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 805, 3), ) fileName = property(__fileName.value, __fileName.set, None, None) # Element fileFormat uses Python identifier fileFormat - __fileFormat = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'fileFormat'), 'fileFormat', '__httpwww_astron_nlSIP_Lofar_DataProduct_fileFormat', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 796, 3), ) + __fileFormat = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'fileFormat'), 'fileFormat', '__httpwww_astron_nlSIP_Lofar_DataProduct_fileFormat', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 806, 3), ) fileFormat = property(__fileFormat.value, __fileFormat.set, None, None) + # Element storageWriter uses Python identifier storageWriter + __storageWriter = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'storageWriter'), 'storageWriter', '__httpwww_astron_nlSIP_Lofar_DataProduct_storageWriter', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 807, 3), ) + + + storageWriter = property(__storageWriter.value, __storageWriter.set, None, None) + + + # Element storageWriterVersion uses Python identifier storageWriterVersion + __storageWriterVersion = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'storageWriterVersion'), 'storageWriterVersion', '__httpwww_astron_nlSIP_Lofar_DataProduct_storageWriterVersion', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 808, 3), ) + + + storageWriterVersion = property(__storageWriterVersion.value, __storageWriterVersion.set, None, None) + + # Element processIdentifier uses Python identifier processIdentifier - __processIdentifier = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'processIdentifier'), 'processIdentifier', '__httpwww_astron_nlSIP_Lofar_DataProduct_processIdentifier', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 797, 3), ) + __processIdentifier = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'processIdentifier'), 'processIdentifier', '__httpwww_astron_nlSIP_Lofar_DataProduct_processIdentifier', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 809, 3), ) processIdentifier = property(__processIdentifier.value, __processIdentifier.set, None, None) @@ -1599,6 +1632,8 @@ class DataProduct (pyxb.binding.basis.complexTypeDefinition): __checksum.name() : __checksum, __fileName.name() : __fileName, __fileFormat.name() : __fileFormat, + __storageWriter.name() : __storageWriter, + __storageWriterVersion.name() : __storageWriterVersion, __processIdentifier.name() : __processIdentifier }) _AttributeMap.update({ @@ -1615,13 +1650,13 @@ class ArrayBeams (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'ArrayBeams') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 869, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 881, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element arrayBeam uses Python identifier arrayBeam - __arrayBeam = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'arrayBeam'), 'arrayBeam', '__httpwww_astron_nlSIP_Lofar_ArrayBeams_arrayBeam', True, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 871, 3), ) + __arrayBeam = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'arrayBeam'), 'arrayBeam', '__httpwww_astron_nlSIP_Lofar_ArrayBeams_arrayBeam', True, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 883, 3), ) arrayBeam = property(__arrayBeam.value, __arrayBeam.set, None, None) @@ -1643,76 +1678,76 @@ class ArrayBeam (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'ArrayBeam') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 877, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 889, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element subArrayPointingIdentifier uses Python identifier subArrayPointingIdentifier - __subArrayPointingIdentifier = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'subArrayPointingIdentifier'), 'subArrayPointingIdentifier', '__httpwww_astron_nlSIP_Lofar_ArrayBeam_subArrayPointingIdentifier', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 879, 3), ) + __subArrayPointingIdentifier = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'subArrayPointingIdentifier'), 'subArrayPointingIdentifier', '__httpwww_astron_nlSIP_Lofar_ArrayBeam_subArrayPointingIdentifier', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 891, 3), ) subArrayPointingIdentifier = property(__subArrayPointingIdentifier.value, __subArrayPointingIdentifier.set, None, None) # Element beamNumber uses Python identifier beamNumber - __beamNumber = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'beamNumber'), 'beamNumber', '__httpwww_astron_nlSIP_Lofar_ArrayBeam_beamNumber', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 880, 3), ) + __beamNumber = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'beamNumber'), 'beamNumber', '__httpwww_astron_nlSIP_Lofar_ArrayBeam_beamNumber', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 892, 3), ) beamNumber = property(__beamNumber.value, __beamNumber.set, None, None) # Element dispersionMeasure uses Python identifier dispersionMeasure - __dispersionMeasure = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'dispersionMeasure'), 'dispersionMeasure', '__httpwww_astron_nlSIP_Lofar_ArrayBeam_dispersionMeasure', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 881, 3), ) + __dispersionMeasure = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'dispersionMeasure'), 'dispersionMeasure', '__httpwww_astron_nlSIP_Lofar_ArrayBeam_dispersionMeasure', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 893, 3), ) dispersionMeasure = property(__dispersionMeasure.value, __dispersionMeasure.set, None, None) # Element numberOfSubbands uses Python identifier numberOfSubbands - __numberOfSubbands = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfSubbands'), 'numberOfSubbands', '__httpwww_astron_nlSIP_Lofar_ArrayBeam_numberOfSubbands', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 882, 3), ) + __numberOfSubbands = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfSubbands'), 'numberOfSubbands', '__httpwww_astron_nlSIP_Lofar_ArrayBeam_numberOfSubbands', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 894, 3), ) numberOfSubbands = property(__numberOfSubbands.value, __numberOfSubbands.set, None, None) # Element stationSubbands uses Python identifier stationSubbands - __stationSubbands = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'stationSubbands'), 'stationSubbands', '__httpwww_astron_nlSIP_Lofar_ArrayBeam_stationSubbands', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 883, 3), ) + __stationSubbands = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'stationSubbands'), 'stationSubbands', '__httpwww_astron_nlSIP_Lofar_ArrayBeam_stationSubbands', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 895, 3), ) stationSubbands = property(__stationSubbands.value, __stationSubbands.set, None, None) # Element samplingTime uses Python identifier samplingTime - __samplingTime = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'samplingTime'), 'samplingTime', '__httpwww_astron_nlSIP_Lofar_ArrayBeam_samplingTime', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 884, 3), ) + __samplingTime = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'samplingTime'), 'samplingTime', '__httpwww_astron_nlSIP_Lofar_ArrayBeam_samplingTime', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 896, 3), ) samplingTime = property(__samplingTime.value, __samplingTime.set, None, None) # Element centralFrequencies uses Python identifier centralFrequencies - __centralFrequencies = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'centralFrequencies'), 'centralFrequencies', '__httpwww_astron_nlSIP_Lofar_ArrayBeam_centralFrequencies', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 885, 3), ) + __centralFrequencies = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'centralFrequencies'), 'centralFrequencies', '__httpwww_astron_nlSIP_Lofar_ArrayBeam_centralFrequencies', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 897, 3), ) centralFrequencies = property(__centralFrequencies.value, __centralFrequencies.set, None, None) # Element channelWidth uses Python identifier channelWidth - __channelWidth = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelWidth'), 'channelWidth', '__httpwww_astron_nlSIP_Lofar_ArrayBeam_channelWidth', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 886, 3), ) + __channelWidth = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelWidth'), 'channelWidth', '__httpwww_astron_nlSIP_Lofar_ArrayBeam_channelWidth', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 898, 3), ) channelWidth = property(__channelWidth.value, __channelWidth.set, None, None) # Element channelsPerSubband uses Python identifier channelsPerSubband - __channelsPerSubband = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), 'channelsPerSubband', '__httpwww_astron_nlSIP_Lofar_ArrayBeam_channelsPerSubband', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 887, 3), ) + __channelsPerSubband = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), 'channelsPerSubband', '__httpwww_astron_nlSIP_Lofar_ArrayBeam_channelsPerSubband', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 899, 3), ) channelsPerSubband = property(__channelsPerSubband.value, __channelsPerSubband.set, None, None) # Element stokes uses Python identifier stokes - __stokes = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'stokes'), 'stokes', '__httpwww_astron_nlSIP_Lofar_ArrayBeam_stokes', True, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 888, 3), ) + __stokes = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'stokes'), 'stokes', '__httpwww_astron_nlSIP_Lofar_ArrayBeam_stokes', True, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 900, 3), ) stokes = property(__stokes.value, __stokes.set, None, None) @@ -1743,34 +1778,34 @@ class Axis (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'Axis') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 994, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1006, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element number uses Python identifier number - __number = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'number'), 'number', '__httpwww_astron_nlSIP_Lofar_Axis_number', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 996, 3), ) + __number = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'number'), 'number', '__httpwww_astron_nlSIP_Lofar_Axis_number', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1008, 3), ) number = property(__number.value, __number.set, None, None) # Element name uses Python identifier name - __name = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'name'), 'name', '__httpwww_astron_nlSIP_Lofar_Axis_name', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 997, 3), ) + __name = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'name'), 'name', '__httpwww_astron_nlSIP_Lofar_Axis_name', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1009, 3), ) name = property(__name.value, __name.set, None, None) # Element units uses Python identifier units - __units = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'units'), 'units', '__httpwww_astron_nlSIP_Lofar_Axis_units', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 998, 3), ) + __units = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'units'), 'units', '__httpwww_astron_nlSIP_Lofar_Axis_units', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1010, 3), ) units = property(__units.value, __units.set, None, None) # Element length uses Python identifier length - __length = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'length'), 'length', '__httpwww_astron_nlSIP_Lofar_Axis_length', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 999, 3), ) + __length = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'length'), 'length', '__httpwww_astron_nlSIP_Lofar_Axis_length', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1011, 3), ) length = property(__length.value, __length.set, None, None) @@ -1795,7 +1830,7 @@ class Coordinate (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_EMPTY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'Coordinate') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1020, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1032, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType @@ -1816,20 +1851,20 @@ class SpectralQuantity (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'SpectralQuantity') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1081, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1093, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element type uses Python identifier type - __type = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'type'), 'type', '__httpwww_astron_nlSIP_Lofar_SpectralQuantity_type', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1083, 3), ) + __type = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'type'), 'type', '__httpwww_astron_nlSIP_Lofar_SpectralQuantity_type', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1095, 3), ) type = property(__type.value, __type.set, None, None) # Element value uses Python identifier value_ - __value = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'value'), 'value_', '__httpwww_astron_nlSIP_Lofar_SpectralQuantity_value', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1084, 3), ) + __value = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'value'), 'value_', '__httpwww_astron_nlSIP_Lofar_SpectralQuantity_value', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1096, 3), ) value_ = property(__value.value, __value.set, None, None) @@ -1852,20 +1887,20 @@ class Parset (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'Parset') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1168, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1180, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element identifier uses Python identifier identifier - __identifier = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'identifier'), 'identifier', '__httpwww_astron_nlSIP_Lofar_Parset_identifier', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1170, 3), ) + __identifier = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'identifier'), 'identifier', '__httpwww_astron_nlSIP_Lofar_Parset_identifier', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1182, 3), ) identifier = property(__identifier.value, __identifier.set, None, None) # Element contents uses Python identifier contents - __contents = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'contents'), 'contents', '__httpwww_astron_nlSIP_Lofar_Parset_contents', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1171, 3), ) + __contents = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'contents'), 'contents', '__httpwww_astron_nlSIP_Lofar_Parset_contents', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1183, 3), ) contents = property(__contents.value, __contents.set, None, None) @@ -1888,48 +1923,48 @@ class Project (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'Project') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1189, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1201, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element projectCode uses Python identifier projectCode - __projectCode = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'projectCode'), 'projectCode', '__httpwww_astron_nlSIP_Lofar_Project_projectCode', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1191, 3), ) + __projectCode = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'projectCode'), 'projectCode', '__httpwww_astron_nlSIP_Lofar_Project_projectCode', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1203, 3), ) projectCode = property(__projectCode.value, __projectCode.set, None, None) # Element primaryInvestigator uses Python identifier primaryInvestigator - __primaryInvestigator = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'primaryInvestigator'), 'primaryInvestigator', '__httpwww_astron_nlSIP_Lofar_Project_primaryInvestigator', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1192, 3), ) + __primaryInvestigator = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'primaryInvestigator'), 'primaryInvestigator', '__httpwww_astron_nlSIP_Lofar_Project_primaryInvestigator', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1204, 3), ) primaryInvestigator = property(__primaryInvestigator.value, __primaryInvestigator.set, None, None) # Element coInvestigator uses Python identifier coInvestigator - __coInvestigator = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'coInvestigator'), 'coInvestigator', '__httpwww_astron_nlSIP_Lofar_Project_coInvestigator', True, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1193, 3), ) + __coInvestigator = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'coInvestigator'), 'coInvestigator', '__httpwww_astron_nlSIP_Lofar_Project_coInvestigator', True, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1205, 3), ) coInvestigator = property(__coInvestigator.value, __coInvestigator.set, None, None) # Element contactAuthor uses Python identifier contactAuthor - __contactAuthor = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'contactAuthor'), 'contactAuthor', '__httpwww_astron_nlSIP_Lofar_Project_contactAuthor', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1194, 3), ) + __contactAuthor = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'contactAuthor'), 'contactAuthor', '__httpwww_astron_nlSIP_Lofar_Project_contactAuthor', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1206, 3), ) contactAuthor = property(__contactAuthor.value, __contactAuthor.set, None, None) # Element telescope uses Python identifier telescope - __telescope = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'telescope'), 'telescope', '__httpwww_astron_nlSIP_Lofar_Project_telescope', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1195, 3), ) + __telescope = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'telescope'), 'telescope', '__httpwww_astron_nlSIP_Lofar_Project_telescope', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1207, 3), ) telescope = property(__telescope.value, __telescope.set, None, None) # Element projectDescription uses Python identifier projectDescription - __projectDescription = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'projectDescription'), 'projectDescription', '__httpwww_astron_nlSIP_Lofar_Project_projectDescription', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1196, 3), ) + __projectDescription = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'projectDescription'), 'projectDescription', '__httpwww_astron_nlSIP_Lofar_Project_projectDescription', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1208, 3), ) projectDescription = property(__projectDescription.value, __projectDescription.set, None, None) @@ -1956,62 +1991,62 @@ class LTASip (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'LTASip') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1207, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1219, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType # Element sipGeneratorVersion uses Python identifier sipGeneratorVersion - __sipGeneratorVersion = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'sipGeneratorVersion'), 'sipGeneratorVersion', '__httpwww_astron_nlSIP_Lofar_LTASip_sipGeneratorVersion', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1209, 3), ) + __sipGeneratorVersion = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'sipGeneratorVersion'), 'sipGeneratorVersion', '__httpwww_astron_nlSIP_Lofar_LTASip_sipGeneratorVersion', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1221, 3), ) sipGeneratorVersion = property(__sipGeneratorVersion.value, __sipGeneratorVersion.set, None, None) # Element project uses Python identifier project - __project = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'project'), 'project', '__httpwww_astron_nlSIP_Lofar_LTASip_project', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1210, 3), ) + __project = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'project'), 'project', '__httpwww_astron_nlSIP_Lofar_LTASip_project', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1222, 3), ) project = property(__project.value, __project.set, None, None) # Element dataProduct uses Python identifier dataProduct - __dataProduct = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'dataProduct'), 'dataProduct', '__httpwww_astron_nlSIP_Lofar_LTASip_dataProduct', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1211, 3), ) + __dataProduct = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'dataProduct'), 'dataProduct', '__httpwww_astron_nlSIP_Lofar_LTASip_dataProduct', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1223, 3), ) dataProduct = property(__dataProduct.value, __dataProduct.set, None, None) # Element observation uses Python identifier observation - __observation = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'observation'), 'observation', '__httpwww_astron_nlSIP_Lofar_LTASip_observation', True, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1212, 3), ) + __observation = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'observation'), 'observation', '__httpwww_astron_nlSIP_Lofar_LTASip_observation', True, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1224, 3), ) observation = property(__observation.value, __observation.set, None, None) # Element pipelineRun uses Python identifier pipelineRun - __pipelineRun = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'pipelineRun'), 'pipelineRun', '__httpwww_astron_nlSIP_Lofar_LTASip_pipelineRun', True, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1213, 3), ) + __pipelineRun = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'pipelineRun'), 'pipelineRun', '__httpwww_astron_nlSIP_Lofar_LTASip_pipelineRun', True, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1225, 3), ) pipelineRun = property(__pipelineRun.value, __pipelineRun.set, None, None) # Element unspecifiedProcess uses Python identifier unspecifiedProcess - __unspecifiedProcess = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'unspecifiedProcess'), 'unspecifiedProcess', '__httpwww_astron_nlSIP_Lofar_LTASip_unspecifiedProcess', True, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1214, 3), ) + __unspecifiedProcess = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'unspecifiedProcess'), 'unspecifiedProcess', '__httpwww_astron_nlSIP_Lofar_LTASip_unspecifiedProcess', True, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1226, 3), ) unspecifiedProcess = property(__unspecifiedProcess.value, __unspecifiedProcess.set, None, None) # Element relatedDataProduct uses Python identifier relatedDataProduct - __relatedDataProduct = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'relatedDataProduct'), 'relatedDataProduct', '__httpwww_astron_nlSIP_Lofar_LTASip_relatedDataProduct', True, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1215, 3), ) + __relatedDataProduct = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'relatedDataProduct'), 'relatedDataProduct', '__httpwww_astron_nlSIP_Lofar_LTASip_relatedDataProduct', True, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1227, 3), ) relatedDataProduct = property(__relatedDataProduct.value, __relatedDataProduct.set, None, None) # Element parset uses Python identifier parset - __parset = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'parset'), 'parset', '__httpwww_astron_nlSIP_Lofar_LTASip_parset', True, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1216, 3), ) + __parset = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'parset'), 'parset', '__httpwww_astron_nlSIP_Lofar_LTASip_parset', True, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1228, 3), ) parset = property(__parset.value, __parset.set, None, None) @@ -2040,15 +2075,15 @@ class Frequency (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_SIMPLE _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'Frequency') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 32, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 32, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.double # Attribute units uses Python identifier units __units = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'units'), 'units', '__httpwww_astron_nlSIP_Lofar_Frequency_units', _module_typeBindings.FrequencyUnit, required=True) - __units._DeclarationLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 35, 4) - __units._UseLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 35, 4) + __units._DeclarationLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 35, 4) + __units._UseLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 35, 4) units = property(__units.value, __units.set, None, None) @@ -2069,15 +2104,15 @@ class Length (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_SIMPLE _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'Length') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 45, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 45, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.double # Attribute units uses Python identifier units __units = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'units'), 'units', '__httpwww_astron_nlSIP_Lofar_Length_units', _module_typeBindings.LengthUnit, required=True) - __units._DeclarationLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 48, 4) - __units._UseLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 48, 4) + __units._DeclarationLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 48, 4) + __units._UseLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 48, 4) units = property(__units.value, __units.set, None, None) @@ -2098,15 +2133,15 @@ class Time (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_SIMPLE _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'Time') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 60, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 60, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.double # Attribute units uses Python identifier units __units = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'units'), 'units', '__httpwww_astron_nlSIP_Lofar_Time_units', _module_typeBindings.TimeUnit, required=True) - __units._DeclarationLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 63, 4) - __units._UseLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 63, 4) + __units._DeclarationLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 63, 4) + __units._UseLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 63, 4) units = property(__units.value, __units.set, None, None) @@ -2127,15 +2162,15 @@ class Angle (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_SIMPLE _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'Angle') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 74, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 74, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.double # Attribute units uses Python identifier units __units = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'units'), 'units', '__httpwww_astron_nlSIP_Lofar_Angle_units', _module_typeBindings.AngleUnit, required=True) - __units._DeclarationLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 77, 4) - __units._UseLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 77, 4) + __units._DeclarationLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 77, 4) + __units._UseLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 77, 4) units = property(__units.value, __units.set, None, None) @@ -2156,15 +2191,15 @@ class Pixel (pyxb.binding.basis.complexTypeDefinition): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_SIMPLE _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'Pixel') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 86, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 86, 1) _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.double # Attribute units uses Python identifier units __units = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'units'), 'units', '__httpwww_astron_nlSIP_Lofar_Pixel_units', _module_typeBindings.PixelUnit, required=True) - __units._DeclarationLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 89, 4) - __units._UseLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 89, 4) + __units._DeclarationLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 89, 4) + __units._UseLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 89, 4) units = property(__units.value, __units.set, None, None) @@ -2185,7 +2220,7 @@ class Observation (Process): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'Observation') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 350, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 351, 1) _ElementMap = Process._ElementMap.copy() _AttributeMap = Process._AttributeMap.copy() # Base type is Process @@ -2207,126 +2242,126 @@ class Observation (Process): # Element relations (relations) inherited from {http://www.astron.nl/SIP-Lofar}Process # Element observingMode uses Python identifier observingMode - __observingMode = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'observingMode'), 'observingMode', '__httpwww_astron_nlSIP_Lofar_Observation_observingMode', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 354, 5), ) + __observingMode = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'observingMode'), 'observingMode', '__httpwww_astron_nlSIP_Lofar_Observation_observingMode', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 355, 5), ) observingMode = property(__observingMode.value, __observingMode.set, None, None) # Element observationDescription uses Python identifier observationDescription - __observationDescription = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'observationDescription'), 'observationDescription', '__httpwww_astron_nlSIP_Lofar_Observation_observationDescription', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 355, 5), ) + __observationDescription = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'observationDescription'), 'observationDescription', '__httpwww_astron_nlSIP_Lofar_Observation_observationDescription', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 356, 5), ) observationDescription = property(__observationDescription.value, __observationDescription.set, None, None) # Element instrumentFilter uses Python identifier instrumentFilter - __instrumentFilter = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'instrumentFilter'), 'instrumentFilter', '__httpwww_astron_nlSIP_Lofar_Observation_instrumentFilter', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 356, 5), ) + __instrumentFilter = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'instrumentFilter'), 'instrumentFilter', '__httpwww_astron_nlSIP_Lofar_Observation_instrumentFilter', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 357, 5), ) instrumentFilter = property(__instrumentFilter.value, __instrumentFilter.set, None, None) # Element clock uses Python identifier clock - __clock = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'clock'), 'clock', '__httpwww_astron_nlSIP_Lofar_Observation_clock', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 357, 5), ) + __clock = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'clock'), 'clock', '__httpwww_astron_nlSIP_Lofar_Observation_clock', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 358, 5), ) clock = property(__clock.value, __clock.set, None, None) # Element stationSelection uses Python identifier stationSelection - __stationSelection = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'stationSelection'), 'stationSelection', '__httpwww_astron_nlSIP_Lofar_Observation_stationSelection', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 358, 5), ) + __stationSelection = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'stationSelection'), 'stationSelection', '__httpwww_astron_nlSIP_Lofar_Observation_stationSelection', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 359, 5), ) stationSelection = property(__stationSelection.value, __stationSelection.set, None, None) # Element antennaSet uses Python identifier antennaSet - __antennaSet = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'antennaSet'), 'antennaSet', '__httpwww_astron_nlSIP_Lofar_Observation_antennaSet', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 359, 5), ) + __antennaSet = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'antennaSet'), 'antennaSet', '__httpwww_astron_nlSIP_Lofar_Observation_antennaSet', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 360, 5), ) antennaSet = property(__antennaSet.value, __antennaSet.set, None, None) # Element timeSystem uses Python identifier timeSystem - __timeSystem = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'timeSystem'), 'timeSystem', '__httpwww_astron_nlSIP_Lofar_Observation_timeSystem', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 360, 5), ) + __timeSystem = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'timeSystem'), 'timeSystem', '__httpwww_astron_nlSIP_Lofar_Observation_timeSystem', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 361, 5), ) timeSystem = property(__timeSystem.value, __timeSystem.set, None, None) # Element channelWidth uses Python identifier channelWidth - __channelWidth = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelWidth'), 'channelWidth', '__httpwww_astron_nlSIP_Lofar_Observation_channelWidth', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 361, 5), ) + __channelWidth = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelWidth'), 'channelWidth', '__httpwww_astron_nlSIP_Lofar_Observation_channelWidth', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 362, 5), ) channelWidth = property(__channelWidth.value, __channelWidth.set, None, None) # Element channelsPerSubband uses Python identifier channelsPerSubband - __channelsPerSubband = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), 'channelsPerSubband', '__httpwww_astron_nlSIP_Lofar_Observation_channelsPerSubband', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 362, 5), ) + __channelsPerSubband = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), 'channelsPerSubband', '__httpwww_astron_nlSIP_Lofar_Observation_channelsPerSubband', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 363, 5), ) channelsPerSubband = property(__channelsPerSubband.value, __channelsPerSubband.set, None, None) # Element numberOfStations uses Python identifier numberOfStations - __numberOfStations = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfStations'), 'numberOfStations', '__httpwww_astron_nlSIP_Lofar_Observation_numberOfStations', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 363, 5), ) + __numberOfStations = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfStations'), 'numberOfStations', '__httpwww_astron_nlSIP_Lofar_Observation_numberOfStations', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 364, 5), ) numberOfStations = property(__numberOfStations.value, __numberOfStations.set, None, None) # Element stations uses Python identifier stations - __stations = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'stations'), 'stations', '__httpwww_astron_nlSIP_Lofar_Observation_stations', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 364, 5), ) + __stations = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'stations'), 'stations', '__httpwww_astron_nlSIP_Lofar_Observation_stations', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 365, 5), ) stations = property(__stations.value, __stations.set, None, None) # Element numberOfSubArrayPointings uses Python identifier numberOfSubArrayPointings - __numberOfSubArrayPointings = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfSubArrayPointings'), 'numberOfSubArrayPointings', '__httpwww_astron_nlSIP_Lofar_Observation_numberOfSubArrayPointings', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 365, 5), ) + __numberOfSubArrayPointings = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfSubArrayPointings'), 'numberOfSubArrayPointings', '__httpwww_astron_nlSIP_Lofar_Observation_numberOfSubArrayPointings', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 366, 5), ) numberOfSubArrayPointings = property(__numberOfSubArrayPointings.value, __numberOfSubArrayPointings.set, None, None) # Element subArrayPointings uses Python identifier subArrayPointings - __subArrayPointings = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'subArrayPointings'), 'subArrayPointings', '__httpwww_astron_nlSIP_Lofar_Observation_subArrayPointings', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 366, 5), ) + __subArrayPointings = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'subArrayPointings'), 'subArrayPointings', '__httpwww_astron_nlSIP_Lofar_Observation_subArrayPointings', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 367, 5), ) subArrayPointings = property(__subArrayPointings.value, __subArrayPointings.set, None, None) # Element numberOftransientBufferBoardEvents uses Python identifier numberOftransientBufferBoardEvents - __numberOftransientBufferBoardEvents = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOftransientBufferBoardEvents'), 'numberOftransientBufferBoardEvents', '__httpwww_astron_nlSIP_Lofar_Observation_numberOftransientBufferBoardEvents', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 367, 5), ) + __numberOftransientBufferBoardEvents = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOftransientBufferBoardEvents'), 'numberOftransientBufferBoardEvents', '__httpwww_astron_nlSIP_Lofar_Observation_numberOftransientBufferBoardEvents', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 368, 5), ) numberOftransientBufferBoardEvents = property(__numberOftransientBufferBoardEvents.value, __numberOftransientBufferBoardEvents.set, None, None) # Element transientBufferBoardEvents uses Python identifier transientBufferBoardEvents - __transientBufferBoardEvents = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'transientBufferBoardEvents'), 'transientBufferBoardEvents', '__httpwww_astron_nlSIP_Lofar_Observation_transientBufferBoardEvents', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 368, 5), ) + __transientBufferBoardEvents = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'transientBufferBoardEvents'), 'transientBufferBoardEvents', '__httpwww_astron_nlSIP_Lofar_Observation_transientBufferBoardEvents', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 369, 5), ) transientBufferBoardEvents = property(__transientBufferBoardEvents.value, __transientBufferBoardEvents.set, None, None) # Element numberOfCorrelatedDataProducts uses Python identifier numberOfCorrelatedDataProducts - __numberOfCorrelatedDataProducts = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts'), 'numberOfCorrelatedDataProducts', '__httpwww_astron_nlSIP_Lofar_Observation_numberOfCorrelatedDataProducts', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 369, 5), ) + __numberOfCorrelatedDataProducts = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts'), 'numberOfCorrelatedDataProducts', '__httpwww_astron_nlSIP_Lofar_Observation_numberOfCorrelatedDataProducts', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 370, 5), ) numberOfCorrelatedDataProducts = property(__numberOfCorrelatedDataProducts.value, __numberOfCorrelatedDataProducts.set, None, None) # Element numberOfBeamFormedDataProducts uses Python identifier numberOfBeamFormedDataProducts - __numberOfBeamFormedDataProducts = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfBeamFormedDataProducts'), 'numberOfBeamFormedDataProducts', '__httpwww_astron_nlSIP_Lofar_Observation_numberOfBeamFormedDataProducts', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 370, 5), ) + __numberOfBeamFormedDataProducts = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfBeamFormedDataProducts'), 'numberOfBeamFormedDataProducts', '__httpwww_astron_nlSIP_Lofar_Observation_numberOfBeamFormedDataProducts', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 371, 5), ) numberOfBeamFormedDataProducts = property(__numberOfBeamFormedDataProducts.value, __numberOfBeamFormedDataProducts.set, None, None) # Element numberOfBitsPerSample uses Python identifier numberOfBitsPerSample - __numberOfBitsPerSample = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfBitsPerSample'), 'numberOfBitsPerSample', '__httpwww_astron_nlSIP_Lofar_Observation_numberOfBitsPerSample', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 371, 5), ) + __numberOfBitsPerSample = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfBitsPerSample'), 'numberOfBitsPerSample', '__httpwww_astron_nlSIP_Lofar_Observation_numberOfBitsPerSample', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 372, 5), ) numberOfBitsPerSample = property(__numberOfBitsPerSample.value, __numberOfBitsPerSample.set, None, None) @@ -2365,7 +2400,7 @@ class DirectDataMeasurement (Process): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'DirectDataMeasurement') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 376, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 377, 1) _ElementMap = Process._ElementMap.copy() _AttributeMap = Process._AttributeMap.copy() # Base type is Process @@ -2387,14 +2422,14 @@ class DirectDataMeasurement (Process): # Element relations (relations) inherited from {http://www.astron.nl/SIP-Lofar}Process # Element observingMode uses Python identifier observingMode - __observingMode = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'observingMode'), 'observingMode', '__httpwww_astron_nlSIP_Lofar_DirectDataMeasurement_observingMode', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 380, 5), ) + __observingMode = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'observingMode'), 'observingMode', '__httpwww_astron_nlSIP_Lofar_DirectDataMeasurement_observingMode', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 381, 5), ) observingMode = property(__observingMode.value, __observingMode.set, None, None) # Element station uses Python identifier station - __station = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'station'), 'station', '__httpwww_astron_nlSIP_Lofar_DirectDataMeasurement_station', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 381, 5), ) + __station = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'station'), 'station', '__httpwww_astron_nlSIP_Lofar_DirectDataMeasurement_station', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 382, 5), ) station = property(__station.value, __station.set, None, None) @@ -2417,7 +2452,7 @@ class GenericMeasurement (Process): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'GenericMeasurement') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 393, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 394, 1) _ElementMap = Process._ElementMap.copy() _AttributeMap = Process._AttributeMap.copy() # Base type is Process @@ -2439,14 +2474,14 @@ class GenericMeasurement (Process): # Element relations (relations) inherited from {http://www.astron.nl/SIP-Lofar}Process # Element observingMode uses Python identifier observingMode - __observingMode = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'observingMode'), 'observingMode', '__httpwww_astron_nlSIP_Lofar_GenericMeasurement_observingMode', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 397, 5), ) + __observingMode = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'observingMode'), 'observingMode', '__httpwww_astron_nlSIP_Lofar_GenericMeasurement_observingMode', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 398, 5), ) observingMode = property(__observingMode.value, __observingMode.set, None, None) # Element description uses Python identifier description - __description = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'description'), 'description', '__httpwww_astron_nlSIP_Lofar_GenericMeasurement_description', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 398, 5), ) + __description = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'description'), 'description', '__httpwww_astron_nlSIP_Lofar_GenericMeasurement_description', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 399, 5), ) description = property(__description.value, __description.set, None, None) @@ -2469,7 +2504,7 @@ class UnspecifiedProcess (Process): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'UnspecifiedProcess') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 403, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 404, 1) _ElementMap = Process._ElementMap.copy() _AttributeMap = Process._AttributeMap.copy() # Base type is Process @@ -2491,14 +2526,14 @@ class UnspecifiedProcess (Process): # Element relations (relations) inherited from {http://www.astron.nl/SIP-Lofar}Process # Element observingMode uses Python identifier observingMode - __observingMode = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'observingMode'), 'observingMode', '__httpwww_astron_nlSIP_Lofar_UnspecifiedProcess_observingMode', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 407, 5), ) + __observingMode = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'observingMode'), 'observingMode', '__httpwww_astron_nlSIP_Lofar_UnspecifiedProcess_observingMode', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 408, 5), ) observingMode = property(__observingMode.value, __observingMode.set, None, None) # Element description uses Python identifier description - __description = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'description'), 'description', '__httpwww_astron_nlSIP_Lofar_UnspecifiedProcess_description', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 408, 5), ) + __description = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'description'), 'description', '__httpwww_astron_nlSIP_Lofar_UnspecifiedProcess_description', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 409, 5), ) description = property(__description.value, __description.set, None, None) @@ -2521,7 +2556,7 @@ class Correlator (RealTimeProcess): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'Correlator') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 453, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 454, 1) _ElementMap = RealTimeProcess._ElementMap.copy() _AttributeMap = RealTimeProcess._AttributeMap.copy() # Base type is RealTimeProcess @@ -2529,21 +2564,21 @@ class Correlator (RealTimeProcess): # Element processingType (processingType) inherited from {http://www.astron.nl/SIP-Lofar}RealTimeProcess # Element integrationInterval uses Python identifier integrationInterval - __integrationInterval = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'integrationInterval'), 'integrationInterval', '__httpwww_astron_nlSIP_Lofar_Correlator_integrationInterval', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 457, 5), ) + __integrationInterval = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'integrationInterval'), 'integrationInterval', '__httpwww_astron_nlSIP_Lofar_Correlator_integrationInterval', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 458, 5), ) integrationInterval = property(__integrationInterval.value, __integrationInterval.set, None, None) # Element channelWidth uses Python identifier channelWidth - __channelWidth = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelWidth'), 'channelWidth', '__httpwww_astron_nlSIP_Lofar_Correlator_channelWidth', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 458, 5), ) + __channelWidth = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelWidth'), 'channelWidth', '__httpwww_astron_nlSIP_Lofar_Correlator_channelWidth', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 459, 5), ) channelWidth = property(__channelWidth.value, __channelWidth.set, None, None) # Element channelsPerSubband uses Python identifier channelsPerSubband - __channelsPerSubband = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), 'channelsPerSubband', '__httpwww_astron_nlSIP_Lofar_Correlator_channelsPerSubband', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 459, 5), ) + __channelsPerSubband = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), 'channelsPerSubband', '__httpwww_astron_nlSIP_Lofar_Correlator_channelsPerSubband', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 460, 5), ) channelsPerSubband = property(__channelsPerSubband.value, __channelsPerSubband.set, None, None) @@ -2567,7 +2602,7 @@ class CoherentStokes (RealTimeProcess): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'CoherentStokes') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 474, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 475, 1) _ElementMap = RealTimeProcess._ElementMap.copy() _AttributeMap = RealTimeProcess._AttributeMap.copy() # Base type is RealTimeProcess @@ -2575,70 +2610,70 @@ class CoherentStokes (RealTimeProcess): # Element processingType (processingType) inherited from {http://www.astron.nl/SIP-Lofar}RealTimeProcess # Element rawSamplingTime uses Python identifier rawSamplingTime - __rawSamplingTime = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'rawSamplingTime'), 'rawSamplingTime', '__httpwww_astron_nlSIP_Lofar_CoherentStokes_rawSamplingTime', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 478, 5), ) + __rawSamplingTime = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'rawSamplingTime'), 'rawSamplingTime', '__httpwww_astron_nlSIP_Lofar_CoherentStokes_rawSamplingTime', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 479, 5), ) rawSamplingTime = property(__rawSamplingTime.value, __rawSamplingTime.set, None, None) # Element timeDownsamplingFactor uses Python identifier timeDownsamplingFactor - __timeDownsamplingFactor = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'timeDownsamplingFactor'), 'timeDownsamplingFactor', '__httpwww_astron_nlSIP_Lofar_CoherentStokes_timeDownsamplingFactor', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 479, 5), ) + __timeDownsamplingFactor = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'timeDownsamplingFactor'), 'timeDownsamplingFactor', '__httpwww_astron_nlSIP_Lofar_CoherentStokes_timeDownsamplingFactor', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 480, 5), ) timeDownsamplingFactor = property(__timeDownsamplingFactor.value, __timeDownsamplingFactor.set, None, None) # Element samplingTime uses Python identifier samplingTime - __samplingTime = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'samplingTime'), 'samplingTime', '__httpwww_astron_nlSIP_Lofar_CoherentStokes_samplingTime', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 480, 5), ) + __samplingTime = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'samplingTime'), 'samplingTime', '__httpwww_astron_nlSIP_Lofar_CoherentStokes_samplingTime', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 481, 5), ) samplingTime = property(__samplingTime.value, __samplingTime.set, None, None) # Element frequencyDownsamplingFactor uses Python identifier frequencyDownsamplingFactor - __frequencyDownsamplingFactor = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'frequencyDownsamplingFactor'), 'frequencyDownsamplingFactor', '__httpwww_astron_nlSIP_Lofar_CoherentStokes_frequencyDownsamplingFactor', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 481, 5), ) + __frequencyDownsamplingFactor = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'frequencyDownsamplingFactor'), 'frequencyDownsamplingFactor', '__httpwww_astron_nlSIP_Lofar_CoherentStokes_frequencyDownsamplingFactor', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 482, 5), ) frequencyDownsamplingFactor = property(__frequencyDownsamplingFactor.value, __frequencyDownsamplingFactor.set, None, None) # Element numberOfCollapsedChannels uses Python identifier numberOfCollapsedChannels - __numberOfCollapsedChannels = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfCollapsedChannels'), 'numberOfCollapsedChannels', '__httpwww_astron_nlSIP_Lofar_CoherentStokes_numberOfCollapsedChannels', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 482, 5), ) + __numberOfCollapsedChannels = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfCollapsedChannels'), 'numberOfCollapsedChannels', '__httpwww_astron_nlSIP_Lofar_CoherentStokes_numberOfCollapsedChannels', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 483, 5), ) numberOfCollapsedChannels = property(__numberOfCollapsedChannels.value, __numberOfCollapsedChannels.set, None, None) # Element stokes uses Python identifier stokes - __stokes = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'stokes'), 'stokes', '__httpwww_astron_nlSIP_Lofar_CoherentStokes_stokes', True, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 483, 5), ) + __stokes = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'stokes'), 'stokes', '__httpwww_astron_nlSIP_Lofar_CoherentStokes_stokes', True, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 484, 5), ) stokes = property(__stokes.value, __stokes.set, None, None) # Element numberOfStations uses Python identifier numberOfStations - __numberOfStations = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfStations'), 'numberOfStations', '__httpwww_astron_nlSIP_Lofar_CoherentStokes_numberOfStations', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 484, 5), ) + __numberOfStations = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfStations'), 'numberOfStations', '__httpwww_astron_nlSIP_Lofar_CoherentStokes_numberOfStations', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 485, 5), ) numberOfStations = property(__numberOfStations.value, __numberOfStations.set, None, None) # Element stations uses Python identifier stations - __stations = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'stations'), 'stations', '__httpwww_astron_nlSIP_Lofar_CoherentStokes_stations', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 485, 5), ) + __stations = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'stations'), 'stations', '__httpwww_astron_nlSIP_Lofar_CoherentStokes_stations', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 486, 5), ) stations = property(__stations.value, __stations.set, None, None) # Element channelWidth uses Python identifier channelWidth - __channelWidth = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelWidth'), 'channelWidth', '__httpwww_astron_nlSIP_Lofar_CoherentStokes_channelWidth', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 486, 5), ) + __channelWidth = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelWidth'), 'channelWidth', '__httpwww_astron_nlSIP_Lofar_CoherentStokes_channelWidth', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 487, 5), ) channelWidth = property(__channelWidth.value, __channelWidth.set, None, None) # Element channelsPerSubband uses Python identifier channelsPerSubband - __channelsPerSubband = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), 'channelsPerSubband', '__httpwww_astron_nlSIP_Lofar_CoherentStokes_channelsPerSubband', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 487, 5), ) + __channelsPerSubband = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), 'channelsPerSubband', '__httpwww_astron_nlSIP_Lofar_CoherentStokes_channelsPerSubband', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 488, 5), ) channelsPerSubband = property(__channelsPerSubband.value, __channelsPerSubband.set, None, None) @@ -2669,7 +2704,7 @@ class IncoherentStokes (RealTimeProcess): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'IncoherentStokes') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 492, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 493, 1) _ElementMap = RealTimeProcess._ElementMap.copy() _AttributeMap = RealTimeProcess._AttributeMap.copy() # Base type is RealTimeProcess @@ -2677,70 +2712,70 @@ class IncoherentStokes (RealTimeProcess): # Element processingType (processingType) inherited from {http://www.astron.nl/SIP-Lofar}RealTimeProcess # Element rawSamplingTime uses Python identifier rawSamplingTime - __rawSamplingTime = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'rawSamplingTime'), 'rawSamplingTime', '__httpwww_astron_nlSIP_Lofar_IncoherentStokes_rawSamplingTime', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 496, 5), ) + __rawSamplingTime = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'rawSamplingTime'), 'rawSamplingTime', '__httpwww_astron_nlSIP_Lofar_IncoherentStokes_rawSamplingTime', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 497, 5), ) rawSamplingTime = property(__rawSamplingTime.value, __rawSamplingTime.set, None, None) # Element timeDownsamplingFactor uses Python identifier timeDownsamplingFactor - __timeDownsamplingFactor = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'timeDownsamplingFactor'), 'timeDownsamplingFactor', '__httpwww_astron_nlSIP_Lofar_IncoherentStokes_timeDownsamplingFactor', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 497, 5), ) + __timeDownsamplingFactor = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'timeDownsamplingFactor'), 'timeDownsamplingFactor', '__httpwww_astron_nlSIP_Lofar_IncoherentStokes_timeDownsamplingFactor', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 498, 5), ) timeDownsamplingFactor = property(__timeDownsamplingFactor.value, __timeDownsamplingFactor.set, None, None) # Element samplingTime uses Python identifier samplingTime - __samplingTime = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'samplingTime'), 'samplingTime', '__httpwww_astron_nlSIP_Lofar_IncoherentStokes_samplingTime', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 498, 5), ) + __samplingTime = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'samplingTime'), 'samplingTime', '__httpwww_astron_nlSIP_Lofar_IncoherentStokes_samplingTime', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 499, 5), ) samplingTime = property(__samplingTime.value, __samplingTime.set, None, None) # Element frequencyDownsamplingFactor uses Python identifier frequencyDownsamplingFactor - __frequencyDownsamplingFactor = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'frequencyDownsamplingFactor'), 'frequencyDownsamplingFactor', '__httpwww_astron_nlSIP_Lofar_IncoherentStokes_frequencyDownsamplingFactor', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 499, 5), ) + __frequencyDownsamplingFactor = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'frequencyDownsamplingFactor'), 'frequencyDownsamplingFactor', '__httpwww_astron_nlSIP_Lofar_IncoherentStokes_frequencyDownsamplingFactor', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 500, 5), ) frequencyDownsamplingFactor = property(__frequencyDownsamplingFactor.value, __frequencyDownsamplingFactor.set, None, None) # Element numberOfCollapsedChannels uses Python identifier numberOfCollapsedChannels - __numberOfCollapsedChannels = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfCollapsedChannels'), 'numberOfCollapsedChannels', '__httpwww_astron_nlSIP_Lofar_IncoherentStokes_numberOfCollapsedChannels', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 500, 5), ) + __numberOfCollapsedChannels = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfCollapsedChannels'), 'numberOfCollapsedChannels', '__httpwww_astron_nlSIP_Lofar_IncoherentStokes_numberOfCollapsedChannels', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 501, 5), ) numberOfCollapsedChannels = property(__numberOfCollapsedChannels.value, __numberOfCollapsedChannels.set, None, None) # Element stokes uses Python identifier stokes - __stokes = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'stokes'), 'stokes', '__httpwww_astron_nlSIP_Lofar_IncoherentStokes_stokes', True, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 501, 5), ) + __stokes = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'stokes'), 'stokes', '__httpwww_astron_nlSIP_Lofar_IncoherentStokes_stokes', True, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 502, 5), ) stokes = property(__stokes.value, __stokes.set, None, None) # Element numberOfStations uses Python identifier numberOfStations - __numberOfStations = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfStations'), 'numberOfStations', '__httpwww_astron_nlSIP_Lofar_IncoherentStokes_numberOfStations', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 502, 5), ) + __numberOfStations = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfStations'), 'numberOfStations', '__httpwww_astron_nlSIP_Lofar_IncoherentStokes_numberOfStations', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 503, 5), ) numberOfStations = property(__numberOfStations.value, __numberOfStations.set, None, None) # Element stations uses Python identifier stations - __stations = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'stations'), 'stations', '__httpwww_astron_nlSIP_Lofar_IncoherentStokes_stations', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 503, 5), ) + __stations = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'stations'), 'stations', '__httpwww_astron_nlSIP_Lofar_IncoherentStokes_stations', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 504, 5), ) stations = property(__stations.value, __stations.set, None, None) # Element channelWidth uses Python identifier channelWidth - __channelWidth = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelWidth'), 'channelWidth', '__httpwww_astron_nlSIP_Lofar_IncoherentStokes_channelWidth', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 504, 5), ) + __channelWidth = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelWidth'), 'channelWidth', '__httpwww_astron_nlSIP_Lofar_IncoherentStokes_channelWidth', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 505, 5), ) channelWidth = property(__channelWidth.value, __channelWidth.set, None, None) # Element channelsPerSubband uses Python identifier channelsPerSubband - __channelsPerSubband = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), 'channelsPerSubband', '__httpwww_astron_nlSIP_Lofar_IncoherentStokes_channelsPerSubband', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 505, 5), ) + __channelsPerSubband = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), 'channelsPerSubband', '__httpwww_astron_nlSIP_Lofar_IncoherentStokes_channelsPerSubband', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 506, 5), ) channelsPerSubband = property(__channelsPerSubband.value, __channelsPerSubband.set, None, None) @@ -2771,7 +2806,7 @@ class FlysEye (RealTimeProcess): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'FlysEye') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 510, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 511, 1) _ElementMap = RealTimeProcess._ElementMap.copy() _AttributeMap = RealTimeProcess._AttributeMap.copy() # Base type is RealTimeProcess @@ -2779,42 +2814,42 @@ class FlysEye (RealTimeProcess): # Element processingType (processingType) inherited from {http://www.astron.nl/SIP-Lofar}RealTimeProcess # Element rawSamplingTime uses Python identifier rawSamplingTime - __rawSamplingTime = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'rawSamplingTime'), 'rawSamplingTime', '__httpwww_astron_nlSIP_Lofar_FlysEye_rawSamplingTime', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 514, 5), ) + __rawSamplingTime = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'rawSamplingTime'), 'rawSamplingTime', '__httpwww_astron_nlSIP_Lofar_FlysEye_rawSamplingTime', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 515, 5), ) rawSamplingTime = property(__rawSamplingTime.value, __rawSamplingTime.set, None, None) # Element timeDownsamplingFactor uses Python identifier timeDownsamplingFactor - __timeDownsamplingFactor = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'timeDownsamplingFactor'), 'timeDownsamplingFactor', '__httpwww_astron_nlSIP_Lofar_FlysEye_timeDownsamplingFactor', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 515, 5), ) + __timeDownsamplingFactor = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'timeDownsamplingFactor'), 'timeDownsamplingFactor', '__httpwww_astron_nlSIP_Lofar_FlysEye_timeDownsamplingFactor', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 516, 5), ) timeDownsamplingFactor = property(__timeDownsamplingFactor.value, __timeDownsamplingFactor.set, None, None) # Element samplingTime uses Python identifier samplingTime - __samplingTime = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'samplingTime'), 'samplingTime', '__httpwww_astron_nlSIP_Lofar_FlysEye_samplingTime', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 516, 5), ) + __samplingTime = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'samplingTime'), 'samplingTime', '__httpwww_astron_nlSIP_Lofar_FlysEye_samplingTime', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 517, 5), ) samplingTime = property(__samplingTime.value, __samplingTime.set, None, None) # Element stokes uses Python identifier stokes - __stokes = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'stokes'), 'stokes', '__httpwww_astron_nlSIP_Lofar_FlysEye_stokes', True, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 517, 5), ) + __stokes = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'stokes'), 'stokes', '__httpwww_astron_nlSIP_Lofar_FlysEye_stokes', True, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 518, 5), ) stokes = property(__stokes.value, __stokes.set, None, None) # Element channelWidth uses Python identifier channelWidth - __channelWidth = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelWidth'), 'channelWidth', '__httpwww_astron_nlSIP_Lofar_FlysEye_channelWidth', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 518, 5), ) + __channelWidth = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelWidth'), 'channelWidth', '__httpwww_astron_nlSIP_Lofar_FlysEye_channelWidth', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 519, 5), ) channelWidth = property(__channelWidth.value, __channelWidth.set, None, None) # Element channelsPerSubband uses Python identifier channelsPerSubband - __channelsPerSubband = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), 'channelsPerSubband', '__httpwww_astron_nlSIP_Lofar_FlysEye_channelsPerSubband', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 519, 5), ) + __channelsPerSubband = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), 'channelsPerSubband', '__httpwww_astron_nlSIP_Lofar_FlysEye_channelsPerSubband', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 520, 5), ) channelsPerSubband = property(__channelsPerSubband.value, __channelsPerSubband.set, None, None) @@ -2841,7 +2876,7 @@ class NonStandard (RealTimeProcess): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'NonStandard') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 524, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 525, 1) _ElementMap = RealTimeProcess._ElementMap.copy() _AttributeMap = RealTimeProcess._AttributeMap.copy() # Base type is RealTimeProcess @@ -2849,14 +2884,14 @@ class NonStandard (RealTimeProcess): # Element processingType (processingType) inherited from {http://www.astron.nl/SIP-Lofar}RealTimeProcess # Element channelWidth uses Python identifier channelWidth - __channelWidth = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelWidth'), 'channelWidth', '__httpwww_astron_nlSIP_Lofar_NonStandard_channelWidth', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 528, 5), ) + __channelWidth = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelWidth'), 'channelWidth', '__httpwww_astron_nlSIP_Lofar_NonStandard_channelWidth', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 529, 5), ) channelWidth = property(__channelWidth.value, __channelWidth.set, None, None) # Element channelsPerSubband uses Python identifier channelsPerSubband - __channelsPerSubband = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), 'channelsPerSubband', '__httpwww_astron_nlSIP_Lofar_NonStandard_channelsPerSubband', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 529, 5), ) + __channelsPerSubband = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), 'channelsPerSubband', '__httpwww_astron_nlSIP_Lofar_NonStandard_channelsPerSubband', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 530, 5), ) channelsPerSubband = property(__channelsPerSubband.value, __channelsPerSubband.set, None, None) @@ -2879,7 +2914,7 @@ class PipelineRun (Process): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'PipelineRun') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 585, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 586, 1) _ElementMap = Process._ElementMap.copy() _AttributeMap = Process._AttributeMap.copy() # Base type is Process @@ -2901,21 +2936,21 @@ class PipelineRun (Process): # Element relations (relations) inherited from {http://www.astron.nl/SIP-Lofar}Process # Element pipelineName uses Python identifier pipelineName - __pipelineName = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'pipelineName'), 'pipelineName', '__httpwww_astron_nlSIP_Lofar_PipelineRun_pipelineName', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 589, 5), ) + __pipelineName = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'pipelineName'), 'pipelineName', '__httpwww_astron_nlSIP_Lofar_PipelineRun_pipelineName', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 590, 5), ) pipelineName = property(__pipelineName.value, __pipelineName.set, None, None) # Element pipelineVersion uses Python identifier pipelineVersion - __pipelineVersion = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'pipelineVersion'), 'pipelineVersion', '__httpwww_astron_nlSIP_Lofar_PipelineRun_pipelineVersion', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 590, 5), ) + __pipelineVersion = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'pipelineVersion'), 'pipelineVersion', '__httpwww_astron_nlSIP_Lofar_PipelineRun_pipelineVersion', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 591, 5), ) pipelineVersion = property(__pipelineVersion.value, __pipelineVersion.set, None, None) # Element sourceData uses Python identifier sourceData - __sourceData = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'sourceData'), 'sourceData', '__httpwww_astron_nlSIP_Lofar_PipelineRun_sourceData', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 591, 5), ) + __sourceData = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'sourceData'), 'sourceData', '__httpwww_astron_nlSIP_Lofar_PipelineRun_sourceData', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 592, 5), ) sourceData = property(__sourceData.value, __sourceData.set, None, None) @@ -2939,7 +2974,7 @@ class CorrelatedDataProduct (DataProduct): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'CorrelatedDataProduct') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 808, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 820, 1) _ElementMap = DataProduct._ElementMap.copy() _AttributeMap = DataProduct._AttributeMap.copy() # Base type is DataProduct @@ -2958,66 +2993,70 @@ class CorrelatedDataProduct (DataProduct): # Element fileFormat (fileFormat) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + # Element storageWriter (storageWriter) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + + # Element storageWriterVersion (storageWriterVersion) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + # Element processIdentifier (processIdentifier) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct # Element subArrayPointingIdentifier uses Python identifier subArrayPointingIdentifier - __subArrayPointingIdentifier = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'subArrayPointingIdentifier'), 'subArrayPointingIdentifier', '__httpwww_astron_nlSIP_Lofar_CorrelatedDataProduct_subArrayPointingIdentifier', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 812, 5), ) + __subArrayPointingIdentifier = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'subArrayPointingIdentifier'), 'subArrayPointingIdentifier', '__httpwww_astron_nlSIP_Lofar_CorrelatedDataProduct_subArrayPointingIdentifier', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 824, 5), ) subArrayPointingIdentifier = property(__subArrayPointingIdentifier.value, __subArrayPointingIdentifier.set, None, None) # Element subband uses Python identifier subband - __subband = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'subband'), 'subband', '__httpwww_astron_nlSIP_Lofar_CorrelatedDataProduct_subband', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 813, 5), ) + __subband = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'subband'), 'subband', '__httpwww_astron_nlSIP_Lofar_CorrelatedDataProduct_subband', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 825, 5), ) subband = property(__subband.value, __subband.set, None, None) # Element stationSubband uses Python identifier stationSubband - __stationSubband = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'stationSubband'), 'stationSubband', '__httpwww_astron_nlSIP_Lofar_CorrelatedDataProduct_stationSubband', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 814, 5), ) + __stationSubband = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'stationSubband'), 'stationSubband', '__httpwww_astron_nlSIP_Lofar_CorrelatedDataProduct_stationSubband', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 826, 5), ) stationSubband = property(__stationSubband.value, __stationSubband.set, None, None) # Element startTime uses Python identifier startTime - __startTime = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'startTime'), 'startTime', '__httpwww_astron_nlSIP_Lofar_CorrelatedDataProduct_startTime', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 815, 5), ) + __startTime = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'startTime'), 'startTime', '__httpwww_astron_nlSIP_Lofar_CorrelatedDataProduct_startTime', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 827, 5), ) startTime = property(__startTime.value, __startTime.set, None, None) # Element duration uses Python identifier duration - __duration = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'duration'), 'duration', '__httpwww_astron_nlSIP_Lofar_CorrelatedDataProduct_duration', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 816, 5), ) + __duration = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'duration'), 'duration', '__httpwww_astron_nlSIP_Lofar_CorrelatedDataProduct_duration', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 828, 5), ) duration = property(__duration.value, __duration.set, None, None) # Element integrationInterval uses Python identifier integrationInterval - __integrationInterval = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'integrationInterval'), 'integrationInterval', '__httpwww_astron_nlSIP_Lofar_CorrelatedDataProduct_integrationInterval', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 817, 5), ) + __integrationInterval = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'integrationInterval'), 'integrationInterval', '__httpwww_astron_nlSIP_Lofar_CorrelatedDataProduct_integrationInterval', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 829, 5), ) integrationInterval = property(__integrationInterval.value, __integrationInterval.set, None, None) # Element centralFrequency uses Python identifier centralFrequency - __centralFrequency = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'centralFrequency'), 'centralFrequency', '__httpwww_astron_nlSIP_Lofar_CorrelatedDataProduct_centralFrequency', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 818, 5), ) + __centralFrequency = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'centralFrequency'), 'centralFrequency', '__httpwww_astron_nlSIP_Lofar_CorrelatedDataProduct_centralFrequency', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 830, 5), ) centralFrequency = property(__centralFrequency.value, __centralFrequency.set, None, None) # Element channelWidth uses Python identifier channelWidth - __channelWidth = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelWidth'), 'channelWidth', '__httpwww_astron_nlSIP_Lofar_CorrelatedDataProduct_channelWidth', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 819, 5), ) + __channelWidth = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelWidth'), 'channelWidth', '__httpwww_astron_nlSIP_Lofar_CorrelatedDataProduct_channelWidth', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 831, 5), ) channelWidth = property(__channelWidth.value, __channelWidth.set, None, None) # Element channelsPerSubband uses Python identifier channelsPerSubband - __channelsPerSubband = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), 'channelsPerSubband', '__httpwww_astron_nlSIP_Lofar_CorrelatedDataProduct_channelsPerSubband', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 820, 5), ) + __channelsPerSubband = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), 'channelsPerSubband', '__httpwww_astron_nlSIP_Lofar_CorrelatedDataProduct_channelsPerSubband', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 832, 5), ) channelsPerSubband = property(__channelsPerSubband.value, __channelsPerSubband.set, None, None) @@ -3047,7 +3086,7 @@ class InstrumentModelDataProduct (DataProduct): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'InstrumentModelDataProduct') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 830, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 842, 1) _ElementMap = DataProduct._ElementMap.copy() _AttributeMap = DataProduct._AttributeMap.copy() # Base type is DataProduct @@ -3066,6 +3105,10 @@ class InstrumentModelDataProduct (DataProduct): # Element fileFormat (fileFormat) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + # Element storageWriter (storageWriter) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + + # Element storageWriterVersion (storageWriterVersion) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + # Element processIdentifier (processIdentifier) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct _ElementMap.update({ @@ -3084,7 +3127,7 @@ class SkyModelDataProduct (DataProduct): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'SkyModelDataProduct') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 840, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 852, 1) _ElementMap = DataProduct._ElementMap.copy() _AttributeMap = DataProduct._AttributeMap.copy() # Base type is DataProduct @@ -3103,6 +3146,10 @@ class SkyModelDataProduct (DataProduct): # Element fileFormat (fileFormat) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + # Element storageWriter (storageWriter) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + + # Element storageWriterVersion (storageWriterVersion) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + # Element processIdentifier (processIdentifier) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct _ElementMap.update({ @@ -3121,7 +3168,7 @@ class TransientBufferBoardDataProduct (DataProduct): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'TransientBufferBoardDataProduct') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 851, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 863, 1) _ElementMap = DataProduct._ElementMap.copy() _AttributeMap = DataProduct._AttributeMap.copy() # Base type is DataProduct @@ -3140,24 +3187,28 @@ class TransientBufferBoardDataProduct (DataProduct): # Element fileFormat (fileFormat) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + # Element storageWriter (storageWriter) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + + # Element storageWriterVersion (storageWriterVersion) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + # Element processIdentifier (processIdentifier) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct # Element numberOfSamples uses Python identifier numberOfSamples - __numberOfSamples = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfSamples'), 'numberOfSamples', '__httpwww_astron_nlSIP_Lofar_TransientBufferBoardDataProduct_numberOfSamples', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 855, 5), ) + __numberOfSamples = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfSamples'), 'numberOfSamples', '__httpwww_astron_nlSIP_Lofar_TransientBufferBoardDataProduct_numberOfSamples', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 867, 5), ) numberOfSamples = property(__numberOfSamples.value, __numberOfSamples.set, None, None) # Element timeStamp uses Python identifier timeStamp - __timeStamp = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'timeStamp'), 'timeStamp', '__httpwww_astron_nlSIP_Lofar_TransientBufferBoardDataProduct_timeStamp', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 856, 5), ) + __timeStamp = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'timeStamp'), 'timeStamp', '__httpwww_astron_nlSIP_Lofar_TransientBufferBoardDataProduct_timeStamp', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 868, 5), ) timeStamp = property(__timeStamp.value, __timeStamp.set, None, None) # Element triggerParameters uses Python identifier triggerParameters - __triggerParameters = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'triggerParameters'), 'triggerParameters', '__httpwww_astron_nlSIP_Lofar_TransientBufferBoardDataProduct_triggerParameters', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 857, 5), ) + __triggerParameters = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'triggerParameters'), 'triggerParameters', '__httpwww_astron_nlSIP_Lofar_TransientBufferBoardDataProduct_triggerParameters', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 869, 5), ) triggerParameters = property(__triggerParameters.value, __triggerParameters.set, None, None) @@ -3181,7 +3232,7 @@ class CoherentStokesBeam (ArrayBeam): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'CoherentStokesBeam') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 896, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 908, 1) _ElementMap = ArrayBeam._ElementMap.copy() _AttributeMap = ArrayBeam._AttributeMap.copy() # Base type is ArrayBeam @@ -3207,14 +3258,14 @@ class CoherentStokesBeam (ArrayBeam): # Element stokes (stokes) inherited from {http://www.astron.nl/SIP-Lofar}ArrayBeam # Element pointing uses Python identifier pointing - __pointing = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'pointing'), 'pointing', '__httpwww_astron_nlSIP_Lofar_CoherentStokesBeam_pointing', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 900, 5), ) + __pointing = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'pointing'), 'pointing', '__httpwww_astron_nlSIP_Lofar_CoherentStokesBeam_pointing', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 912, 5), ) pointing = property(__pointing.value, __pointing.set, None, None) # Element offset uses Python identifier offset - __offset = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'offset'), 'offset', '__httpwww_astron_nlSIP_Lofar_CoherentStokesBeam_offset', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 901, 5), ) + __offset = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'offset'), 'offset', '__httpwww_astron_nlSIP_Lofar_CoherentStokesBeam_offset', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 913, 5), ) offset = property(__offset.value, __offset.set, None, None) @@ -3237,7 +3288,7 @@ class IncoherentStokesBeam (ArrayBeam): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'IncoherentStokesBeam') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 906, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 918, 1) _ElementMap = ArrayBeam._ElementMap.copy() _AttributeMap = ArrayBeam._AttributeMap.copy() # Base type is ArrayBeam @@ -3278,7 +3329,7 @@ class FlysEyeBeam (ArrayBeam): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'FlysEyeBeam') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 913, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 925, 1) _ElementMap = ArrayBeam._ElementMap.copy() _AttributeMap = ArrayBeam._AttributeMap.copy() # Base type is ArrayBeam @@ -3304,7 +3355,7 @@ class FlysEyeBeam (ArrayBeam): # Element stokes (stokes) inherited from {http://www.astron.nl/SIP-Lofar}ArrayBeam # Element station uses Python identifier station - __station = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'station'), 'station', '__httpwww_astron_nlSIP_Lofar_FlysEyeBeam_station', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 917, 5), ) + __station = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'station'), 'station', '__httpwww_astron_nlSIP_Lofar_FlysEyeBeam_station', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 929, 5), ) station = property(__station.value, __station.set, None, None) @@ -3326,7 +3377,7 @@ class BeamFormedDataProduct (DataProduct): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'BeamFormedDataProduct') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 922, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 934, 1) _ElementMap = DataProduct._ElementMap.copy() _AttributeMap = DataProduct._AttributeMap.copy() # Base type is DataProduct @@ -3345,17 +3396,21 @@ class BeamFormedDataProduct (DataProduct): # Element fileFormat (fileFormat) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + # Element storageWriter (storageWriter) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + + # Element storageWriterVersion (storageWriterVersion) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + # Element processIdentifier (processIdentifier) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct # Element numberOfBeams uses Python identifier numberOfBeams - __numberOfBeams = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfBeams'), 'numberOfBeams', '__httpwww_astron_nlSIP_Lofar_BeamFormedDataProduct_numberOfBeams', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 926, 5), ) + __numberOfBeams = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfBeams'), 'numberOfBeams', '__httpwww_astron_nlSIP_Lofar_BeamFormedDataProduct_numberOfBeams', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 938, 5), ) numberOfBeams = property(__numberOfBeams.value, __numberOfBeams.set, None, None) # Element beams uses Python identifier beams - __beams = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'beams'), 'beams', '__httpwww_astron_nlSIP_Lofar_BeamFormedDataProduct_beams', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 927, 5), ) + __beams = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'beams'), 'beams', '__httpwww_astron_nlSIP_Lofar_BeamFormedDataProduct_beams', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 939, 5), ) beams = property(__beams.value, __beams.set, None, None) @@ -3378,7 +3433,7 @@ class PulpSummaryDataProduct (DataProduct): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'PulpSummaryDataProduct') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 949, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 961, 1) _ElementMap = DataProduct._ElementMap.copy() _AttributeMap = DataProduct._AttributeMap.copy() # Base type is DataProduct @@ -3397,17 +3452,21 @@ class PulpSummaryDataProduct (DataProduct): # Element fileFormat (fileFormat) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + # Element storageWriter (storageWriter) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + + # Element storageWriterVersion (storageWriterVersion) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + # Element processIdentifier (processIdentifier) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct # Element fileContent uses Python identifier fileContent - __fileContent = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'fileContent'), 'fileContent', '__httpwww_astron_nlSIP_Lofar_PulpSummaryDataProduct_fileContent', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 953, 5), ) + __fileContent = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'fileContent'), 'fileContent', '__httpwww_astron_nlSIP_Lofar_PulpSummaryDataProduct_fileContent', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 965, 5), ) fileContent = property(__fileContent.value, __fileContent.set, None, None) # Element dataType uses Python identifier dataType - __dataType = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'dataType'), 'dataType', '__httpwww_astron_nlSIP_Lofar_PulpSummaryDataProduct_dataType', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 954, 5), ) + __dataType = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'dataType'), 'dataType', '__httpwww_astron_nlSIP_Lofar_PulpSummaryDataProduct_dataType', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 966, 5), ) dataType = property(__dataType.value, __dataType.set, None, None) @@ -3430,7 +3489,7 @@ class PulpDataProduct (DataProduct): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'PulpDataProduct') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 959, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 971, 1) _ElementMap = DataProduct._ElementMap.copy() _AttributeMap = DataProduct._AttributeMap.copy() # Base type is DataProduct @@ -3449,24 +3508,28 @@ class PulpDataProduct (DataProduct): # Element fileFormat (fileFormat) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + # Element storageWriter (storageWriter) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + + # Element storageWriterVersion (storageWriterVersion) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + # Element processIdentifier (processIdentifier) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct # Element fileContent uses Python identifier fileContent - __fileContent = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'fileContent'), 'fileContent', '__httpwww_astron_nlSIP_Lofar_PulpDataProduct_fileContent', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 963, 5), ) + __fileContent = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'fileContent'), 'fileContent', '__httpwww_astron_nlSIP_Lofar_PulpDataProduct_fileContent', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 975, 5), ) fileContent = property(__fileContent.value, __fileContent.set, None, None) # Element dataType uses Python identifier dataType - __dataType = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'dataType'), 'dataType', '__httpwww_astron_nlSIP_Lofar_PulpDataProduct_dataType', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 964, 5), ) + __dataType = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'dataType'), 'dataType', '__httpwww_astron_nlSIP_Lofar_PulpDataProduct_dataType', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 976, 5), ) dataType = property(__dataType.value, __dataType.set, None, None) # Element arrayBeam uses Python identifier arrayBeam - __arrayBeam = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'arrayBeam'), 'arrayBeam', '__httpwww_astron_nlSIP_Lofar_PulpDataProduct_arrayBeam', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 965, 5), ) + __arrayBeam = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'arrayBeam'), 'arrayBeam', '__httpwww_astron_nlSIP_Lofar_PulpDataProduct_arrayBeam', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 977, 5), ) arrayBeam = property(__arrayBeam.value, __arrayBeam.set, None, None) @@ -3490,7 +3553,7 @@ class GenericDataProduct (DataProduct): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'GenericDataProduct') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 977, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 989, 1) _ElementMap = DataProduct._ElementMap.copy() _AttributeMap = DataProduct._AttributeMap.copy() # Base type is DataProduct @@ -3509,6 +3572,10 @@ class GenericDataProduct (DataProduct): # Element fileFormat (fileFormat) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + # Element storageWriter (storageWriter) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + + # Element storageWriterVersion (storageWriterVersion) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + # Element processIdentifier (processIdentifier) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct _ElementMap.update({ @@ -3527,7 +3594,7 @@ class UnspecifiedDataProduct (DataProduct): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'UnspecifiedDataProduct') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 982, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 994, 1) _ElementMap = DataProduct._ElementMap.copy() _AttributeMap = DataProduct._AttributeMap.copy() # Base type is DataProduct @@ -3546,6 +3613,10 @@ class UnspecifiedDataProduct (DataProduct): # Element fileFormat (fileFormat) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + # Element storageWriter (storageWriter) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + + # Element storageWriterVersion (storageWriterVersion) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + # Element processIdentifier (processIdentifier) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct _ElementMap.update({ @@ -3564,7 +3635,7 @@ class LinearAxis (Axis): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'LinearAxis') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1002, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1014, 1) _ElementMap = Axis._ElementMap.copy() _AttributeMap = Axis._AttributeMap.copy() # Base type is Axis @@ -3578,21 +3649,21 @@ class LinearAxis (Axis): # Element length (length) inherited from {http://www.astron.nl/SIP-Lofar}Axis # Element increment uses Python identifier increment - __increment = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'increment'), 'increment', '__httpwww_astron_nlSIP_Lofar_LinearAxis_increment', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1006, 5), ) + __increment = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'increment'), 'increment', '__httpwww_astron_nlSIP_Lofar_LinearAxis_increment', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1018, 5), ) increment = property(__increment.value, __increment.set, None, None) # Element referencePixel uses Python identifier referencePixel - __referencePixel = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'referencePixel'), 'referencePixel', '__httpwww_astron_nlSIP_Lofar_LinearAxis_referencePixel', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1007, 5), ) + __referencePixel = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'referencePixel'), 'referencePixel', '__httpwww_astron_nlSIP_Lofar_LinearAxis_referencePixel', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1019, 5), ) referencePixel = property(__referencePixel.value, __referencePixel.set, None, None) # Element referenceValue uses Python identifier referenceValue - __referenceValue = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'referenceValue'), 'referenceValue', '__httpwww_astron_nlSIP_Lofar_LinearAxis_referenceValue', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1008, 5), ) + __referenceValue = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'referenceValue'), 'referenceValue', '__httpwww_astron_nlSIP_Lofar_LinearAxis_referenceValue', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1020, 5), ) referenceValue = property(__referenceValue.value, __referenceValue.set, None, None) @@ -3616,7 +3687,7 @@ class TabularAxis (Axis): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'TabularAxis') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1013, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1025, 1) _ElementMap = Axis._ElementMap.copy() _AttributeMap = Axis._AttributeMap.copy() # Base type is Axis @@ -3645,83 +3716,83 @@ class DirectionCoordinate (Coordinate): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'DirectionCoordinate') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1048, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1060, 1) _ElementMap = Coordinate._ElementMap.copy() _AttributeMap = Coordinate._AttributeMap.copy() # Base type is Coordinate # Element directionLinearAxis uses Python identifier directionLinearAxis - __directionLinearAxis = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'directionLinearAxis'), 'directionLinearAxis', '__httpwww_astron_nlSIP_Lofar_DirectionCoordinate_directionLinearAxis', True, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1052, 5), ) + __directionLinearAxis = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'directionLinearAxis'), 'directionLinearAxis', '__httpwww_astron_nlSIP_Lofar_DirectionCoordinate_directionLinearAxis', True, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1064, 5), ) directionLinearAxis = property(__directionLinearAxis.value, __directionLinearAxis.set, None, None) # Element PC0_0 uses Python identifier PC0_0 - __PC0_0 = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'PC0_0'), 'PC0_0', '__httpwww_astron_nlSIP_Lofar_DirectionCoordinate_PC0_0', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1053, 5), ) + __PC0_0 = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'PC0_0'), 'PC0_0', '__httpwww_astron_nlSIP_Lofar_DirectionCoordinate_PC0_0', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1065, 5), ) PC0_0 = property(__PC0_0.value, __PC0_0.set, None, None) # Element PC0_1 uses Python identifier PC0_1 - __PC0_1 = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'PC0_1'), 'PC0_1', '__httpwww_astron_nlSIP_Lofar_DirectionCoordinate_PC0_1', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1054, 5), ) + __PC0_1 = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'PC0_1'), 'PC0_1', '__httpwww_astron_nlSIP_Lofar_DirectionCoordinate_PC0_1', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1066, 5), ) PC0_1 = property(__PC0_1.value, __PC0_1.set, None, None) # Element PC1_0 uses Python identifier PC1_0 - __PC1_0 = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'PC1_0'), 'PC1_0', '__httpwww_astron_nlSIP_Lofar_DirectionCoordinate_PC1_0', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1055, 5), ) + __PC1_0 = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'PC1_0'), 'PC1_0', '__httpwww_astron_nlSIP_Lofar_DirectionCoordinate_PC1_0', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1067, 5), ) PC1_0 = property(__PC1_0.value, __PC1_0.set, None, None) # Element PC1_1 uses Python identifier PC1_1 - __PC1_1 = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'PC1_1'), 'PC1_1', '__httpwww_astron_nlSIP_Lofar_DirectionCoordinate_PC1_1', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1056, 5), ) + __PC1_1 = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'PC1_1'), 'PC1_1', '__httpwww_astron_nlSIP_Lofar_DirectionCoordinate_PC1_1', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1068, 5), ) PC1_1 = property(__PC1_1.value, __PC1_1.set, None, None) # Element equinox uses Python identifier equinox - __equinox = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'equinox'), 'equinox', '__httpwww_astron_nlSIP_Lofar_DirectionCoordinate_equinox', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1057, 5), ) + __equinox = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'equinox'), 'equinox', '__httpwww_astron_nlSIP_Lofar_DirectionCoordinate_equinox', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1069, 5), ) equinox = property(__equinox.value, __equinox.set, None, None) # Element raDecSystem uses Python identifier raDecSystem - __raDecSystem = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'raDecSystem'), 'raDecSystem', '__httpwww_astron_nlSIP_Lofar_DirectionCoordinate_raDecSystem', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1058, 5), ) + __raDecSystem = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'raDecSystem'), 'raDecSystem', '__httpwww_astron_nlSIP_Lofar_DirectionCoordinate_raDecSystem', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1070, 5), ) raDecSystem = property(__raDecSystem.value, __raDecSystem.set, None, None) # Element projection uses Python identifier projection - __projection = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'projection'), 'projection', '__httpwww_astron_nlSIP_Lofar_DirectionCoordinate_projection', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1059, 5), ) + __projection = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'projection'), 'projection', '__httpwww_astron_nlSIP_Lofar_DirectionCoordinate_projection', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1071, 5), ) projection = property(__projection.value, __projection.set, None, None) # Element projectionParameters uses Python identifier projectionParameters - __projectionParameters = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'projectionParameters'), 'projectionParameters', '__httpwww_astron_nlSIP_Lofar_DirectionCoordinate_projectionParameters', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1060, 5), ) + __projectionParameters = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'projectionParameters'), 'projectionParameters', '__httpwww_astron_nlSIP_Lofar_DirectionCoordinate_projectionParameters', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1072, 5), ) projectionParameters = property(__projectionParameters.value, __projectionParameters.set, None, None) # Element longitudePole uses Python identifier longitudePole - __longitudePole = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'longitudePole'), 'longitudePole', '__httpwww_astron_nlSIP_Lofar_DirectionCoordinate_longitudePole', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1061, 5), ) + __longitudePole = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'longitudePole'), 'longitudePole', '__httpwww_astron_nlSIP_Lofar_DirectionCoordinate_longitudePole', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1073, 5), ) longitudePole = property(__longitudePole.value, __longitudePole.set, None, None) # Element latitudePole uses Python identifier latitudePole - __latitudePole = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'latitudePole'), 'latitudePole', '__httpwww_astron_nlSIP_Lofar_DirectionCoordinate_latitudePole', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1062, 5), ) + __latitudePole = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'latitudePole'), 'latitudePole', '__httpwww_astron_nlSIP_Lofar_DirectionCoordinate_latitudePole', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1074, 5), ) latitudePole = property(__latitudePole.value, __latitudePole.set, None, None) @@ -3753,27 +3824,27 @@ class SpectralCoordinate (Coordinate): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'SpectralCoordinate') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1087, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1099, 1) _ElementMap = Coordinate._ElementMap.copy() _AttributeMap = Coordinate._AttributeMap.copy() # Base type is Coordinate # Element spectralLinearAxis uses Python identifier spectralLinearAxis - __spectralLinearAxis = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'spectralLinearAxis'), 'spectralLinearAxis', '__httpwww_astron_nlSIP_Lofar_SpectralCoordinate_spectralLinearAxis', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1092, 6), ) + __spectralLinearAxis = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'spectralLinearAxis'), 'spectralLinearAxis', '__httpwww_astron_nlSIP_Lofar_SpectralCoordinate_spectralLinearAxis', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1104, 6), ) spectralLinearAxis = property(__spectralLinearAxis.value, __spectralLinearAxis.set, None, None) # Element spectralTabularAxis uses Python identifier spectralTabularAxis - __spectralTabularAxis = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'spectralTabularAxis'), 'spectralTabularAxis', '__httpwww_astron_nlSIP_Lofar_SpectralCoordinate_spectralTabularAxis', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1093, 6), ) + __spectralTabularAxis = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'spectralTabularAxis'), 'spectralTabularAxis', '__httpwww_astron_nlSIP_Lofar_SpectralCoordinate_spectralTabularAxis', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1105, 6), ) spectralTabularAxis = property(__spectralTabularAxis.value, __spectralTabularAxis.set, None, None) # Element spectralQuantity uses Python identifier spectralQuantity - __spectralQuantity = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'spectralQuantity'), 'spectralQuantity', '__httpwww_astron_nlSIP_Lofar_SpectralCoordinate_spectralQuantity', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1095, 5), ) + __spectralQuantity = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'spectralQuantity'), 'spectralQuantity', '__httpwww_astron_nlSIP_Lofar_SpectralCoordinate_spectralQuantity', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1107, 5), ) spectralQuantity = property(__spectralQuantity.value, __spectralQuantity.set, None, None) @@ -3797,27 +3868,27 @@ class TimeCoordinate (Coordinate): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'TimeCoordinate') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1100, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1112, 1) _ElementMap = Coordinate._ElementMap.copy() _AttributeMap = Coordinate._AttributeMap.copy() # Base type is Coordinate # Element timeLinearAxis uses Python identifier timeLinearAxis - __timeLinearAxis = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'timeLinearAxis'), 'timeLinearAxis', '__httpwww_astron_nlSIP_Lofar_TimeCoordinate_timeLinearAxis', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1105, 6), ) + __timeLinearAxis = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'timeLinearAxis'), 'timeLinearAxis', '__httpwww_astron_nlSIP_Lofar_TimeCoordinate_timeLinearAxis', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1117, 6), ) timeLinearAxis = property(__timeLinearAxis.value, __timeLinearAxis.set, None, None) # Element timeTabularAxis uses Python identifier timeTabularAxis - __timeTabularAxis = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'timeTabularAxis'), 'timeTabularAxis', '__httpwww_astron_nlSIP_Lofar_TimeCoordinate_timeTabularAxis', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1106, 6), ) + __timeTabularAxis = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'timeTabularAxis'), 'timeTabularAxis', '__httpwww_astron_nlSIP_Lofar_TimeCoordinate_timeTabularAxis', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1118, 6), ) timeTabularAxis = property(__timeTabularAxis.value, __timeTabularAxis.set, None, None) # Element equinox uses Python identifier equinox - __equinox = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'equinox'), 'equinox', '__httpwww_astron_nlSIP_Lofar_TimeCoordinate_equinox', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1108, 5), ) + __equinox = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'equinox'), 'equinox', '__httpwww_astron_nlSIP_Lofar_TimeCoordinate_equinox', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1120, 5), ) equinox = property(__equinox.value, __equinox.set, None, None) @@ -3841,20 +3912,20 @@ class PolarizationCoordinate (Coordinate): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'PolarizationCoordinate') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1113, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1125, 1) _ElementMap = Coordinate._ElementMap.copy() _AttributeMap = Coordinate._AttributeMap.copy() # Base type is Coordinate # Element polarizationTabularAxis uses Python identifier polarizationTabularAxis - __polarizationTabularAxis = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'polarizationTabularAxis'), 'polarizationTabularAxis', '__httpwww_astron_nlSIP_Lofar_PolarizationCoordinate_polarizationTabularAxis', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1117, 5), ) + __polarizationTabularAxis = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'polarizationTabularAxis'), 'polarizationTabularAxis', '__httpwww_astron_nlSIP_Lofar_PolarizationCoordinate_polarizationTabularAxis', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1129, 5), ) polarizationTabularAxis = property(__polarizationTabularAxis.value, __polarizationTabularAxis.set, None, None) # Element polarization uses Python identifier polarization - __polarization = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'polarization'), 'polarization', '__httpwww_astron_nlSIP_Lofar_PolarizationCoordinate_polarization', True, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1118, 5), ) + __polarization = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'polarization'), 'polarization', '__httpwww_astron_nlSIP_Lofar_PolarizationCoordinate_polarization', True, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1130, 5), ) polarization = property(__polarization.value, __polarization.set, None, None) @@ -3877,7 +3948,7 @@ class PixelMapDataProduct (DataProduct): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'PixelMapDataProduct') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1128, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1140, 1) _ElementMap = DataProduct._ElementMap.copy() _AttributeMap = DataProduct._AttributeMap.copy() # Base type is DataProduct @@ -3896,24 +3967,28 @@ class PixelMapDataProduct (DataProduct): # Element fileFormat (fileFormat) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + # Element storageWriter (storageWriter) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + + # Element storageWriterVersion (storageWriterVersion) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + # Element processIdentifier (processIdentifier) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct # Element numberOfAxes uses Python identifier numberOfAxes - __numberOfAxes = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfAxes'), 'numberOfAxes', '__httpwww_astron_nlSIP_Lofar_PixelMapDataProduct_numberOfAxes', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1132, 5), ) + __numberOfAxes = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfAxes'), 'numberOfAxes', '__httpwww_astron_nlSIP_Lofar_PixelMapDataProduct_numberOfAxes', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1144, 5), ) numberOfAxes = property(__numberOfAxes.value, __numberOfAxes.set, None, None) # Element numberOfCoordinates uses Python identifier numberOfCoordinates - __numberOfCoordinates = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfCoordinates'), 'numberOfCoordinates', '__httpwww_astron_nlSIP_Lofar_PixelMapDataProduct_numberOfCoordinates', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1133, 5), ) + __numberOfCoordinates = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfCoordinates'), 'numberOfCoordinates', '__httpwww_astron_nlSIP_Lofar_PixelMapDataProduct_numberOfCoordinates', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1145, 5), ) numberOfCoordinates = property(__numberOfCoordinates.value, __numberOfCoordinates.set, None, None) # Element coordinate uses Python identifier coordinate - __coordinate = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'coordinate'), 'coordinate', '__httpwww_astron_nlSIP_Lofar_PixelMapDataProduct_coordinate', True, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1134, 5), ) + __coordinate = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'coordinate'), 'coordinate', '__httpwww_astron_nlSIP_Lofar_PixelMapDataProduct_coordinate', True, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1146, 5), ) coordinate = property(__coordinate.value, __coordinate.set, None, None) @@ -3937,7 +4012,7 @@ class ClockType (Frequency): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_SIMPLE _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'ClockType') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 285, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 286, 1) _ElementMap = Frequency._ElementMap.copy() _AttributeMap = Frequency._AttributeMap.copy() # Base type is Frequency @@ -3946,8 +4021,8 @@ class ClockType (Frequency): # Attribute units uses Python identifier units __units = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'units'), 'units', '__httpwww_astron_nlSIP_Lofar_Frequency_units', _module_typeBindings.FrequencyUnit, fixed=True, unicode_default='MHz', required=True) - __units._DeclarationLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 290, 4) - __units._UseLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 290, 4) + __units._DeclarationLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 291, 4) + __units._UseLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 291, 4) units = property(__units.value, __units.set, None, None) @@ -3968,7 +4043,7 @@ class ImagingPipeline (PipelineRun): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'ImagingPipeline') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 599, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 600, 1) _ElementMap = PipelineRun._ElementMap.copy() _AttributeMap = PipelineRun._AttributeMap.copy() # Base type is PipelineRun @@ -3996,63 +4071,63 @@ class ImagingPipeline (PipelineRun): # Element sourceData (sourceData) inherited from {http://www.astron.nl/SIP-Lofar}PipelineRun # Element frequencyIntegrationStep uses Python identifier frequencyIntegrationStep - __frequencyIntegrationStep = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'frequencyIntegrationStep'), 'frequencyIntegrationStep', '__httpwww_astron_nlSIP_Lofar_ImagingPipeline_frequencyIntegrationStep', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 603, 5), ) + __frequencyIntegrationStep = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'frequencyIntegrationStep'), 'frequencyIntegrationStep', '__httpwww_astron_nlSIP_Lofar_ImagingPipeline_frequencyIntegrationStep', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 604, 5), ) frequencyIntegrationStep = property(__frequencyIntegrationStep.value, __frequencyIntegrationStep.set, None, None) # Element timeIntegrationStep uses Python identifier timeIntegrationStep - __timeIntegrationStep = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'timeIntegrationStep'), 'timeIntegrationStep', '__httpwww_astron_nlSIP_Lofar_ImagingPipeline_timeIntegrationStep', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 604, 5), ) + __timeIntegrationStep = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'timeIntegrationStep'), 'timeIntegrationStep', '__httpwww_astron_nlSIP_Lofar_ImagingPipeline_timeIntegrationStep', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 605, 5), ) timeIntegrationStep = property(__timeIntegrationStep.value, __timeIntegrationStep.set, None, None) # Element skyModelDatabase uses Python identifier skyModelDatabase - __skyModelDatabase = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'skyModelDatabase'), 'skyModelDatabase', '__httpwww_astron_nlSIP_Lofar_ImagingPipeline_skyModelDatabase', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 605, 5), ) + __skyModelDatabase = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'skyModelDatabase'), 'skyModelDatabase', '__httpwww_astron_nlSIP_Lofar_ImagingPipeline_skyModelDatabase', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 606, 5), ) skyModelDatabase = property(__skyModelDatabase.value, __skyModelDatabase.set, None, None) # Element demixing uses Python identifier demixing - __demixing = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'demixing'), 'demixing', '__httpwww_astron_nlSIP_Lofar_ImagingPipeline_demixing', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 606, 5), ) + __demixing = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'demixing'), 'demixing', '__httpwww_astron_nlSIP_Lofar_ImagingPipeline_demixing', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 607, 5), ) demixing = property(__demixing.value, __demixing.set, None, None) # Element imagerIntegrationTime uses Python identifier imagerIntegrationTime - __imagerIntegrationTime = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'imagerIntegrationTime'), 'imagerIntegrationTime', '__httpwww_astron_nlSIP_Lofar_ImagingPipeline_imagerIntegrationTime', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 607, 5), ) + __imagerIntegrationTime = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'imagerIntegrationTime'), 'imagerIntegrationTime', '__httpwww_astron_nlSIP_Lofar_ImagingPipeline_imagerIntegrationTime', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 608, 5), ) imagerIntegrationTime = property(__imagerIntegrationTime.value, __imagerIntegrationTime.set, None, None) # Element numberOfMajorCycles uses Python identifier numberOfMajorCycles - __numberOfMajorCycles = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfMajorCycles'), 'numberOfMajorCycles', '__httpwww_astron_nlSIP_Lofar_ImagingPipeline_numberOfMajorCycles', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 608, 5), ) + __numberOfMajorCycles = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfMajorCycles'), 'numberOfMajorCycles', '__httpwww_astron_nlSIP_Lofar_ImagingPipeline_numberOfMajorCycles', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 609, 5), ) numberOfMajorCycles = property(__numberOfMajorCycles.value, __numberOfMajorCycles.set, None, None) # Element numberOfInstrumentModels uses Python identifier numberOfInstrumentModels - __numberOfInstrumentModels = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfInstrumentModels'), 'numberOfInstrumentModels', '__httpwww_astron_nlSIP_Lofar_ImagingPipeline_numberOfInstrumentModels', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 609, 5), ) + __numberOfInstrumentModels = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfInstrumentModels'), 'numberOfInstrumentModels', '__httpwww_astron_nlSIP_Lofar_ImagingPipeline_numberOfInstrumentModels', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 610, 5), ) numberOfInstrumentModels = property(__numberOfInstrumentModels.value, __numberOfInstrumentModels.set, None, None) # Element numberOfCorrelatedDataProducts uses Python identifier numberOfCorrelatedDataProducts - __numberOfCorrelatedDataProducts = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts'), 'numberOfCorrelatedDataProducts', '__httpwww_astron_nlSIP_Lofar_ImagingPipeline_numberOfCorrelatedDataProducts', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 610, 5), ) + __numberOfCorrelatedDataProducts = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts'), 'numberOfCorrelatedDataProducts', '__httpwww_astron_nlSIP_Lofar_ImagingPipeline_numberOfCorrelatedDataProducts', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 611, 5), ) numberOfCorrelatedDataProducts = property(__numberOfCorrelatedDataProducts.value, __numberOfCorrelatedDataProducts.set, None, None) # Element numberOfSkyImages uses Python identifier numberOfSkyImages - __numberOfSkyImages = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfSkyImages'), 'numberOfSkyImages', '__httpwww_astron_nlSIP_Lofar_ImagingPipeline_numberOfSkyImages', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 611, 5), ) + __numberOfSkyImages = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfSkyImages'), 'numberOfSkyImages', '__httpwww_astron_nlSIP_Lofar_ImagingPipeline_numberOfSkyImages', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 612, 5), ) numberOfSkyImages = property(__numberOfSkyImages.value, __numberOfSkyImages.set, None, None) @@ -4082,7 +4157,7 @@ class CalibrationPipeline (PipelineRun): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'CalibrationPipeline') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 616, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 617, 1) _ElementMap = PipelineRun._ElementMap.copy() _AttributeMap = PipelineRun._AttributeMap.copy() # Base type is PipelineRun @@ -4110,49 +4185,49 @@ class CalibrationPipeline (PipelineRun): # Element sourceData (sourceData) inherited from {http://www.astron.nl/SIP-Lofar}PipelineRun # Element frequencyIntegrationStep uses Python identifier frequencyIntegrationStep - __frequencyIntegrationStep = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'frequencyIntegrationStep'), 'frequencyIntegrationStep', '__httpwww_astron_nlSIP_Lofar_CalibrationPipeline_frequencyIntegrationStep', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 620, 5), ) + __frequencyIntegrationStep = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'frequencyIntegrationStep'), 'frequencyIntegrationStep', '__httpwww_astron_nlSIP_Lofar_CalibrationPipeline_frequencyIntegrationStep', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 621, 5), ) frequencyIntegrationStep = property(__frequencyIntegrationStep.value, __frequencyIntegrationStep.set, None, None) # Element timeIntegrationStep uses Python identifier timeIntegrationStep - __timeIntegrationStep = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'timeIntegrationStep'), 'timeIntegrationStep', '__httpwww_astron_nlSIP_Lofar_CalibrationPipeline_timeIntegrationStep', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 621, 5), ) + __timeIntegrationStep = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'timeIntegrationStep'), 'timeIntegrationStep', '__httpwww_astron_nlSIP_Lofar_CalibrationPipeline_timeIntegrationStep', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 622, 5), ) timeIntegrationStep = property(__timeIntegrationStep.value, __timeIntegrationStep.set, None, None) # Element flagAutoCorrelations uses Python identifier flagAutoCorrelations - __flagAutoCorrelations = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'flagAutoCorrelations'), 'flagAutoCorrelations', '__httpwww_astron_nlSIP_Lofar_CalibrationPipeline_flagAutoCorrelations', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 622, 5), ) + __flagAutoCorrelations = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'flagAutoCorrelations'), 'flagAutoCorrelations', '__httpwww_astron_nlSIP_Lofar_CalibrationPipeline_flagAutoCorrelations', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 623, 5), ) flagAutoCorrelations = property(__flagAutoCorrelations.value, __flagAutoCorrelations.set, None, None) # Element demixing uses Python identifier demixing - __demixing = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'demixing'), 'demixing', '__httpwww_astron_nlSIP_Lofar_CalibrationPipeline_demixing', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 623, 5), ) + __demixing = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'demixing'), 'demixing', '__httpwww_astron_nlSIP_Lofar_CalibrationPipeline_demixing', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 624, 5), ) demixing = property(__demixing.value, __demixing.set, None, None) # Element skyModelDatabase uses Python identifier skyModelDatabase - __skyModelDatabase = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'skyModelDatabase'), 'skyModelDatabase', '__httpwww_astron_nlSIP_Lofar_CalibrationPipeline_skyModelDatabase', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 624, 5), ) + __skyModelDatabase = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'skyModelDatabase'), 'skyModelDatabase', '__httpwww_astron_nlSIP_Lofar_CalibrationPipeline_skyModelDatabase', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 625, 5), ) skyModelDatabase = property(__skyModelDatabase.value, __skyModelDatabase.set, None, None) # Element numberOfInstrumentModels uses Python identifier numberOfInstrumentModels - __numberOfInstrumentModels = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfInstrumentModels'), 'numberOfInstrumentModels', '__httpwww_astron_nlSIP_Lofar_CalibrationPipeline_numberOfInstrumentModels', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 625, 5), ) + __numberOfInstrumentModels = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfInstrumentModels'), 'numberOfInstrumentModels', '__httpwww_astron_nlSIP_Lofar_CalibrationPipeline_numberOfInstrumentModels', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 626, 5), ) numberOfInstrumentModels = property(__numberOfInstrumentModels.value, __numberOfInstrumentModels.set, None, None) # Element numberOfCorrelatedDataProducts uses Python identifier numberOfCorrelatedDataProducts - __numberOfCorrelatedDataProducts = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts'), 'numberOfCorrelatedDataProducts', '__httpwww_astron_nlSIP_Lofar_CalibrationPipeline_numberOfCorrelatedDataProducts', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 626, 5), ) + __numberOfCorrelatedDataProducts = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts'), 'numberOfCorrelatedDataProducts', '__httpwww_astron_nlSIP_Lofar_CalibrationPipeline_numberOfCorrelatedDataProducts', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 627, 5), ) numberOfCorrelatedDataProducts = property(__numberOfCorrelatedDataProducts.value, __numberOfCorrelatedDataProducts.set, None, None) @@ -4180,7 +4255,7 @@ class AveragingPipeline (PipelineRun): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'AveragingPipeline') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 631, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 632, 1) _ElementMap = PipelineRun._ElementMap.copy() _AttributeMap = PipelineRun._AttributeMap.copy() # Base type is PipelineRun @@ -4208,35 +4283,35 @@ class AveragingPipeline (PipelineRun): # Element sourceData (sourceData) inherited from {http://www.astron.nl/SIP-Lofar}PipelineRun # Element frequencyIntegrationStep uses Python identifier frequencyIntegrationStep - __frequencyIntegrationStep = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'frequencyIntegrationStep'), 'frequencyIntegrationStep', '__httpwww_astron_nlSIP_Lofar_AveragingPipeline_frequencyIntegrationStep', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 635, 5), ) + __frequencyIntegrationStep = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'frequencyIntegrationStep'), 'frequencyIntegrationStep', '__httpwww_astron_nlSIP_Lofar_AveragingPipeline_frequencyIntegrationStep', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 636, 5), ) frequencyIntegrationStep = property(__frequencyIntegrationStep.value, __frequencyIntegrationStep.set, None, None) # Element timeIntegrationStep uses Python identifier timeIntegrationStep - __timeIntegrationStep = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'timeIntegrationStep'), 'timeIntegrationStep', '__httpwww_astron_nlSIP_Lofar_AveragingPipeline_timeIntegrationStep', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 636, 5), ) + __timeIntegrationStep = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'timeIntegrationStep'), 'timeIntegrationStep', '__httpwww_astron_nlSIP_Lofar_AveragingPipeline_timeIntegrationStep', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 637, 5), ) timeIntegrationStep = property(__timeIntegrationStep.value, __timeIntegrationStep.set, None, None) # Element flagAutoCorrelations uses Python identifier flagAutoCorrelations - __flagAutoCorrelations = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'flagAutoCorrelations'), 'flagAutoCorrelations', '__httpwww_astron_nlSIP_Lofar_AveragingPipeline_flagAutoCorrelations', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 637, 5), ) + __flagAutoCorrelations = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'flagAutoCorrelations'), 'flagAutoCorrelations', '__httpwww_astron_nlSIP_Lofar_AveragingPipeline_flagAutoCorrelations', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 638, 5), ) flagAutoCorrelations = property(__flagAutoCorrelations.value, __flagAutoCorrelations.set, None, None) # Element demixing uses Python identifier demixing - __demixing = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'demixing'), 'demixing', '__httpwww_astron_nlSIP_Lofar_AveragingPipeline_demixing', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 638, 5), ) + __demixing = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'demixing'), 'demixing', '__httpwww_astron_nlSIP_Lofar_AveragingPipeline_demixing', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 639, 5), ) demixing = property(__demixing.value, __demixing.set, None, None) # Element numberOfCorrelatedDataProducts uses Python identifier numberOfCorrelatedDataProducts - __numberOfCorrelatedDataProducts = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts'), 'numberOfCorrelatedDataProducts', '__httpwww_astron_nlSIP_Lofar_AveragingPipeline_numberOfCorrelatedDataProducts', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 639, 5), ) + __numberOfCorrelatedDataProducts = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts'), 'numberOfCorrelatedDataProducts', '__httpwww_astron_nlSIP_Lofar_AveragingPipeline_numberOfCorrelatedDataProducts', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 640, 5), ) numberOfCorrelatedDataProducts = property(__numberOfCorrelatedDataProducts.value, __numberOfCorrelatedDataProducts.set, None, None) @@ -4262,7 +4337,7 @@ class PulsarPipeline (PipelineRun): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'PulsarPipeline') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 659, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 660, 1) _ElementMap = PipelineRun._ElementMap.copy() _AttributeMap = PipelineRun._AttributeMap.copy() # Base type is PipelineRun @@ -4290,84 +4365,84 @@ class PulsarPipeline (PipelineRun): # Element sourceData (sourceData) inherited from {http://www.astron.nl/SIP-Lofar}PipelineRun # Element pulsarSelection uses Python identifier pulsarSelection - __pulsarSelection = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'pulsarSelection'), 'pulsarSelection', '__httpwww_astron_nlSIP_Lofar_PulsarPipeline_pulsarSelection', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 663, 5), ) + __pulsarSelection = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'pulsarSelection'), 'pulsarSelection', '__httpwww_astron_nlSIP_Lofar_PulsarPipeline_pulsarSelection', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 664, 5), ) pulsarSelection = property(__pulsarSelection.value, __pulsarSelection.set, None, None) # Element pulsars uses Python identifier pulsars - __pulsars = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'pulsars'), 'pulsars', '__httpwww_astron_nlSIP_Lofar_PulsarPipeline_pulsars', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 664, 5), ) + __pulsars = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'pulsars'), 'pulsars', '__httpwww_astron_nlSIP_Lofar_PulsarPipeline_pulsars', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 665, 5), ) pulsars = property(__pulsars.value, __pulsars.set, None, None) # Element doSinglePulseAnalysis uses Python identifier doSinglePulseAnalysis - __doSinglePulseAnalysis = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'doSinglePulseAnalysis'), 'doSinglePulseAnalysis', '__httpwww_astron_nlSIP_Lofar_PulsarPipeline_doSinglePulseAnalysis', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 665, 5), ) + __doSinglePulseAnalysis = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'doSinglePulseAnalysis'), 'doSinglePulseAnalysis', '__httpwww_astron_nlSIP_Lofar_PulsarPipeline_doSinglePulseAnalysis', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 666, 5), ) doSinglePulseAnalysis = property(__doSinglePulseAnalysis.value, __doSinglePulseAnalysis.set, None, None) # Element convertRawTo8bit uses Python identifier convertRawTo8bit - __convertRawTo8bit = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'convertRawTo8bit'), 'convertRawTo8bit', '__httpwww_astron_nlSIP_Lofar_PulsarPipeline_convertRawTo8bit', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 666, 5), ) + __convertRawTo8bit = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'convertRawTo8bit'), 'convertRawTo8bit', '__httpwww_astron_nlSIP_Lofar_PulsarPipeline_convertRawTo8bit', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 667, 5), ) convertRawTo8bit = property(__convertRawTo8bit.value, __convertRawTo8bit.set, None, None) # Element subintegrationLength uses Python identifier subintegrationLength - __subintegrationLength = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'subintegrationLength'), 'subintegrationLength', '__httpwww_astron_nlSIP_Lofar_PulsarPipeline_subintegrationLength', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 667, 5), ) + __subintegrationLength = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'subintegrationLength'), 'subintegrationLength', '__httpwww_astron_nlSIP_Lofar_PulsarPipeline_subintegrationLength', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 668, 5), ) subintegrationLength = property(__subintegrationLength.value, __subintegrationLength.set, None, None) # Element skipRFIExcision uses Python identifier skipRFIExcision - __skipRFIExcision = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'skipRFIExcision'), 'skipRFIExcision', '__httpwww_astron_nlSIP_Lofar_PulsarPipeline_skipRFIExcision', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 668, 5), ) + __skipRFIExcision = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'skipRFIExcision'), 'skipRFIExcision', '__httpwww_astron_nlSIP_Lofar_PulsarPipeline_skipRFIExcision', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 669, 5), ) skipRFIExcision = property(__skipRFIExcision.value, __skipRFIExcision.set, None, None) # Element skipDataFolding uses Python identifier skipDataFolding - __skipDataFolding = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'skipDataFolding'), 'skipDataFolding', '__httpwww_astron_nlSIP_Lofar_PulsarPipeline_skipDataFolding', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 669, 5), ) + __skipDataFolding = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'skipDataFolding'), 'skipDataFolding', '__httpwww_astron_nlSIP_Lofar_PulsarPipeline_skipDataFolding', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 670, 5), ) skipDataFolding = property(__skipDataFolding.value, __skipDataFolding.set, None, None) # Element skipOptimizePulsarProfile uses Python identifier skipOptimizePulsarProfile - __skipOptimizePulsarProfile = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'skipOptimizePulsarProfile'), 'skipOptimizePulsarProfile', '__httpwww_astron_nlSIP_Lofar_PulsarPipeline_skipOptimizePulsarProfile', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 670, 5), ) + __skipOptimizePulsarProfile = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'skipOptimizePulsarProfile'), 'skipOptimizePulsarProfile', '__httpwww_astron_nlSIP_Lofar_PulsarPipeline_skipOptimizePulsarProfile', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 671, 5), ) skipOptimizePulsarProfile = property(__skipOptimizePulsarProfile.value, __skipOptimizePulsarProfile.set, None, None) # Element skipConvertRawIntoFoldedPSRFITS uses Python identifier skipConvertRawIntoFoldedPSRFITS - __skipConvertRawIntoFoldedPSRFITS = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'skipConvertRawIntoFoldedPSRFITS'), 'skipConvertRawIntoFoldedPSRFITS', '__httpwww_astron_nlSIP_Lofar_PulsarPipeline_skipConvertRawIntoFoldedPSRFITS', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 671, 5), ) + __skipConvertRawIntoFoldedPSRFITS = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'skipConvertRawIntoFoldedPSRFITS'), 'skipConvertRawIntoFoldedPSRFITS', '__httpwww_astron_nlSIP_Lofar_PulsarPipeline_skipConvertRawIntoFoldedPSRFITS', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 672, 5), ) skipConvertRawIntoFoldedPSRFITS = property(__skipConvertRawIntoFoldedPSRFITS.value, __skipConvertRawIntoFoldedPSRFITS.set, None, None) # Element runRotationalRAdioTransientsAnalysis uses Python identifier runRotationalRAdioTransientsAnalysis - __runRotationalRAdioTransientsAnalysis = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'runRotationalRAdioTransientsAnalysis'), 'runRotationalRAdioTransientsAnalysis', '__httpwww_astron_nlSIP_Lofar_PulsarPipeline_runRotationalRAdioTransientsAnalysis', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 672, 5), ) + __runRotationalRAdioTransientsAnalysis = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'runRotationalRAdioTransientsAnalysis'), 'runRotationalRAdioTransientsAnalysis', '__httpwww_astron_nlSIP_Lofar_PulsarPipeline_runRotationalRAdioTransientsAnalysis', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 673, 5), ) runRotationalRAdioTransientsAnalysis = property(__runRotationalRAdioTransientsAnalysis.value, __runRotationalRAdioTransientsAnalysis.set, None, None) # Element skipDynamicSpectrum uses Python identifier skipDynamicSpectrum - __skipDynamicSpectrum = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'skipDynamicSpectrum'), 'skipDynamicSpectrum', '__httpwww_astron_nlSIP_Lofar_PulsarPipeline_skipDynamicSpectrum', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 673, 5), ) + __skipDynamicSpectrum = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'skipDynamicSpectrum'), 'skipDynamicSpectrum', '__httpwww_astron_nlSIP_Lofar_PulsarPipeline_skipDynamicSpectrum', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 674, 5), ) skipDynamicSpectrum = property(__skipDynamicSpectrum.value, __skipDynamicSpectrum.set, None, None) # Element skipPreFold uses Python identifier skipPreFold - __skipPreFold = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'skipPreFold'), 'skipPreFold', '__httpwww_astron_nlSIP_Lofar_PulsarPipeline_skipPreFold', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 674, 5), ) + __skipPreFold = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'skipPreFold'), 'skipPreFold', '__httpwww_astron_nlSIP_Lofar_PulsarPipeline_skipPreFold', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 675, 5), ) skipPreFold = property(__skipPreFold.value, __skipPreFold.set, None, None) @@ -4400,7 +4475,7 @@ class CosmicRayPipeline (PipelineRun): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'CosmicRayPipeline') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 679, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 680, 1) _ElementMap = PipelineRun._ElementMap.copy() _AttributeMap = PipelineRun._AttributeMap.copy() # Base type is PipelineRun @@ -4443,7 +4518,7 @@ class LongBaselinePipeline (PipelineRun): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'LongBaselinePipeline') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 684, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 685, 1) _ElementMap = PipelineRun._ElementMap.copy() _AttributeMap = PipelineRun._AttributeMap.copy() # Base type is PipelineRun @@ -4471,14 +4546,14 @@ class LongBaselinePipeline (PipelineRun): # Element sourceData (sourceData) inherited from {http://www.astron.nl/SIP-Lofar}PipelineRun # Element subbandsPerSubbandGroup uses Python identifier subbandsPerSubbandGroup - __subbandsPerSubbandGroup = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'subbandsPerSubbandGroup'), 'subbandsPerSubbandGroup', '__httpwww_astron_nlSIP_Lofar_LongBaselinePipeline_subbandsPerSubbandGroup', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 688, 5), ) + __subbandsPerSubbandGroup = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'subbandsPerSubbandGroup'), 'subbandsPerSubbandGroup', '__httpwww_astron_nlSIP_Lofar_LongBaselinePipeline_subbandsPerSubbandGroup', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 689, 5), ) subbandsPerSubbandGroup = property(__subbandsPerSubbandGroup.value, __subbandsPerSubbandGroup.set, None, None) # Element subbandGroupsPerMS uses Python identifier subbandGroupsPerMS - __subbandGroupsPerMS = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'subbandGroupsPerMS'), 'subbandGroupsPerMS', '__httpwww_astron_nlSIP_Lofar_LongBaselinePipeline_subbandGroupsPerMS', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 689, 5), ) + __subbandGroupsPerMS = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'subbandGroupsPerMS'), 'subbandGroupsPerMS', '__httpwww_astron_nlSIP_Lofar_LongBaselinePipeline_subbandGroupsPerMS', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 690, 5), ) subbandGroupsPerMS = property(__subbandGroupsPerMS.value, __subbandGroupsPerMS.set, None, None) @@ -4501,7 +4576,7 @@ class GenericPipeline (PipelineRun): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'GenericPipeline') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 694, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 695, 1) _ElementMap = PipelineRun._ElementMap.copy() _AttributeMap = PipelineRun._AttributeMap.copy() # Base type is PipelineRun @@ -4544,7 +4619,7 @@ class SkyImageDataProduct (PixelMapDataProduct): _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY _Abstract = False _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'SkyImageDataProduct') - _XSDLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1147, 1) + _XSDLocation = pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1159, 1) _ElementMap = PixelMapDataProduct._ElementMap.copy() _AttributeMap = PixelMapDataProduct._AttributeMap.copy() # Base type is PixelMapDataProduct @@ -4563,6 +4638,10 @@ class SkyImageDataProduct (PixelMapDataProduct): # Element fileFormat (fileFormat) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + # Element storageWriter (storageWriter) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + + # Element storageWriterVersion (storageWriterVersion) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct + # Element processIdentifier (processIdentifier) inherited from {http://www.astron.nl/SIP-Lofar}DataProduct # Element numberOfAxes (numberOfAxes) inherited from {http://www.astron.nl/SIP-Lofar}PixelMapDataProduct @@ -4572,42 +4651,42 @@ class SkyImageDataProduct (PixelMapDataProduct): # Element coordinate (coordinate) inherited from {http://www.astron.nl/SIP-Lofar}PixelMapDataProduct # Element locationFrame uses Python identifier locationFrame - __locationFrame = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'locationFrame'), 'locationFrame', '__httpwww_astron_nlSIP_Lofar_SkyImageDataProduct_locationFrame', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1151, 5), ) + __locationFrame = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'locationFrame'), 'locationFrame', '__httpwww_astron_nlSIP_Lofar_SkyImageDataProduct_locationFrame', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1163, 5), ) locationFrame = property(__locationFrame.value, __locationFrame.set, None, None) # Element timeFrame uses Python identifier timeFrame - __timeFrame = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'timeFrame'), 'timeFrame', '__httpwww_astron_nlSIP_Lofar_SkyImageDataProduct_timeFrame', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1152, 5), ) + __timeFrame = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'timeFrame'), 'timeFrame', '__httpwww_astron_nlSIP_Lofar_SkyImageDataProduct_timeFrame', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1164, 5), ) timeFrame = property(__timeFrame.value, __timeFrame.set, None, None) # Element observationPointing uses Python identifier observationPointing - __observationPointing = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'observationPointing'), 'observationPointing', '__httpwww_astron_nlSIP_Lofar_SkyImageDataProduct_observationPointing', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1153, 5), ) + __observationPointing = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'observationPointing'), 'observationPointing', '__httpwww_astron_nlSIP_Lofar_SkyImageDataProduct_observationPointing', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1165, 5), ) observationPointing = property(__observationPointing.value, __observationPointing.set, None, None) # Element restoringBeamMajor uses Python identifier restoringBeamMajor - __restoringBeamMajor = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'restoringBeamMajor'), 'restoringBeamMajor', '__httpwww_astron_nlSIP_Lofar_SkyImageDataProduct_restoringBeamMajor', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1154, 5), ) + __restoringBeamMajor = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'restoringBeamMajor'), 'restoringBeamMajor', '__httpwww_astron_nlSIP_Lofar_SkyImageDataProduct_restoringBeamMajor', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1166, 5), ) restoringBeamMajor = property(__restoringBeamMajor.value, __restoringBeamMajor.set, None, None) # Element restoringBeamMinor uses Python identifier restoringBeamMinor - __restoringBeamMinor = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'restoringBeamMinor'), 'restoringBeamMinor', '__httpwww_astron_nlSIP_Lofar_SkyImageDataProduct_restoringBeamMinor', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1155, 5), ) + __restoringBeamMinor = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'restoringBeamMinor'), 'restoringBeamMinor', '__httpwww_astron_nlSIP_Lofar_SkyImageDataProduct_restoringBeamMinor', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1167, 5), ) restoringBeamMinor = property(__restoringBeamMinor.value, __restoringBeamMinor.set, None, None) # Element rmsNoise uses Python identifier rmsNoise - __rmsNoise = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'rmsNoise'), 'rmsNoise', '__httpwww_astron_nlSIP_Lofar_SkyImageDataProduct_rmsNoise', False, pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1156, 5), ) + __rmsNoise = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(None, 'rmsNoise'), 'rmsNoise', '__httpwww_astron_nlSIP_Lofar_SkyImageDataProduct_rmsNoise', False, pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1168, 5), ) rmsNoise = property(__rmsNoise.value, __rmsNoise.set, None, None) @@ -4627,14 +4706,14 @@ _module_typeBindings.SkyImageDataProduct = SkyImageDataProduct Namespace.addCategoryObject('typeBinding', 'SkyImageDataProduct', SkyImageDataProduct) -ltaSip = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'ltaSip'), LTASip, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1206, 1)) +ltaSip = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'ltaSip'), LTASip, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1218, 1)) Namespace.addCategoryObject('elementBinding', ltaSip.name().localName(), ltaSip) -ListOfFrequencies._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'frequencies'), ListOfDouble, scope=ListOfFrequencies, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 104, 3))) +ListOfFrequencies._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'frequencies'), ListOfDouble, scope=ListOfFrequencies, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 104, 3))) -ListOfFrequencies._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'unit'), FrequencyUnit, scope=ListOfFrequencies, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 105, 3))) +ListOfFrequencies._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'unit'), FrequencyUnit, scope=ListOfFrequencies, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 105, 3))) def _BuildAutomaton (): # Remove this helper function from the namespace after it is invoked @@ -4645,11 +4724,11 @@ def _BuildAutomaton (): counters = set() states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(ListOfFrequencies._UseForTag(pyxb.namespace.ExpandedName(None, 'frequencies')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 104, 3)) + symbol = pyxb.binding.content.ElementUse(ListOfFrequencies._UseForTag(pyxb.namespace.ExpandedName(None, 'frequencies')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 104, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = set() - symbol = pyxb.binding.content.ElementUse(ListOfFrequencies._UseForTag(pyxb.namespace.ExpandedName(None, 'unit')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 105, 3)) + symbol = pyxb.binding.content.ElementUse(ListOfFrequencies._UseForTag(pyxb.namespace.ExpandedName(None, 'unit')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 105, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) transitions = [] @@ -4664,13 +4743,13 @@ ListOfFrequencies._Automaton = _BuildAutomaton() -IdentifierType._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'source'), pyxb.binding.datatypes.string, scope=IdentifierType, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 114, 3))) +IdentifierType._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'source'), pyxb.binding.datatypes.string, scope=IdentifierType, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 114, 3))) -IdentifierType._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'identifier'), pyxb.binding.datatypes.nonNegativeInteger, scope=IdentifierType, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 115, 3))) +IdentifierType._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'identifier'), pyxb.binding.datatypes.nonNegativeInteger, scope=IdentifierType, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 115, 3))) -IdentifierType._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'name'), pyxb.binding.datatypes.string, scope=IdentifierType, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 116, 3))) +IdentifierType._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'name'), pyxb.binding.datatypes.string, scope=IdentifierType, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 116, 3))) -IdentifierType._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'label'), pyxb.binding.datatypes.string, scope=IdentifierType, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 117, 12))) +IdentifierType._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'label'), pyxb.binding.datatypes.string, scope=IdentifierType, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 117, 12))) def _BuildAutomaton_ (): # Remove this helper function from the namespace after it is invoked @@ -4679,27 +4758,27 @@ def _BuildAutomaton_ (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 116, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 116, 3)) counters.add(cc_0) - cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 117, 12)) + cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 117, 12)) counters.add(cc_1) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(IdentifierType._UseForTag(pyxb.namespace.ExpandedName(None, 'source')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 114, 3)) + symbol = pyxb.binding.content.ElementUse(IdentifierType._UseForTag(pyxb.namespace.ExpandedName(None, 'source')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 114, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = set() - symbol = pyxb.binding.content.ElementUse(IdentifierType._UseForTag(pyxb.namespace.ExpandedName(None, 'identifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 115, 3)) + symbol = pyxb.binding.content.ElementUse(IdentifierType._UseForTag(pyxb.namespace.ExpandedName(None, 'identifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 115, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = set() final_update.add(fac.UpdateInstruction(cc_0, False)) - symbol = pyxb.binding.content.ElementUse(IdentifierType._UseForTag(pyxb.namespace.ExpandedName(None, 'name')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 116, 3)) + symbol = pyxb.binding.content.ElementUse(IdentifierType._UseForTag(pyxb.namespace.ExpandedName(None, 'name')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 116, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = set() final_update.add(fac.UpdateInstruction(cc_1, False)) - symbol = pyxb.binding.content.ElementUse(IdentifierType._UseForTag(pyxb.namespace.ExpandedName(None, 'label')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 117, 12)) + symbol = pyxb.binding.content.ElementUse(IdentifierType._UseForTag(pyxb.namespace.ExpandedName(None, 'label')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 117, 12)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) transitions = [] @@ -4728,15 +4807,15 @@ IdentifierType._Automaton = _BuildAutomaton_() -Pointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'rightAscension'), Angle, scope=Pointing, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 134, 4))) +Pointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'rightAscension'), Angle, scope=Pointing, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 135, 4))) -Pointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'azimuth'), Angle, scope=Pointing, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 135, 4))) +Pointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'azimuth'), Angle, scope=Pointing, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 136, 4))) -Pointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'declination'), Angle, scope=Pointing, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 138, 4))) +Pointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'declination'), Angle, scope=Pointing, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 139, 4))) -Pointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'altitude'), Angle, scope=Pointing, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 139, 4))) +Pointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'altitude'), Angle, scope=Pointing, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 140, 4))) -Pointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'equinox'), EquinoxType, scope=Pointing, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 141, 3))) +Pointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'equinox'), EquinoxType, scope=Pointing, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 142, 3))) def _BuildAutomaton_2 (): # Remove this helper function from the namespace after it is invoked @@ -4747,23 +4826,23 @@ def _BuildAutomaton_2 (): counters = set() states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(Pointing._UseForTag(pyxb.namespace.ExpandedName(None, 'rightAscension')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 134, 4)) + symbol = pyxb.binding.content.ElementUse(Pointing._UseForTag(pyxb.namespace.ExpandedName(None, 'rightAscension')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 135, 4)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(Pointing._UseForTag(pyxb.namespace.ExpandedName(None, 'azimuth')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 135, 4)) + symbol = pyxb.binding.content.ElementUse(Pointing._UseForTag(pyxb.namespace.ExpandedName(None, 'azimuth')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 136, 4)) st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(Pointing._UseForTag(pyxb.namespace.ExpandedName(None, 'declination')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 138, 4)) + symbol = pyxb.binding.content.ElementUse(Pointing._UseForTag(pyxb.namespace.ExpandedName(None, 'declination')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 139, 4)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(Pointing._UseForTag(pyxb.namespace.ExpandedName(None, 'altitude')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 139, 4)) + symbol = pyxb.binding.content.ElementUse(Pointing._UseForTag(pyxb.namespace.ExpandedName(None, 'altitude')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 140, 4)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = set() - symbol = pyxb.binding.content.ElementUse(Pointing._UseForTag(pyxb.namespace.ExpandedName(None, 'equinox')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 141, 3)) + symbol = pyxb.binding.content.ElementUse(Pointing._UseForTag(pyxb.namespace.ExpandedName(None, 'equinox')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 142, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) transitions = [] @@ -4794,19 +4873,19 @@ Pointing._Automaton = _BuildAutomaton_2() -Coordinates._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'coordinateSystem'), STD_ANON, scope=Coordinates, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 157, 3))) +Coordinates._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'coordinateSystem'), STD_ANON, scope=Coordinates, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 158, 3))) -Coordinates._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'x'), Length, scope=Coordinates, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 168, 5))) +Coordinates._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'x'), Length, scope=Coordinates, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 169, 5))) -Coordinates._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'y'), Length, scope=Coordinates, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 169, 5))) +Coordinates._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'y'), Length, scope=Coordinates, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 170, 5))) -Coordinates._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'z'), Length, scope=Coordinates, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 170, 5))) +Coordinates._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'z'), Length, scope=Coordinates, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 171, 5))) -Coordinates._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'radius'), Length, scope=Coordinates, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 173, 5))) +Coordinates._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'radius'), Length, scope=Coordinates, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 174, 5))) -Coordinates._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'longitude'), Angle, scope=Coordinates, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 174, 5))) +Coordinates._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'longitude'), Angle, scope=Coordinates, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 175, 5))) -Coordinates._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'latitude'), Angle, scope=Coordinates, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 175, 5))) +Coordinates._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'latitude'), Angle, scope=Coordinates, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 176, 5))) def _BuildAutomaton_3 (): # Remove this helper function from the namespace after it is invoked @@ -4817,31 +4896,31 @@ def _BuildAutomaton_3 (): counters = set() states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(Coordinates._UseForTag(pyxb.namespace.ExpandedName(None, 'coordinateSystem')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 157, 3)) + symbol = pyxb.binding.content.ElementUse(Coordinates._UseForTag(pyxb.namespace.ExpandedName(None, 'coordinateSystem')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 158, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(Coordinates._UseForTag(pyxb.namespace.ExpandedName(None, 'x')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 168, 5)) + symbol = pyxb.binding.content.ElementUse(Coordinates._UseForTag(pyxb.namespace.ExpandedName(None, 'x')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 169, 5)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(Coordinates._UseForTag(pyxb.namespace.ExpandedName(None, 'y')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 169, 5)) + symbol = pyxb.binding.content.ElementUse(Coordinates._UseForTag(pyxb.namespace.ExpandedName(None, 'y')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 170, 5)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = set() - symbol = pyxb.binding.content.ElementUse(Coordinates._UseForTag(pyxb.namespace.ExpandedName(None, 'z')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 170, 5)) + symbol = pyxb.binding.content.ElementUse(Coordinates._UseForTag(pyxb.namespace.ExpandedName(None, 'z')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 171, 5)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(Coordinates._UseForTag(pyxb.namespace.ExpandedName(None, 'radius')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 173, 5)) + symbol = pyxb.binding.content.ElementUse(Coordinates._UseForTag(pyxb.namespace.ExpandedName(None, 'radius')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 174, 5)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(Coordinates._UseForTag(pyxb.namespace.ExpandedName(None, 'longitude')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 174, 5)) + symbol = pyxb.binding.content.ElementUse(Coordinates._UseForTag(pyxb.namespace.ExpandedName(None, 'longitude')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 175, 5)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = set() - symbol = pyxb.binding.content.ElementUse(Coordinates._UseForTag(pyxb.namespace.ExpandedName(None, 'latitude')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 175, 5)) + symbol = pyxb.binding.content.ElementUse(Coordinates._UseForTag(pyxb.namespace.ExpandedName(None, 'latitude')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 176, 5)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) transitions = [] @@ -4876,9 +4955,9 @@ Coordinates._Automaton = _BuildAutomaton_3() -AntennaField._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'name'), AntennaFieldType, scope=AntennaField, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 206, 3))) +AntennaField._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'name'), AntennaFieldType, scope=AntennaField, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 207, 3))) -AntennaField._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'location'), Coordinates, scope=AntennaField, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 207, 3))) +AntennaField._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'location'), Coordinates, scope=AntennaField, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 208, 3))) def _BuildAutomaton_4 (): # Remove this helper function from the namespace after it is invoked @@ -4889,11 +4968,11 @@ def _BuildAutomaton_4 (): counters = set() states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(AntennaField._UseForTag(pyxb.namespace.ExpandedName(None, 'name')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 206, 3)) + symbol = pyxb.binding.content.ElementUse(AntennaField._UseForTag(pyxb.namespace.ExpandedName(None, 'name')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 207, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = set() - symbol = pyxb.binding.content.ElementUse(AntennaField._UseForTag(pyxb.namespace.ExpandedName(None, 'location')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 207, 3)) + symbol = pyxb.binding.content.ElementUse(AntennaField._UseForTag(pyxb.namespace.ExpandedName(None, 'location')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 208, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) transitions = [] @@ -4908,7 +4987,7 @@ AntennaField._Automaton = _BuildAutomaton_4() -Stations._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'station'), Station, scope=Stations, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 212, 3))) +Stations._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'station'), Station, scope=Stations, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 213, 3))) def _BuildAutomaton_5 (): # Remove this helper function from the namespace after it is invoked @@ -4919,7 +4998,7 @@ def _BuildAutomaton_5 (): counters = set() states = [] final_update = set() - symbol = pyxb.binding.content.ElementUse(Stations._UseForTag(pyxb.namespace.ExpandedName(None, 'station')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 212, 3)) + symbol = pyxb.binding.content.ElementUse(Stations._UseForTag(pyxb.namespace.ExpandedName(None, 'station')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 213, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) transitions = [] @@ -4932,11 +5011,11 @@ Stations._Automaton = _BuildAutomaton_5() -Station._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'name'), pyxb.binding.datatypes.string, scope=Station, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 220, 3))) +Station._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'name'), pyxb.binding.datatypes.string, scope=Station, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 221, 3))) -Station._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'stationType'), StationTypeType, scope=Station, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 221, 3))) +Station._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'stationType'), StationTypeType, scope=Station, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 222, 3))) -Station._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'antennaField'), AntennaField, scope=Station, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 222, 3))) +Station._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'antennaField'), AntennaField, scope=Station, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 223, 3))) def _BuildAutomaton_6 (): # Remove this helper function from the namespace after it is invoked @@ -4945,20 +5024,20 @@ def _BuildAutomaton_6 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=1, max=2, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 222, 3)) + cc_0 = fac.CounterCondition(min=1, max=2, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 223, 3)) counters.add(cc_0) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(Station._UseForTag(pyxb.namespace.ExpandedName(None, 'name')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 220, 3)) + symbol = pyxb.binding.content.ElementUse(Station._UseForTag(pyxb.namespace.ExpandedName(None, 'name')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 221, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(Station._UseForTag(pyxb.namespace.ExpandedName(None, 'stationType')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 221, 3)) + symbol = pyxb.binding.content.ElementUse(Station._UseForTag(pyxb.namespace.ExpandedName(None, 'stationType')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 222, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = set() final_update.add(fac.UpdateInstruction(cc_0, False)) - symbol = pyxb.binding.content.ElementUse(Station._UseForTag(pyxb.namespace.ExpandedName(None, 'antennaField')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 222, 3)) + symbol = pyxb.binding.content.ElementUse(Station._UseForTag(pyxb.namespace.ExpandedName(None, 'antennaField')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 223, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) transitions = [] @@ -4979,11 +5058,11 @@ Station._Automaton = _BuildAutomaton_6() -ProcessRelation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'relationType'), ProcessRelationType, scope=ProcessRelation, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 246, 3))) +ProcessRelation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'relationType'), ProcessRelationType, scope=ProcessRelation, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 247, 3))) -ProcessRelation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'identifier'), IdentifierType, scope=ProcessRelation, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 247, 3))) +ProcessRelation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'identifier'), IdentifierType, scope=ProcessRelation, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 248, 3))) -ProcessRelation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'name'), pyxb.binding.datatypes.string, scope=ProcessRelation, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 248, 3))) +ProcessRelation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'name'), pyxb.binding.datatypes.string, scope=ProcessRelation, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 249, 3))) def _BuildAutomaton_7 (): # Remove this helper function from the namespace after it is invoked @@ -4992,20 +5071,20 @@ def _BuildAutomaton_7 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 248, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 249, 3)) counters.add(cc_0) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(ProcessRelation._UseForTag(pyxb.namespace.ExpandedName(None, 'relationType')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 246, 3)) + symbol = pyxb.binding.content.ElementUse(ProcessRelation._UseForTag(pyxb.namespace.ExpandedName(None, 'relationType')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 247, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = set() - symbol = pyxb.binding.content.ElementUse(ProcessRelation._UseForTag(pyxb.namespace.ExpandedName(None, 'identifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 247, 3)) + symbol = pyxb.binding.content.ElementUse(ProcessRelation._UseForTag(pyxb.namespace.ExpandedName(None, 'identifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 248, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = set() final_update.add(fac.UpdateInstruction(cc_0, False)) - symbol = pyxb.binding.content.ElementUse(ProcessRelation._UseForTag(pyxb.namespace.ExpandedName(None, 'name')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 248, 3)) + symbol = pyxb.binding.content.ElementUse(ProcessRelation._UseForTag(pyxb.namespace.ExpandedName(None, 'name')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 249, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) transitions = [] @@ -5026,7 +5105,7 @@ ProcessRelation._Automaton = _BuildAutomaton_7() -ProcessRelations._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'relation'), ProcessRelation, scope=ProcessRelations, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 253, 3))) +ProcessRelations._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'relation'), ProcessRelation, scope=ProcessRelations, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 254, 3))) def _BuildAutomaton_8 (): # Remove this helper function from the namespace after it is invoked @@ -5035,12 +5114,12 @@ def _BuildAutomaton_8 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 253, 3)) + cc_0 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 254, 3)) counters.add(cc_0) states = [] final_update = set() final_update.add(fac.UpdateInstruction(cc_0, False)) - symbol = pyxb.binding.content.ElementUse(ProcessRelations._UseForTag(pyxb.namespace.ExpandedName(None, 'relation')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 253, 3)) + symbol = pyxb.binding.content.ElementUse(ProcessRelations._UseForTag(pyxb.namespace.ExpandedName(None, 'relation')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 254, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) transitions = [] @@ -5053,21 +5132,21 @@ ProcessRelations._Automaton = _BuildAutomaton_8() -Process._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'processIdentifier'), IdentifierType, scope=Process, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 258, 3))) +Process._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'processIdentifier'), IdentifierType, scope=Process, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 259, 3))) -Process._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'observationId'), IdentifierType, scope=Process, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 259, 3))) +Process._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'observationId'), IdentifierType, scope=Process, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 260, 3))) -Process._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'parset'), IdentifierType, scope=Process, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3))) +Process._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'parset'), IdentifierType, scope=Process, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3))) -Process._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'strategyName'), pyxb.binding.datatypes.string, scope=Process, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 261, 3))) +Process._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'strategyName'), pyxb.binding.datatypes.string, scope=Process, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 262, 3))) -Process._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'strategyDescription'), pyxb.binding.datatypes.string, scope=Process, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 262, 3))) +Process._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'strategyDescription'), pyxb.binding.datatypes.string, scope=Process, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 263, 3))) -Process._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'startTime'), pyxb.binding.datatypes.dateTime, scope=Process, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 263, 3))) +Process._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'startTime'), pyxb.binding.datatypes.dateTime, scope=Process, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 264, 3))) -Process._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'duration'), pyxb.binding.datatypes.duration, scope=Process, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 264, 3))) +Process._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'duration'), pyxb.binding.datatypes.duration, scope=Process, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 265, 3))) -Process._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'relations'), ProcessRelations, scope=Process, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 265, 3))) +Process._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'relations'), ProcessRelations, scope=Process, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 266, 3))) def _BuildAutomaton_9 (): # Remove this helper function from the namespace after it is invoked @@ -5076,39 +5155,39 @@ def _BuildAutomaton_9 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) counters.add(cc_0) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(Process._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 258, 3)) + symbol = pyxb.binding.content.ElementUse(Process._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 259, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(Process._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 259, 3)) + symbol = pyxb.binding.content.ElementUse(Process._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 260, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(Process._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + symbol = pyxb.binding.content.ElementUse(Process._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(Process._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 261, 3)) + symbol = pyxb.binding.content.ElementUse(Process._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 262, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(Process._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 262, 3)) + symbol = pyxb.binding.content.ElementUse(Process._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 263, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(Process._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 263, 3)) + symbol = pyxb.binding.content.ElementUse(Process._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 264, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(Process._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 264, 3)) + symbol = pyxb.binding.content.ElementUse(Process._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 265, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = set() - symbol = pyxb.binding.content.ElementUse(Process._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 265, 3)) + symbol = pyxb.binding.content.ElementUse(Process._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 266, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) transitions = [] @@ -5151,15 +5230,15 @@ Process._Automaton = _BuildAutomaton_9() -Processing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'correlator'), Correlator, scope=Processing, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 441, 3))) +Processing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'correlator'), Correlator, scope=Processing, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 442, 3))) -Processing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'coherentStokes'), CoherentStokes, scope=Processing, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 442, 3))) +Processing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'coherentStokes'), CoherentStokes, scope=Processing, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 443, 3))) -Processing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'incoherentStokes'), IncoherentStokes, scope=Processing, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 443, 3))) +Processing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'incoherentStokes'), IncoherentStokes, scope=Processing, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 444, 3))) -Processing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'flysEye'), FlysEye, scope=Processing, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 444, 3))) +Processing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'flysEye'), FlysEye, scope=Processing, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 445, 3))) -Processing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'nonStandard'), NonStandard, scope=Processing, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 445, 3))) +Processing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'nonStandard'), NonStandard, scope=Processing, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 446, 3))) def _BuildAutomaton_10 (): # Remove this helper function from the namespace after it is invoked @@ -5168,40 +5247,40 @@ def _BuildAutomaton_10 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 441, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 442, 3)) counters.add(cc_0) - cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 442, 3)) + cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 443, 3)) counters.add(cc_1) - cc_2 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 443, 3)) + cc_2 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 444, 3)) counters.add(cc_2) - cc_3 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 444, 3)) + cc_3 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 445, 3)) counters.add(cc_3) - cc_4 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 445, 3)) + cc_4 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 446, 3)) counters.add(cc_4) states = [] final_update = set() final_update.add(fac.UpdateInstruction(cc_0, False)) - symbol = pyxb.binding.content.ElementUse(Processing._UseForTag(pyxb.namespace.ExpandedName(None, 'correlator')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 441, 3)) + symbol = pyxb.binding.content.ElementUse(Processing._UseForTag(pyxb.namespace.ExpandedName(None, 'correlator')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 442, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = set() final_update.add(fac.UpdateInstruction(cc_1, False)) - symbol = pyxb.binding.content.ElementUse(Processing._UseForTag(pyxb.namespace.ExpandedName(None, 'coherentStokes')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 442, 3)) + symbol = pyxb.binding.content.ElementUse(Processing._UseForTag(pyxb.namespace.ExpandedName(None, 'coherentStokes')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 443, 3)) st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = set() final_update.add(fac.UpdateInstruction(cc_2, False)) - symbol = pyxb.binding.content.ElementUse(Processing._UseForTag(pyxb.namespace.ExpandedName(None, 'incoherentStokes')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 443, 3)) + symbol = pyxb.binding.content.ElementUse(Processing._UseForTag(pyxb.namespace.ExpandedName(None, 'incoherentStokes')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 444, 3)) st_2 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = set() final_update.add(fac.UpdateInstruction(cc_3, False)) - symbol = pyxb.binding.content.ElementUse(Processing._UseForTag(pyxb.namespace.ExpandedName(None, 'flysEye')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 444, 3)) + symbol = pyxb.binding.content.ElementUse(Processing._UseForTag(pyxb.namespace.ExpandedName(None, 'flysEye')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 445, 3)) st_3 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = set() final_update.add(fac.UpdateInstruction(cc_4, False)) - symbol = pyxb.binding.content.ElementUse(Processing._UseForTag(pyxb.namespace.ExpandedName(None, 'nonStandard')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 445, 3)) + symbol = pyxb.binding.content.ElementUse(Processing._UseForTag(pyxb.namespace.ExpandedName(None, 'nonStandard')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 446, 3)) st_4 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_4) transitions = [] @@ -5250,7 +5329,7 @@ Processing._Automaton = _BuildAutomaton_10() -RealTimeProcess._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'processingType'), ProcessingType, scope=RealTimeProcess, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 450, 3))) +RealTimeProcess._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'processingType'), ProcessingType, scope=RealTimeProcess, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 451, 3))) def _BuildAutomaton_11 (): # Remove this helper function from the namespace after it is invoked @@ -5261,7 +5340,7 @@ def _BuildAutomaton_11 (): counters = set() states = [] final_update = set() - symbol = pyxb.binding.content.ElementUse(RealTimeProcess._UseForTag(pyxb.namespace.ExpandedName(None, 'processingType')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 450, 3)) + symbol = pyxb.binding.content.ElementUse(RealTimeProcess._UseForTag(pyxb.namespace.ExpandedName(None, 'processingType')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 451, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) transitions = [] @@ -5272,7 +5351,7 @@ RealTimeProcess._Automaton = _BuildAutomaton_11() -TransientBufferBoardEvents._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'transientBufferBoardEvent'), TransientBufferBoardEvent, scope=TransientBufferBoardEvents, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 536, 3))) +TransientBufferBoardEvents._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'transientBufferBoardEvent'), TransientBufferBoardEvent, scope=TransientBufferBoardEvents, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 537, 3))) def _BuildAutomaton_12 (): # Remove this helper function from the namespace after it is invoked @@ -5283,7 +5362,7 @@ def _BuildAutomaton_12 (): counters = set() states = [] final_update = set() - symbol = pyxb.binding.content.ElementUse(TransientBufferBoardEvents._UseForTag(pyxb.namespace.ExpandedName(None, 'transientBufferBoardEvent')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 536, 3)) + symbol = pyxb.binding.content.ElementUse(TransientBufferBoardEvents._UseForTag(pyxb.namespace.ExpandedName(None, 'transientBufferBoardEvent')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 537, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) transitions = [] @@ -5296,7 +5375,7 @@ TransientBufferBoardEvents._Automaton = _BuildAutomaton_12() -TransientBufferBoardEvent._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'eventSource'), pyxb.binding.datatypes.string, scope=TransientBufferBoardEvent, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 541, 3))) +TransientBufferBoardEvent._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'eventSource'), pyxb.binding.datatypes.string, scope=TransientBufferBoardEvent, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 542, 3))) def _BuildAutomaton_13 (): # Remove this helper function from the namespace after it is invoked @@ -5307,7 +5386,7 @@ def _BuildAutomaton_13 (): counters = set() states = [] final_update = set() - symbol = pyxb.binding.content.ElementUse(TransientBufferBoardEvent._UseForTag(pyxb.namespace.ExpandedName(None, 'eventSource')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 541, 3)) + symbol = pyxb.binding.content.ElementUse(TransientBufferBoardEvent._UseForTag(pyxb.namespace.ExpandedName(None, 'eventSource')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 542, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) transitions = [] @@ -5318,7 +5397,7 @@ TransientBufferBoardEvent._Automaton = _BuildAutomaton_13() -SubArrayPointings._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'subArrayPointing'), SubArrayPointing, scope=SubArrayPointings, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 546, 3))) +SubArrayPointings._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'subArrayPointing'), SubArrayPointing, scope=SubArrayPointings, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 547, 3))) def _BuildAutomaton_14 (): # Remove this helper function from the namespace after it is invoked @@ -5329,7 +5408,7 @@ def _BuildAutomaton_14 (): counters = set() states = [] final_update = set() - symbol = pyxb.binding.content.ElementUse(SubArrayPointings._UseForTag(pyxb.namespace.ExpandedName(None, 'subArrayPointing')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 546, 3)) + symbol = pyxb.binding.content.ElementUse(SubArrayPointings._UseForTag(pyxb.namespace.ExpandedName(None, 'subArrayPointing')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 547, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) transitions = [] @@ -5342,31 +5421,31 @@ SubArrayPointings._Automaton = _BuildAutomaton_14() -SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'pointing'), Pointing, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 559, 3))) +SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'pointing'), Pointing, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 560, 3))) -SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'beamNumber'), pyxb.binding.datatypes.unsignedShort, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 560, 3))) +SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'beamNumber'), pyxb.binding.datatypes.unsignedShort, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 561, 3))) -SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'measurementDescription'), pyxb.binding.datatypes.string, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 561, 3))) +SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'measurementDescription'), pyxb.binding.datatypes.string, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 562, 3))) -SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'subArrayPointingIdentifier'), IdentifierType, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 562, 3))) +SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'subArrayPointingIdentifier'), IdentifierType, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 563, 3))) -SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'measurementType'), MeasurementType, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 563, 3))) +SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'measurementType'), MeasurementType, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 564, 3))) -SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'targetName'), pyxb.binding.datatypes.string, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 564, 3))) +SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'targetName'), pyxb.binding.datatypes.string, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 565, 3))) -SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'startTime'), pyxb.binding.datatypes.dateTime, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 565, 3))) +SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'startTime'), pyxb.binding.datatypes.dateTime, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 566, 3))) -SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'duration'), pyxb.binding.datatypes.duration, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 566, 3))) +SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'duration'), pyxb.binding.datatypes.duration, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 567, 3))) -SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfProcessing'), pyxb.binding.datatypes.unsignedShort, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 567, 3))) +SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfProcessing'), pyxb.binding.datatypes.unsignedShort, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 568, 3))) -SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'processing'), Processing, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 568, 3))) +SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'processing'), Processing, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 569, 3))) -SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts'), pyxb.binding.datatypes.unsignedShort, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 569, 3))) +SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts'), pyxb.binding.datatypes.unsignedShort, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 570, 3))) -SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfBeamFormedDataProducts'), pyxb.binding.datatypes.unsignedShort, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 570, 3))) +SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfBeamFormedDataProducts'), pyxb.binding.datatypes.unsignedShort, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 571, 3))) -SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'relations'), ProcessRelations, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 571, 3))) +SubArrayPointing._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'relations'), ProcessRelations, scope=SubArrayPointing, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 572, 3))) def _BuildAutomaton_15 (): # Remove this helper function from the namespace after it is invoked @@ -5375,61 +5454,61 @@ def _BuildAutomaton_15 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 561, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 562, 3)) counters.add(cc_0) - cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 568, 3)) + cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 569, 3)) counters.add(cc_1) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'pointing')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 559, 3)) + symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'pointing')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 560, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'beamNumber')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 560, 3)) + symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'beamNumber')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 561, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'measurementDescription')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 561, 3)) + symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'measurementDescription')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 562, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'subArrayPointingIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 562, 3)) + symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'subArrayPointingIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 563, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'measurementType')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 563, 3)) + symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'measurementType')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 564, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'targetName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 564, 3)) + symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'targetName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 565, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 565, 3)) + symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 566, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 566, 3)) + symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 567, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = None - symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfProcessing')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 567, 3)) + symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfProcessing')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 568, 3)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = None - symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'processing')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 568, 3)) + symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'processing')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 569, 3)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) final_update = None - symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 569, 3)) + symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 570, 3)) st_10 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_10) final_update = None - symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfBeamFormedDataProducts')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 570, 3)) + symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfBeamFormedDataProducts')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 571, 3)) st_11 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_11) final_update = set() - symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 571, 3)) + symbol = pyxb.binding.content.ElementUse(SubArrayPointing._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 572, 3)) st_12 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_12) transitions = [] @@ -5496,7 +5575,7 @@ SubArrayPointing._Automaton = _BuildAutomaton_15() -DataSources._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier'), IdentifierType, scope=DataSources, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 582, 3))) +DataSources._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier'), IdentifierType, scope=DataSources, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 583, 3))) def _BuildAutomaton_16 (): # Remove this helper function from the namespace after it is invoked @@ -5507,7 +5586,7 @@ def _BuildAutomaton_16 (): counters = set() states = [] final_update = set() - symbol = pyxb.binding.content.ElementUse(DataSources._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 582, 3)) + symbol = pyxb.binding.content.ElementUse(DataSources._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 583, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) transitions = [] @@ -5520,9 +5599,9 @@ DataSources._Automaton = _BuildAutomaton_16() -ChecksumType._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'algorithm'), ChecksumAlgorithm, scope=ChecksumType, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 730, 3))) +ChecksumType._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'algorithm'), ChecksumAlgorithm, scope=ChecksumType, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 731, 3))) -ChecksumType._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'value'), pyxb.binding.datatypes.string, scope=ChecksumType, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 731, 3))) +ChecksumType._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'value'), pyxb.binding.datatypes.string, scope=ChecksumType, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 732, 3))) def _BuildAutomaton_17 (): # Remove this helper function from the namespace after it is invoked @@ -5533,11 +5612,11 @@ def _BuildAutomaton_17 (): counters = set() states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(ChecksumType._UseForTag(pyxb.namespace.ExpandedName(None, 'algorithm')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 730, 3)) + symbol = pyxb.binding.content.ElementUse(ChecksumType._UseForTag(pyxb.namespace.ExpandedName(None, 'algorithm')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 731, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = set() - symbol = pyxb.binding.content.ElementUse(ChecksumType._UseForTag(pyxb.namespace.ExpandedName(None, 'value')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 731, 3)) + symbol = pyxb.binding.content.ElementUse(ChecksumType._UseForTag(pyxb.namespace.ExpandedName(None, 'value')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 732, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) transitions = [] @@ -5552,9 +5631,9 @@ ChecksumType._Automaton = _BuildAutomaton_17() -TBBTrigger._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'type'), pyxb.binding.datatypes.string, scope=TBBTrigger, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 757, 3))) +TBBTrigger._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'type'), pyxb.binding.datatypes.string, scope=TBBTrigger, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 767, 3))) -TBBTrigger._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'value'), pyxb.binding.datatypes.string, scope=TBBTrigger, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 758, 3))) +TBBTrigger._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'value'), pyxb.binding.datatypes.string, scope=TBBTrigger, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 768, 3))) def _BuildAutomaton_18 (): # Remove this helper function from the namespace after it is invoked @@ -5565,11 +5644,11 @@ def _BuildAutomaton_18 (): counters = set() states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(TBBTrigger._UseForTag(pyxb.namespace.ExpandedName(None, 'type')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 757, 3)) + symbol = pyxb.binding.content.ElementUse(TBBTrigger._UseForTag(pyxb.namespace.ExpandedName(None, 'type')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 767, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = set() - symbol = pyxb.binding.content.ElementUse(TBBTrigger._UseForTag(pyxb.namespace.ExpandedName(None, 'value')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 758, 3)) + symbol = pyxb.binding.content.ElementUse(TBBTrigger._UseForTag(pyxb.namespace.ExpandedName(None, 'value')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 768, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) transitions = [] @@ -5584,21 +5663,25 @@ TBBTrigger._Automaton = _BuildAutomaton_18() -DataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'dataProductType'), DataProductType, scope=DataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 790, 3))) +DataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'dataProductType'), DataProductType, scope=DataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 800, 3))) + +DataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier'), IdentifierType, scope=DataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 801, 3))) + +DataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'storageTicket'), pyxb.binding.datatypes.string, scope=DataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3))) -DataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier'), IdentifierType, scope=DataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 791, 3))) +DataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'size'), pyxb.binding.datatypes.unsignedLong, scope=DataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 803, 3))) -DataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'storageTicket'), pyxb.binding.datatypes.string, scope=DataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3))) +DataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'checksum'), ChecksumType, scope=DataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3))) -DataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'size'), pyxb.binding.datatypes.unsignedLong, scope=DataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 793, 3))) +DataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'fileName'), pyxb.binding.datatypes.string, scope=DataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 805, 3))) -DataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'checksum'), ChecksumType, scope=DataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3))) +DataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'fileFormat'), FileFormatType, scope=DataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 806, 3))) -DataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'fileName'), pyxb.binding.datatypes.string, scope=DataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 795, 3))) +DataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'storageWriter'), StorageWriterType, scope=DataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 807, 3))) -DataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'fileFormat'), FileFormatType, scope=DataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 796, 3))) +DataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'storageWriterVersion'), pyxb.binding.datatypes.string, scope=DataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 808, 3))) -DataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'processIdentifier'), IdentifierType, scope=DataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 797, 3))) +DataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'processIdentifier'), IdentifierType, scope=DataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 809, 3))) def _BuildAutomaton_19 (): # Remove this helper function from the namespace after it is invoked @@ -5607,43 +5690,51 @@ def _BuildAutomaton_19 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3)) counters.add(cc_0) - cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3)) + cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3)) counters.add(cc_1) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(DataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductType')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 790, 3)) + symbol = pyxb.binding.content.ElementUse(DataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductType')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 800, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(DataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 791, 3)) + symbol = pyxb.binding.content.ElementUse(DataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 801, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(DataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageTicket')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3)) + symbol = pyxb.binding.content.ElementUse(DataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageTicket')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(DataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'size')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 793, 3)) + symbol = pyxb.binding.content.ElementUse(DataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'size')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 803, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(DataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'checksum')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3)) + symbol = pyxb.binding.content.ElementUse(DataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'checksum')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(DataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 795, 3)) + symbol = pyxb.binding.content.ElementUse(DataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 805, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(DataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileFormat')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 796, 3)) + symbol = pyxb.binding.content.ElementUse(DataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileFormat')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 806, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) - final_update = set() - symbol = pyxb.binding.content.ElementUse(DataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 797, 3)) + final_update = None + symbol = pyxb.binding.content.ElementUse(DataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageWriter')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 807, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) + final_update = None + symbol = pyxb.binding.content.ElementUse(DataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageWriterVersion')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 808, 3)) + st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) + states.append(st_8) + final_update = set() + symbol = pyxb.binding.content.ElementUse(DataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 809, 3)) + st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) + states.append(st_9) transitions = [] transitions.append(fac.Transition(st_1, [ ])) @@ -5681,14 +5772,22 @@ def _BuildAutomaton_19 (): ])) st_6._set_transitionSet(transitions) transitions = [] + transitions.append(fac.Transition(st_8, [ + ])) st_7._set_transitionSet(transitions) + transitions = [] + transitions.append(fac.Transition(st_9, [ + ])) + st_8._set_transitionSet(transitions) + transitions = [] + st_9._set_transitionSet(transitions) return fac.Automaton(states, counters, False, containing_state=None) DataProduct._Automaton = _BuildAutomaton_19() -ArrayBeams._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'arrayBeam'), ArrayBeam, scope=ArrayBeams, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 871, 3))) +ArrayBeams._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'arrayBeam'), ArrayBeam, scope=ArrayBeams, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 883, 3))) def _BuildAutomaton_20 (): # Remove this helper function from the namespace after it is invoked @@ -5699,7 +5798,7 @@ def _BuildAutomaton_20 (): counters = set() states = [] final_update = set() - symbol = pyxb.binding.content.ElementUse(ArrayBeams._UseForTag(pyxb.namespace.ExpandedName(None, 'arrayBeam')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 871, 3)) + symbol = pyxb.binding.content.ElementUse(ArrayBeams._UseForTag(pyxb.namespace.ExpandedName(None, 'arrayBeam')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 883, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) transitions = [] @@ -5712,25 +5811,25 @@ ArrayBeams._Automaton = _BuildAutomaton_20() -ArrayBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'subArrayPointingIdentifier'), IdentifierType, scope=ArrayBeam, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 879, 3))) +ArrayBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'subArrayPointingIdentifier'), IdentifierType, scope=ArrayBeam, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 891, 3))) -ArrayBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'beamNumber'), pyxb.binding.datatypes.unsignedShort, scope=ArrayBeam, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 880, 3))) +ArrayBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'beamNumber'), pyxb.binding.datatypes.unsignedShort, scope=ArrayBeam, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 892, 3))) -ArrayBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'dispersionMeasure'), pyxb.binding.datatypes.double, scope=ArrayBeam, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 881, 3))) +ArrayBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'dispersionMeasure'), pyxb.binding.datatypes.double, scope=ArrayBeam, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 893, 3))) -ArrayBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfSubbands'), pyxb.binding.datatypes.unsignedShort, scope=ArrayBeam, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 882, 3))) +ArrayBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfSubbands'), pyxb.binding.datatypes.unsignedShort, scope=ArrayBeam, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 894, 3))) -ArrayBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'stationSubbands'), ListOfSubbands, scope=ArrayBeam, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 883, 3))) +ArrayBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'stationSubbands'), ListOfSubbands, scope=ArrayBeam, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 895, 3))) -ArrayBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'samplingTime'), Time, scope=ArrayBeam, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 884, 3))) +ArrayBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'samplingTime'), Time, scope=ArrayBeam, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 896, 3))) -ArrayBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'centralFrequencies'), ListOfFrequencies, scope=ArrayBeam, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 885, 3))) +ArrayBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'centralFrequencies'), ListOfFrequencies, scope=ArrayBeam, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 897, 3))) -ArrayBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelWidth'), Frequency, scope=ArrayBeam, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 886, 3))) +ArrayBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelWidth'), Frequency, scope=ArrayBeam, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 898, 3))) -ArrayBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), pyxb.binding.datatypes.unsignedShort, scope=ArrayBeam, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 887, 3))) +ArrayBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), pyxb.binding.datatypes.unsignedShort, scope=ArrayBeam, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 899, 3))) -ArrayBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'stokes'), PolarizationType, scope=ArrayBeam, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 888, 3))) +ArrayBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'stokes'), PolarizationType, scope=ArrayBeam, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 900, 3))) def _BuildAutomaton_21 (): # Remove this helper function from the namespace after it is invoked @@ -5739,48 +5838,48 @@ def _BuildAutomaton_21 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=1, max=4, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 888, 3)) + cc_0 = fac.CounterCondition(min=1, max=4, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 900, 3)) counters.add(cc_0) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(ArrayBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'subArrayPointingIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 879, 3)) + symbol = pyxb.binding.content.ElementUse(ArrayBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'subArrayPointingIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 891, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(ArrayBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'beamNumber')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 880, 3)) + symbol = pyxb.binding.content.ElementUse(ArrayBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'beamNumber')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 892, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(ArrayBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'dispersionMeasure')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 881, 3)) + symbol = pyxb.binding.content.ElementUse(ArrayBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'dispersionMeasure')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 893, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(ArrayBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfSubbands')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 882, 3)) + symbol = pyxb.binding.content.ElementUse(ArrayBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfSubbands')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 894, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(ArrayBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'stationSubbands')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 883, 3)) + symbol = pyxb.binding.content.ElementUse(ArrayBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'stationSubbands')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 895, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(ArrayBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'samplingTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 884, 3)) + symbol = pyxb.binding.content.ElementUse(ArrayBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'samplingTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 896, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(ArrayBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'centralFrequencies')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 885, 3)) + symbol = pyxb.binding.content.ElementUse(ArrayBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'centralFrequencies')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 897, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(ArrayBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'channelWidth')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 886, 3)) + symbol = pyxb.binding.content.ElementUse(ArrayBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'channelWidth')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 898, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = None - symbol = pyxb.binding.content.ElementUse(ArrayBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'channelsPerSubband')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 887, 3)) + symbol = pyxb.binding.content.ElementUse(ArrayBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'channelsPerSubband')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 899, 3)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = set() final_update.add(fac.UpdateInstruction(cc_0, False)) - symbol = pyxb.binding.content.ElementUse(ArrayBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'stokes')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 888, 3)) + symbol = pyxb.binding.content.ElementUse(ArrayBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'stokes')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 900, 3)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) transitions = [] @@ -5829,13 +5928,13 @@ ArrayBeam._Automaton = _BuildAutomaton_21() -Axis._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'number'), pyxb.binding.datatypes.unsignedShort, scope=Axis, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 996, 3))) +Axis._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'number'), pyxb.binding.datatypes.unsignedShort, scope=Axis, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1008, 3))) -Axis._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'name'), pyxb.binding.datatypes.string, scope=Axis, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 997, 3))) +Axis._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'name'), pyxb.binding.datatypes.string, scope=Axis, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1009, 3))) -Axis._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'units'), pyxb.binding.datatypes.string, scope=Axis, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 998, 3))) +Axis._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'units'), pyxb.binding.datatypes.string, scope=Axis, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1010, 3))) -Axis._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'length'), pyxb.binding.datatypes.unsignedInt, scope=Axis, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 999, 3))) +Axis._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'length'), pyxb.binding.datatypes.unsignedInt, scope=Axis, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1011, 3))) def _BuildAutomaton_22 (): # Remove this helper function from the namespace after it is invoked @@ -5846,19 +5945,19 @@ def _BuildAutomaton_22 (): counters = set() states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(Axis._UseForTag(pyxb.namespace.ExpandedName(None, 'number')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 996, 3)) + symbol = pyxb.binding.content.ElementUse(Axis._UseForTag(pyxb.namespace.ExpandedName(None, 'number')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1008, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(Axis._UseForTag(pyxb.namespace.ExpandedName(None, 'name')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 997, 3)) + symbol = pyxb.binding.content.ElementUse(Axis._UseForTag(pyxb.namespace.ExpandedName(None, 'name')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1009, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(Axis._UseForTag(pyxb.namespace.ExpandedName(None, 'units')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 998, 3)) + symbol = pyxb.binding.content.ElementUse(Axis._UseForTag(pyxb.namespace.ExpandedName(None, 'units')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1010, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = set() - symbol = pyxb.binding.content.ElementUse(Axis._UseForTag(pyxb.namespace.ExpandedName(None, 'length')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 999, 3)) + symbol = pyxb.binding.content.ElementUse(Axis._UseForTag(pyxb.namespace.ExpandedName(None, 'length')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1011, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) transitions = [] @@ -5881,9 +5980,9 @@ Axis._Automaton = _BuildAutomaton_22() -SpectralQuantity._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'type'), SpectralQuantityType, scope=SpectralQuantity, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1083, 3))) +SpectralQuantity._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'type'), SpectralQuantityType, scope=SpectralQuantity, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1095, 3))) -SpectralQuantity._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'value'), pyxb.binding.datatypes.double, scope=SpectralQuantity, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1084, 3))) +SpectralQuantity._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'value'), pyxb.binding.datatypes.double, scope=SpectralQuantity, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1096, 3))) def _BuildAutomaton_23 (): # Remove this helper function from the namespace after it is invoked @@ -5894,11 +5993,11 @@ def _BuildAutomaton_23 (): counters = set() states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(SpectralQuantity._UseForTag(pyxb.namespace.ExpandedName(None, 'type')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1083, 3)) + symbol = pyxb.binding.content.ElementUse(SpectralQuantity._UseForTag(pyxb.namespace.ExpandedName(None, 'type')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1095, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = set() - symbol = pyxb.binding.content.ElementUse(SpectralQuantity._UseForTag(pyxb.namespace.ExpandedName(None, 'value')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1084, 3)) + symbol = pyxb.binding.content.ElementUse(SpectralQuantity._UseForTag(pyxb.namespace.ExpandedName(None, 'value')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1096, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) transitions = [] @@ -5913,9 +6012,9 @@ SpectralQuantity._Automaton = _BuildAutomaton_23() -Parset._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'identifier'), IdentifierType, scope=Parset, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1170, 3))) +Parset._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'identifier'), IdentifierType, scope=Parset, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1182, 3))) -Parset._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'contents'), pyxb.binding.datatypes.string, scope=Parset, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1171, 3))) +Parset._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'contents'), pyxb.binding.datatypes.string, scope=Parset, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1183, 3))) def _BuildAutomaton_24 (): # Remove this helper function from the namespace after it is invoked @@ -5926,11 +6025,11 @@ def _BuildAutomaton_24 (): counters = set() states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(Parset._UseForTag(pyxb.namespace.ExpandedName(None, 'identifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1170, 3)) + symbol = pyxb.binding.content.ElementUse(Parset._UseForTag(pyxb.namespace.ExpandedName(None, 'identifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1182, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = set() - symbol = pyxb.binding.content.ElementUse(Parset._UseForTag(pyxb.namespace.ExpandedName(None, 'contents')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1171, 3)) + symbol = pyxb.binding.content.ElementUse(Parset._UseForTag(pyxb.namespace.ExpandedName(None, 'contents')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1183, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) transitions = [] @@ -5945,17 +6044,17 @@ Parset._Automaton = _BuildAutomaton_24() -Project._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'projectCode'), pyxb.binding.datatypes.string, scope=Project, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1191, 3))) +Project._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'projectCode'), pyxb.binding.datatypes.string, scope=Project, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1203, 3))) -Project._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'primaryInvestigator'), pyxb.binding.datatypes.string, scope=Project, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1192, 3))) +Project._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'primaryInvestigator'), pyxb.binding.datatypes.string, scope=Project, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1204, 3))) -Project._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'coInvestigator'), pyxb.binding.datatypes.string, scope=Project, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1193, 3))) +Project._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'coInvestigator'), pyxb.binding.datatypes.string, scope=Project, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1205, 3))) -Project._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'contactAuthor'), pyxb.binding.datatypes.string, scope=Project, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1194, 3))) +Project._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'contactAuthor'), pyxb.binding.datatypes.string, scope=Project, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1206, 3))) -Project._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'telescope'), Telescope, scope=Project, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1195, 3))) +Project._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'telescope'), Telescope, scope=Project, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1207, 3))) -Project._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'projectDescription'), pyxb.binding.datatypes.string, scope=Project, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1196, 3))) +Project._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'projectDescription'), pyxb.binding.datatypes.string, scope=Project, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1208, 3))) def _BuildAutomaton_25 (): # Remove this helper function from the namespace after it is invoked @@ -5964,31 +6063,31 @@ def _BuildAutomaton_25 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1193, 3)) + cc_0 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1205, 3)) counters.add(cc_0) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(Project._UseForTag(pyxb.namespace.ExpandedName(None, 'projectCode')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1191, 3)) + symbol = pyxb.binding.content.ElementUse(Project._UseForTag(pyxb.namespace.ExpandedName(None, 'projectCode')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1203, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(Project._UseForTag(pyxb.namespace.ExpandedName(None, 'primaryInvestigator')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1192, 3)) + symbol = pyxb.binding.content.ElementUse(Project._UseForTag(pyxb.namespace.ExpandedName(None, 'primaryInvestigator')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1204, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(Project._UseForTag(pyxb.namespace.ExpandedName(None, 'coInvestigator')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1193, 3)) + symbol = pyxb.binding.content.ElementUse(Project._UseForTag(pyxb.namespace.ExpandedName(None, 'coInvestigator')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1205, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(Project._UseForTag(pyxb.namespace.ExpandedName(None, 'contactAuthor')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1194, 3)) + symbol = pyxb.binding.content.ElementUse(Project._UseForTag(pyxb.namespace.ExpandedName(None, 'contactAuthor')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1206, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(Project._UseForTag(pyxb.namespace.ExpandedName(None, 'telescope')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1195, 3)) + symbol = pyxb.binding.content.ElementUse(Project._UseForTag(pyxb.namespace.ExpandedName(None, 'telescope')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1207, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = set() - symbol = pyxb.binding.content.ElementUse(Project._UseForTag(pyxb.namespace.ExpandedName(None, 'projectDescription')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1196, 3)) + symbol = pyxb.binding.content.ElementUse(Project._UseForTag(pyxb.namespace.ExpandedName(None, 'projectDescription')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1208, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) transitions = [] @@ -6023,21 +6122,21 @@ Project._Automaton = _BuildAutomaton_25() -LTASip._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'sipGeneratorVersion'), pyxb.binding.datatypes.string, scope=LTASip, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1209, 3))) +LTASip._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'sipGeneratorVersion'), pyxb.binding.datatypes.string, scope=LTASip, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1221, 3))) -LTASip._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'project'), Project, scope=LTASip, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1210, 3))) +LTASip._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'project'), Project, scope=LTASip, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1222, 3))) -LTASip._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'dataProduct'), DataProduct, scope=LTASip, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1211, 3))) +LTASip._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'dataProduct'), DataProduct, scope=LTASip, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1223, 3))) -LTASip._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'observation'), Observation, scope=LTASip, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1212, 3))) +LTASip._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'observation'), Observation, scope=LTASip, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1224, 3))) -LTASip._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'pipelineRun'), PipelineRun, scope=LTASip, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1213, 3))) +LTASip._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'pipelineRun'), PipelineRun, scope=LTASip, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1225, 3))) -LTASip._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'unspecifiedProcess'), UnspecifiedProcess, scope=LTASip, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1214, 3))) +LTASip._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'unspecifiedProcess'), UnspecifiedProcess, scope=LTASip, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1226, 3))) -LTASip._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'relatedDataProduct'), DataProduct, scope=LTASip, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1215, 3))) +LTASip._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'relatedDataProduct'), DataProduct, scope=LTASip, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1227, 3))) -LTASip._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'parset'), Parset, scope=LTASip, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1216, 3))) +LTASip._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'parset'), Parset, scope=LTASip, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1228, 3))) def _BuildAutomaton_26 (): # Remove this helper function from the namespace after it is invoked @@ -6046,52 +6145,52 @@ def _BuildAutomaton_26 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1212, 3)) + cc_0 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1224, 3)) counters.add(cc_0) - cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1213, 3)) + cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1225, 3)) counters.add(cc_1) - cc_2 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1214, 3)) + cc_2 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1226, 3)) counters.add(cc_2) - cc_3 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1215, 3)) + cc_3 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1227, 3)) counters.add(cc_3) - cc_4 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1216, 3)) + cc_4 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1228, 3)) counters.add(cc_4) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(LTASip._UseForTag(pyxb.namespace.ExpandedName(None, 'sipGeneratorVersion')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1209, 3)) + symbol = pyxb.binding.content.ElementUse(LTASip._UseForTag(pyxb.namespace.ExpandedName(None, 'sipGeneratorVersion')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1221, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(LTASip._UseForTag(pyxb.namespace.ExpandedName(None, 'project')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1210, 3)) + symbol = pyxb.binding.content.ElementUse(LTASip._UseForTag(pyxb.namespace.ExpandedName(None, 'project')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1222, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = set() - symbol = pyxb.binding.content.ElementUse(LTASip._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProduct')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1211, 3)) + symbol = pyxb.binding.content.ElementUse(LTASip._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProduct')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1223, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = set() final_update.add(fac.UpdateInstruction(cc_0, False)) - symbol = pyxb.binding.content.ElementUse(LTASip._UseForTag(pyxb.namespace.ExpandedName(None, 'observation')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1212, 3)) + symbol = pyxb.binding.content.ElementUse(LTASip._UseForTag(pyxb.namespace.ExpandedName(None, 'observation')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1224, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = set() final_update.add(fac.UpdateInstruction(cc_1, False)) - symbol = pyxb.binding.content.ElementUse(LTASip._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineRun')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1213, 3)) + symbol = pyxb.binding.content.ElementUse(LTASip._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineRun')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1225, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = set() final_update.add(fac.UpdateInstruction(cc_2, False)) - symbol = pyxb.binding.content.ElementUse(LTASip._UseForTag(pyxb.namespace.ExpandedName(None, 'unspecifiedProcess')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1214, 3)) + symbol = pyxb.binding.content.ElementUse(LTASip._UseForTag(pyxb.namespace.ExpandedName(None, 'unspecifiedProcess')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1226, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = set() final_update.add(fac.UpdateInstruction(cc_3, False)) - symbol = pyxb.binding.content.ElementUse(LTASip._UseForTag(pyxb.namespace.ExpandedName(None, 'relatedDataProduct')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1215, 3)) + symbol = pyxb.binding.content.ElementUse(LTASip._UseForTag(pyxb.namespace.ExpandedName(None, 'relatedDataProduct')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1227, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = set() final_update.add(fac.UpdateInstruction(cc_4, False)) - symbol = pyxb.binding.content.ElementUse(LTASip._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1216, 3)) + symbol = pyxb.binding.content.ElementUse(LTASip._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1228, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) transitions = [] @@ -6160,41 +6259,41 @@ LTASip._Automaton = _BuildAutomaton_26() -Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'observingMode'), ObservingModeType, scope=Observation, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 354, 5))) +Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'observingMode'), ObservingModeType, scope=Observation, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 355, 5))) -Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'observationDescription'), pyxb.binding.datatypes.string, scope=Observation, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 355, 5))) +Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'observationDescription'), pyxb.binding.datatypes.string, scope=Observation, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 356, 5))) -Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'instrumentFilter'), FilterSelectionType, scope=Observation, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 356, 5))) +Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'instrumentFilter'), FilterSelectionType, scope=Observation, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 357, 5))) -Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'clock'), ClockType, scope=Observation, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 357, 5))) +Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'clock'), ClockType, scope=Observation, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 358, 5))) -Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'stationSelection'), StationSelectionType, scope=Observation, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 358, 5))) +Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'stationSelection'), StationSelectionType, scope=Observation, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 359, 5))) -Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'antennaSet'), AntennaSetType, scope=Observation, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 359, 5))) +Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'antennaSet'), AntennaSetType, scope=Observation, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 360, 5))) -Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'timeSystem'), TimeSystemType, scope=Observation, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 360, 5))) +Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'timeSystem'), TimeSystemType, scope=Observation, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 361, 5))) -Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelWidth'), Frequency, scope=Observation, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 361, 5))) +Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelWidth'), Frequency, scope=Observation, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 362, 5))) -Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), pyxb.binding.datatypes.unsignedShort, scope=Observation, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 362, 5))) +Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), pyxb.binding.datatypes.unsignedShort, scope=Observation, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 363, 5))) -Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfStations'), pyxb.binding.datatypes.unsignedByte, scope=Observation, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 363, 5))) +Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfStations'), pyxb.binding.datatypes.unsignedByte, scope=Observation, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 364, 5))) -Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'stations'), Stations, scope=Observation, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 364, 5))) +Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'stations'), Stations, scope=Observation, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 365, 5))) -Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfSubArrayPointings'), pyxb.binding.datatypes.unsignedShort, scope=Observation, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 365, 5))) +Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfSubArrayPointings'), pyxb.binding.datatypes.unsignedShort, scope=Observation, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 366, 5))) -Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'subArrayPointings'), SubArrayPointings, scope=Observation, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 366, 5))) +Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'subArrayPointings'), SubArrayPointings, scope=Observation, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 367, 5))) -Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOftransientBufferBoardEvents'), pyxb.binding.datatypes.unsignedShort, scope=Observation, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 367, 5))) +Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOftransientBufferBoardEvents'), pyxb.binding.datatypes.unsignedShort, scope=Observation, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 368, 5))) -Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'transientBufferBoardEvents'), TransientBufferBoardEvents, scope=Observation, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 368, 5))) +Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'transientBufferBoardEvents'), TransientBufferBoardEvents, scope=Observation, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 369, 5))) -Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts'), pyxb.binding.datatypes.unsignedShort, scope=Observation, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 369, 5))) +Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts'), pyxb.binding.datatypes.unsignedShort, scope=Observation, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 370, 5))) -Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfBeamFormedDataProducts'), pyxb.binding.datatypes.unsignedShort, scope=Observation, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 370, 5))) +Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfBeamFormedDataProducts'), pyxb.binding.datatypes.unsignedShort, scope=Observation, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 371, 5))) -Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfBitsPerSample'), pyxb.binding.datatypes.unsignedShort, scope=Observation, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 371, 5))) +Observation._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfBitsPerSample'), pyxb.binding.datatypes.unsignedShort, scope=Observation, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 372, 5))) def _BuildAutomaton_27 (): # Remove this helper function from the namespace after it is invoked @@ -6203,121 +6302,121 @@ def _BuildAutomaton_27 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) counters.add(cc_0) - cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 355, 5)) + cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 356, 5)) counters.add(cc_1) - cc_2 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 361, 5)) + cc_2 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 362, 5)) counters.add(cc_2) - cc_3 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 362, 5)) + cc_3 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 363, 5)) counters.add(cc_3) - cc_4 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 366, 5)) + cc_4 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 367, 5)) counters.add(cc_4) - cc_5 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 368, 5)) + cc_5 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 369, 5)) counters.add(cc_5) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 258, 3)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 259, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 259, 3)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 260, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 261, 3)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 262, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 262, 3)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 263, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 263, 3)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 264, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 264, 3)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 265, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 265, 3)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 266, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'observingMode')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 354, 5)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'observingMode')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 355, 5)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'observationDescription')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 355, 5)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'observationDescription')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 356, 5)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'instrumentFilter')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 356, 5)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'instrumentFilter')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 357, 5)) st_10 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_10) final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'clock')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 357, 5)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'clock')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 358, 5)) st_11 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_11) final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'stationSelection')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 358, 5)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'stationSelection')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 359, 5)) st_12 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_12) final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'antennaSet')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 359, 5)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'antennaSet')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 360, 5)) st_13 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_13) final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'timeSystem')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 360, 5)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'timeSystem')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 361, 5)) st_14 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_14) final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'channelWidth')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 361, 5)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'channelWidth')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 362, 5)) st_15 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_15) final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'channelsPerSubband')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 362, 5)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'channelsPerSubband')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 363, 5)) st_16 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_16) final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfStations')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 363, 5)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfStations')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 364, 5)) st_17 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_17) final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'stations')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 364, 5)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'stations')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 365, 5)) st_18 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_18) final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfSubArrayPointings')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 365, 5)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfSubArrayPointings')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 366, 5)) st_19 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_19) final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'subArrayPointings')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 366, 5)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'subArrayPointings')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 367, 5)) st_20 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_20) final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOftransientBufferBoardEvents')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 367, 5)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOftransientBufferBoardEvents')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 368, 5)) st_21 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_21) final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'transientBufferBoardEvents')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 368, 5)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'transientBufferBoardEvents')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 369, 5)) st_22 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_22) final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 369, 5)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 370, 5)) st_23 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_23) final_update = None - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfBeamFormedDataProducts')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 370, 5)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfBeamFormedDataProducts')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 371, 5)) st_24 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_24) final_update = set() - symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfBitsPerSample')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 371, 5)) + symbol = pyxb.binding.content.ElementUse(Observation._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfBitsPerSample')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 372, 5)) st_25 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_25) transitions = [] @@ -6454,9 +6553,9 @@ Observation._Automaton = _BuildAutomaton_27() -DirectDataMeasurement._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'observingMode'), ObservingModeType, scope=DirectDataMeasurement, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 380, 5))) +DirectDataMeasurement._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'observingMode'), ObservingModeType, scope=DirectDataMeasurement, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 381, 5))) -DirectDataMeasurement._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'station'), Station, scope=DirectDataMeasurement, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 381, 5))) +DirectDataMeasurement._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'station'), Station, scope=DirectDataMeasurement, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 382, 5))) def _BuildAutomaton_28 (): # Remove this helper function from the namespace after it is invoked @@ -6465,47 +6564,47 @@ def _BuildAutomaton_28 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) counters.add(cc_0) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(DirectDataMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 258, 3)) + symbol = pyxb.binding.content.ElementUse(DirectDataMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 259, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(DirectDataMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 259, 3)) + symbol = pyxb.binding.content.ElementUse(DirectDataMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 260, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(DirectDataMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + symbol = pyxb.binding.content.ElementUse(DirectDataMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(DirectDataMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 261, 3)) + symbol = pyxb.binding.content.ElementUse(DirectDataMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 262, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(DirectDataMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 262, 3)) + symbol = pyxb.binding.content.ElementUse(DirectDataMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 263, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(DirectDataMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 263, 3)) + symbol = pyxb.binding.content.ElementUse(DirectDataMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 264, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(DirectDataMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 264, 3)) + symbol = pyxb.binding.content.ElementUse(DirectDataMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 265, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(DirectDataMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 265, 3)) + symbol = pyxb.binding.content.ElementUse(DirectDataMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 266, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = None - symbol = pyxb.binding.content.ElementUse(DirectDataMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'observingMode')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 380, 5)) + symbol = pyxb.binding.content.ElementUse(DirectDataMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'observingMode')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 381, 5)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = set() - symbol = pyxb.binding.content.ElementUse(DirectDataMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'station')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 381, 5)) + symbol = pyxb.binding.content.ElementUse(DirectDataMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'station')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 382, 5)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) transitions = [] @@ -6556,9 +6655,9 @@ DirectDataMeasurement._Automaton = _BuildAutomaton_28() -GenericMeasurement._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'observingMode'), ObservingModeType, scope=GenericMeasurement, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 397, 5))) +GenericMeasurement._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'observingMode'), ObservingModeType, scope=GenericMeasurement, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 398, 5))) -GenericMeasurement._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'description'), pyxb.binding.datatypes.string, scope=GenericMeasurement, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 398, 5))) +GenericMeasurement._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'description'), pyxb.binding.datatypes.string, scope=GenericMeasurement, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 399, 5))) def _BuildAutomaton_29 (): # Remove this helper function from the namespace after it is invoked @@ -6567,47 +6666,47 @@ def _BuildAutomaton_29 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) counters.add(cc_0) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(GenericMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 258, 3)) + symbol = pyxb.binding.content.ElementUse(GenericMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 259, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(GenericMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 259, 3)) + symbol = pyxb.binding.content.ElementUse(GenericMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 260, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(GenericMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + symbol = pyxb.binding.content.ElementUse(GenericMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(GenericMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 261, 3)) + symbol = pyxb.binding.content.ElementUse(GenericMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 262, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(GenericMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 262, 3)) + symbol = pyxb.binding.content.ElementUse(GenericMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 263, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(GenericMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 263, 3)) + symbol = pyxb.binding.content.ElementUse(GenericMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 264, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(GenericMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 264, 3)) + symbol = pyxb.binding.content.ElementUse(GenericMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 265, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(GenericMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 265, 3)) + symbol = pyxb.binding.content.ElementUse(GenericMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 266, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = None - symbol = pyxb.binding.content.ElementUse(GenericMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'observingMode')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 397, 5)) + symbol = pyxb.binding.content.ElementUse(GenericMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'observingMode')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 398, 5)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = set() - symbol = pyxb.binding.content.ElementUse(GenericMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'description')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 398, 5)) + symbol = pyxb.binding.content.ElementUse(GenericMeasurement._UseForTag(pyxb.namespace.ExpandedName(None, 'description')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 399, 5)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) transitions = [] @@ -6658,9 +6757,9 @@ GenericMeasurement._Automaton = _BuildAutomaton_29() -UnspecifiedProcess._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'observingMode'), ObservingModeType, scope=UnspecifiedProcess, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 407, 5))) +UnspecifiedProcess._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'observingMode'), ObservingModeType, scope=UnspecifiedProcess, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 408, 5))) -UnspecifiedProcess._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'description'), pyxb.binding.datatypes.string, scope=UnspecifiedProcess, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 408, 5))) +UnspecifiedProcess._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'description'), pyxb.binding.datatypes.string, scope=UnspecifiedProcess, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 409, 5))) def _BuildAutomaton_30 (): # Remove this helper function from the namespace after it is invoked @@ -6669,47 +6768,47 @@ def _BuildAutomaton_30 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) counters.add(cc_0) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(UnspecifiedProcess._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 258, 3)) + symbol = pyxb.binding.content.ElementUse(UnspecifiedProcess._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 259, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(UnspecifiedProcess._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 259, 3)) + symbol = pyxb.binding.content.ElementUse(UnspecifiedProcess._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 260, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(UnspecifiedProcess._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + symbol = pyxb.binding.content.ElementUse(UnspecifiedProcess._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(UnspecifiedProcess._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 261, 3)) + symbol = pyxb.binding.content.ElementUse(UnspecifiedProcess._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 262, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(UnspecifiedProcess._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 262, 3)) + symbol = pyxb.binding.content.ElementUse(UnspecifiedProcess._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 263, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(UnspecifiedProcess._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 263, 3)) + symbol = pyxb.binding.content.ElementUse(UnspecifiedProcess._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 264, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(UnspecifiedProcess._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 264, 3)) + symbol = pyxb.binding.content.ElementUse(UnspecifiedProcess._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 265, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(UnspecifiedProcess._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 265, 3)) + symbol = pyxb.binding.content.ElementUse(UnspecifiedProcess._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 266, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = None - symbol = pyxb.binding.content.ElementUse(UnspecifiedProcess._UseForTag(pyxb.namespace.ExpandedName(None, 'observingMode')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 407, 5)) + symbol = pyxb.binding.content.ElementUse(UnspecifiedProcess._UseForTag(pyxb.namespace.ExpandedName(None, 'observingMode')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 408, 5)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = set() - symbol = pyxb.binding.content.ElementUse(UnspecifiedProcess._UseForTag(pyxb.namespace.ExpandedName(None, 'description')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 408, 5)) + symbol = pyxb.binding.content.ElementUse(UnspecifiedProcess._UseForTag(pyxb.namespace.ExpandedName(None, 'description')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 409, 5)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) transitions = [] @@ -6760,11 +6859,11 @@ UnspecifiedProcess._Automaton = _BuildAutomaton_30() -Correlator._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'integrationInterval'), Time, scope=Correlator, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 457, 5))) +Correlator._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'integrationInterval'), Time, scope=Correlator, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 458, 5))) -Correlator._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelWidth'), Frequency, scope=Correlator, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 458, 5))) +Correlator._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelWidth'), Frequency, scope=Correlator, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 459, 5))) -Correlator._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), pyxb.binding.datatypes.unsignedShort, scope=Correlator, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 459, 5))) +Correlator._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), pyxb.binding.datatypes.unsignedShort, scope=Correlator, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 460, 5))) def _BuildAutomaton_31 (): # Remove this helper function from the namespace after it is invoked @@ -6773,27 +6872,27 @@ def _BuildAutomaton_31 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 458, 5)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 459, 5)) counters.add(cc_0) - cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 459, 5)) + cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 460, 5)) counters.add(cc_1) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(Correlator._UseForTag(pyxb.namespace.ExpandedName(None, 'processingType')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 450, 3)) + symbol = pyxb.binding.content.ElementUse(Correlator._UseForTag(pyxb.namespace.ExpandedName(None, 'processingType')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 451, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = set() - symbol = pyxb.binding.content.ElementUse(Correlator._UseForTag(pyxb.namespace.ExpandedName(None, 'integrationInterval')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 457, 5)) + symbol = pyxb.binding.content.ElementUse(Correlator._UseForTag(pyxb.namespace.ExpandedName(None, 'integrationInterval')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 458, 5)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = set() final_update.add(fac.UpdateInstruction(cc_0, False)) - symbol = pyxb.binding.content.ElementUse(Correlator._UseForTag(pyxb.namespace.ExpandedName(None, 'channelWidth')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 458, 5)) + symbol = pyxb.binding.content.ElementUse(Correlator._UseForTag(pyxb.namespace.ExpandedName(None, 'channelWidth')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 459, 5)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = set() final_update.add(fac.UpdateInstruction(cc_1, False)) - symbol = pyxb.binding.content.ElementUse(Correlator._UseForTag(pyxb.namespace.ExpandedName(None, 'channelsPerSubband')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 459, 5)) + symbol = pyxb.binding.content.ElementUse(Correlator._UseForTag(pyxb.namespace.ExpandedName(None, 'channelsPerSubband')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 460, 5)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) transitions = [] @@ -6822,25 +6921,25 @@ Correlator._Automaton = _BuildAutomaton_31() -CoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'rawSamplingTime'), Time, scope=CoherentStokes, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 478, 5))) +CoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'rawSamplingTime'), Time, scope=CoherentStokes, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 479, 5))) -CoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'timeDownsamplingFactor'), pyxb.binding.datatypes.unsignedInt, scope=CoherentStokes, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 479, 5))) +CoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'timeDownsamplingFactor'), pyxb.binding.datatypes.unsignedInt, scope=CoherentStokes, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 480, 5))) -CoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'samplingTime'), Time, scope=CoherentStokes, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 480, 5))) +CoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'samplingTime'), Time, scope=CoherentStokes, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 481, 5))) -CoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'frequencyDownsamplingFactor'), pyxb.binding.datatypes.unsignedShort, scope=CoherentStokes, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 481, 5))) +CoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'frequencyDownsamplingFactor'), pyxb.binding.datatypes.unsignedShort, scope=CoherentStokes, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 482, 5))) -CoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfCollapsedChannels'), pyxb.binding.datatypes.unsignedShort, scope=CoherentStokes, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 482, 5))) +CoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfCollapsedChannels'), pyxb.binding.datatypes.unsignedShort, scope=CoherentStokes, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 483, 5))) -CoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'stokes'), PolarizationType, scope=CoherentStokes, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 483, 5))) +CoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'stokes'), PolarizationType, scope=CoherentStokes, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 484, 5))) -CoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfStations'), pyxb.binding.datatypes.unsignedByte, scope=CoherentStokes, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 484, 5))) +CoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfStations'), pyxb.binding.datatypes.unsignedByte, scope=CoherentStokes, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 485, 5))) -CoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'stations'), Stations, scope=CoherentStokes, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 485, 5))) +CoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'stations'), Stations, scope=CoherentStokes, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 486, 5))) -CoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelWidth'), Frequency, scope=CoherentStokes, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 486, 5))) +CoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelWidth'), Frequency, scope=CoherentStokes, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 487, 5))) -CoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), pyxb.binding.datatypes.unsignedShort, scope=CoherentStokes, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 487, 5))) +CoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), pyxb.binding.datatypes.unsignedShort, scope=CoherentStokes, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 488, 5))) def _BuildAutomaton_32 (): # Remove this helper function from the namespace after it is invoked @@ -6849,61 +6948,61 @@ def _BuildAutomaton_32 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 481, 5)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 482, 5)) counters.add(cc_0) - cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 482, 5)) + cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 483, 5)) counters.add(cc_1) - cc_2 = fac.CounterCondition(min=1, max=4, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 483, 5)) + cc_2 = fac.CounterCondition(min=1, max=4, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 484, 5)) counters.add(cc_2) - cc_3 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 486, 5)) + cc_3 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 487, 5)) counters.add(cc_3) - cc_4 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 487, 5)) + cc_4 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 488, 5)) counters.add(cc_4) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(CoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'processingType')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 450, 3)) + symbol = pyxb.binding.content.ElementUse(CoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'processingType')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 451, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(CoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'rawSamplingTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 478, 5)) + symbol = pyxb.binding.content.ElementUse(CoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'rawSamplingTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 479, 5)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(CoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'timeDownsamplingFactor')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 479, 5)) + symbol = pyxb.binding.content.ElementUse(CoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'timeDownsamplingFactor')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 480, 5)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(CoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'samplingTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 480, 5)) + symbol = pyxb.binding.content.ElementUse(CoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'samplingTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 481, 5)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(CoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'frequencyDownsamplingFactor')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 481, 5)) + symbol = pyxb.binding.content.ElementUse(CoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'frequencyDownsamplingFactor')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 482, 5)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(CoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfCollapsedChannels')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 482, 5)) + symbol = pyxb.binding.content.ElementUse(CoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfCollapsedChannels')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 483, 5)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(CoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'stokes')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 483, 5)) + symbol = pyxb.binding.content.ElementUse(CoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'stokes')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 484, 5)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(CoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfStations')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 484, 5)) + symbol = pyxb.binding.content.ElementUse(CoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfStations')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 485, 5)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = set() - symbol = pyxb.binding.content.ElementUse(CoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'stations')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 485, 5)) + symbol = pyxb.binding.content.ElementUse(CoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'stations')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 486, 5)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = set() final_update.add(fac.UpdateInstruction(cc_3, False)) - symbol = pyxb.binding.content.ElementUse(CoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'channelWidth')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 486, 5)) + symbol = pyxb.binding.content.ElementUse(CoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'channelWidth')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 487, 5)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) final_update = set() final_update.add(fac.UpdateInstruction(cc_4, False)) - symbol = pyxb.binding.content.ElementUse(CoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'channelsPerSubband')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 487, 5)) + symbol = pyxb.binding.content.ElementUse(CoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'channelsPerSubband')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 488, 5)) st_10 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_10) transitions = [] @@ -6972,25 +7071,25 @@ CoherentStokes._Automaton = _BuildAutomaton_32() -IncoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'rawSamplingTime'), Time, scope=IncoherentStokes, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 496, 5))) +IncoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'rawSamplingTime'), Time, scope=IncoherentStokes, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 497, 5))) -IncoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'timeDownsamplingFactor'), pyxb.binding.datatypes.unsignedInt, scope=IncoherentStokes, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 497, 5))) +IncoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'timeDownsamplingFactor'), pyxb.binding.datatypes.unsignedInt, scope=IncoherentStokes, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 498, 5))) -IncoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'samplingTime'), Time, scope=IncoherentStokes, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 498, 5))) +IncoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'samplingTime'), Time, scope=IncoherentStokes, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 499, 5))) -IncoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'frequencyDownsamplingFactor'), pyxb.binding.datatypes.unsignedShort, scope=IncoherentStokes, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 499, 5))) +IncoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'frequencyDownsamplingFactor'), pyxb.binding.datatypes.unsignedShort, scope=IncoherentStokes, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 500, 5))) -IncoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfCollapsedChannels'), pyxb.binding.datatypes.unsignedShort, scope=IncoherentStokes, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 500, 5))) +IncoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfCollapsedChannels'), pyxb.binding.datatypes.unsignedShort, scope=IncoherentStokes, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 501, 5))) -IncoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'stokes'), PolarizationType, scope=IncoherentStokes, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 501, 5))) +IncoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'stokes'), PolarizationType, scope=IncoherentStokes, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 502, 5))) -IncoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfStations'), pyxb.binding.datatypes.unsignedByte, scope=IncoherentStokes, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 502, 5))) +IncoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfStations'), pyxb.binding.datatypes.unsignedByte, scope=IncoherentStokes, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 503, 5))) -IncoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'stations'), Stations, scope=IncoherentStokes, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 503, 5))) +IncoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'stations'), Stations, scope=IncoherentStokes, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 504, 5))) -IncoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelWidth'), Frequency, scope=IncoherentStokes, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 504, 5))) +IncoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelWidth'), Frequency, scope=IncoherentStokes, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 505, 5))) -IncoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), pyxb.binding.datatypes.unsignedShort, scope=IncoherentStokes, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 505, 5))) +IncoherentStokes._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), pyxb.binding.datatypes.unsignedShort, scope=IncoherentStokes, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 506, 5))) def _BuildAutomaton_33 (): # Remove this helper function from the namespace after it is invoked @@ -6999,61 +7098,61 @@ def _BuildAutomaton_33 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 499, 5)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 500, 5)) counters.add(cc_0) - cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 500, 5)) + cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 501, 5)) counters.add(cc_1) - cc_2 = fac.CounterCondition(min=1, max=4, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 501, 5)) + cc_2 = fac.CounterCondition(min=1, max=4, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 502, 5)) counters.add(cc_2) - cc_3 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 504, 5)) + cc_3 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 505, 5)) counters.add(cc_3) - cc_4 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 505, 5)) + cc_4 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 506, 5)) counters.add(cc_4) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(IncoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'processingType')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 450, 3)) + symbol = pyxb.binding.content.ElementUse(IncoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'processingType')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 451, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(IncoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'rawSamplingTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 496, 5)) + symbol = pyxb.binding.content.ElementUse(IncoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'rawSamplingTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 497, 5)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(IncoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'timeDownsamplingFactor')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 497, 5)) + symbol = pyxb.binding.content.ElementUse(IncoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'timeDownsamplingFactor')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 498, 5)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(IncoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'samplingTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 498, 5)) + symbol = pyxb.binding.content.ElementUse(IncoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'samplingTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 499, 5)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(IncoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'frequencyDownsamplingFactor')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 499, 5)) + symbol = pyxb.binding.content.ElementUse(IncoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'frequencyDownsamplingFactor')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 500, 5)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(IncoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfCollapsedChannels')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 500, 5)) + symbol = pyxb.binding.content.ElementUse(IncoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfCollapsedChannels')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 501, 5)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(IncoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'stokes')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 501, 5)) + symbol = pyxb.binding.content.ElementUse(IncoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'stokes')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 502, 5)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(IncoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfStations')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 502, 5)) + symbol = pyxb.binding.content.ElementUse(IncoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfStations')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 503, 5)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = set() - symbol = pyxb.binding.content.ElementUse(IncoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'stations')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 503, 5)) + symbol = pyxb.binding.content.ElementUse(IncoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'stations')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 504, 5)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = set() final_update.add(fac.UpdateInstruction(cc_3, False)) - symbol = pyxb.binding.content.ElementUse(IncoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'channelWidth')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 504, 5)) + symbol = pyxb.binding.content.ElementUse(IncoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'channelWidth')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 505, 5)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) final_update = set() final_update.add(fac.UpdateInstruction(cc_4, False)) - symbol = pyxb.binding.content.ElementUse(IncoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'channelsPerSubband')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 505, 5)) + symbol = pyxb.binding.content.ElementUse(IncoherentStokes._UseForTag(pyxb.namespace.ExpandedName(None, 'channelsPerSubband')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 506, 5)) st_10 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_10) transitions = [] @@ -7122,17 +7221,17 @@ IncoherentStokes._Automaton = _BuildAutomaton_33() -FlysEye._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'rawSamplingTime'), Time, scope=FlysEye, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 514, 5))) +FlysEye._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'rawSamplingTime'), Time, scope=FlysEye, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 515, 5))) -FlysEye._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'timeDownsamplingFactor'), pyxb.binding.datatypes.unsignedInt, scope=FlysEye, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 515, 5))) +FlysEye._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'timeDownsamplingFactor'), pyxb.binding.datatypes.unsignedInt, scope=FlysEye, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 516, 5))) -FlysEye._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'samplingTime'), Time, scope=FlysEye, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 516, 5))) +FlysEye._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'samplingTime'), Time, scope=FlysEye, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 517, 5))) -FlysEye._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'stokes'), PolarizationType, scope=FlysEye, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 517, 5))) +FlysEye._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'stokes'), PolarizationType, scope=FlysEye, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 518, 5))) -FlysEye._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelWidth'), Frequency, scope=FlysEye, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 518, 5))) +FlysEye._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelWidth'), Frequency, scope=FlysEye, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 519, 5))) -FlysEye._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), pyxb.binding.datatypes.unsignedShort, scope=FlysEye, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 519, 5))) +FlysEye._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), pyxb.binding.datatypes.unsignedShort, scope=FlysEye, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 520, 5))) def _BuildAutomaton_34 (): # Remove this helper function from the namespace after it is invoked @@ -7141,42 +7240,42 @@ def _BuildAutomaton_34 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=1, max=4, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 517, 5)) + cc_0 = fac.CounterCondition(min=1, max=4, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 518, 5)) counters.add(cc_0) - cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 518, 5)) + cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 519, 5)) counters.add(cc_1) - cc_2 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 519, 5)) + cc_2 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 520, 5)) counters.add(cc_2) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(FlysEye._UseForTag(pyxb.namespace.ExpandedName(None, 'processingType')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 450, 3)) + symbol = pyxb.binding.content.ElementUse(FlysEye._UseForTag(pyxb.namespace.ExpandedName(None, 'processingType')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 451, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(FlysEye._UseForTag(pyxb.namespace.ExpandedName(None, 'rawSamplingTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 514, 5)) + symbol = pyxb.binding.content.ElementUse(FlysEye._UseForTag(pyxb.namespace.ExpandedName(None, 'rawSamplingTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 515, 5)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(FlysEye._UseForTag(pyxb.namespace.ExpandedName(None, 'timeDownsamplingFactor')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 515, 5)) + symbol = pyxb.binding.content.ElementUse(FlysEye._UseForTag(pyxb.namespace.ExpandedName(None, 'timeDownsamplingFactor')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 516, 5)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(FlysEye._UseForTag(pyxb.namespace.ExpandedName(None, 'samplingTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 516, 5)) + symbol = pyxb.binding.content.ElementUse(FlysEye._UseForTag(pyxb.namespace.ExpandedName(None, 'samplingTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 517, 5)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = set() final_update.add(fac.UpdateInstruction(cc_0, False)) - symbol = pyxb.binding.content.ElementUse(FlysEye._UseForTag(pyxb.namespace.ExpandedName(None, 'stokes')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 517, 5)) + symbol = pyxb.binding.content.ElementUse(FlysEye._UseForTag(pyxb.namespace.ExpandedName(None, 'stokes')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 518, 5)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = set() final_update.add(fac.UpdateInstruction(cc_1, False)) - symbol = pyxb.binding.content.ElementUse(FlysEye._UseForTag(pyxb.namespace.ExpandedName(None, 'channelWidth')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 518, 5)) + symbol = pyxb.binding.content.ElementUse(FlysEye._UseForTag(pyxb.namespace.ExpandedName(None, 'channelWidth')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 519, 5)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = set() final_update.add(fac.UpdateInstruction(cc_2, False)) - symbol = pyxb.binding.content.ElementUse(FlysEye._UseForTag(pyxb.namespace.ExpandedName(None, 'channelsPerSubband')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 519, 5)) + symbol = pyxb.binding.content.ElementUse(FlysEye._UseForTag(pyxb.namespace.ExpandedName(None, 'channelsPerSubband')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 520, 5)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) transitions = [] @@ -7219,9 +7318,9 @@ FlysEye._Automaton = _BuildAutomaton_34() -NonStandard._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelWidth'), Frequency, scope=NonStandard, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 528, 5))) +NonStandard._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelWidth'), Frequency, scope=NonStandard, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 529, 5))) -NonStandard._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), pyxb.binding.datatypes.unsignedShort, scope=NonStandard, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 529, 5))) +NonStandard._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), pyxb.binding.datatypes.unsignedShort, scope=NonStandard, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 530, 5))) def _BuildAutomaton_35 (): # Remove this helper function from the namespace after it is invoked @@ -7232,15 +7331,15 @@ def _BuildAutomaton_35 (): counters = set() states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(NonStandard._UseForTag(pyxb.namespace.ExpandedName(None, 'processingType')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 450, 3)) + symbol = pyxb.binding.content.ElementUse(NonStandard._UseForTag(pyxb.namespace.ExpandedName(None, 'processingType')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 451, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(NonStandard._UseForTag(pyxb.namespace.ExpandedName(None, 'channelWidth')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 528, 5)) + symbol = pyxb.binding.content.ElementUse(NonStandard._UseForTag(pyxb.namespace.ExpandedName(None, 'channelWidth')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 529, 5)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = set() - symbol = pyxb.binding.content.ElementUse(NonStandard._UseForTag(pyxb.namespace.ExpandedName(None, 'channelsPerSubband')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 529, 5)) + symbol = pyxb.binding.content.ElementUse(NonStandard._UseForTag(pyxb.namespace.ExpandedName(None, 'channelsPerSubband')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 530, 5)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) transitions = [] @@ -7259,11 +7358,11 @@ NonStandard._Automaton = _BuildAutomaton_35() -PipelineRun._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'pipelineName'), pyxb.binding.datatypes.string, scope=PipelineRun, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 589, 5))) +PipelineRun._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'pipelineName'), pyxb.binding.datatypes.string, scope=PipelineRun, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 590, 5))) -PipelineRun._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'pipelineVersion'), pyxb.binding.datatypes.string, scope=PipelineRun, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 590, 5))) +PipelineRun._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'pipelineVersion'), pyxb.binding.datatypes.string, scope=PipelineRun, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 591, 5))) -PipelineRun._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'sourceData'), DataSources, scope=PipelineRun, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 591, 5))) +PipelineRun._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'sourceData'), DataSources, scope=PipelineRun, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 592, 5))) def _BuildAutomaton_36 (): # Remove this helper function from the namespace after it is invoked @@ -7272,51 +7371,51 @@ def _BuildAutomaton_36 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) counters.add(cc_0) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(PipelineRun._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 258, 3)) + symbol = pyxb.binding.content.ElementUse(PipelineRun._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 259, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(PipelineRun._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 259, 3)) + symbol = pyxb.binding.content.ElementUse(PipelineRun._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 260, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(PipelineRun._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + symbol = pyxb.binding.content.ElementUse(PipelineRun._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(PipelineRun._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 261, 3)) + symbol = pyxb.binding.content.ElementUse(PipelineRun._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 262, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(PipelineRun._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 262, 3)) + symbol = pyxb.binding.content.ElementUse(PipelineRun._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 263, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(PipelineRun._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 263, 3)) + symbol = pyxb.binding.content.ElementUse(PipelineRun._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 264, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(PipelineRun._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 264, 3)) + symbol = pyxb.binding.content.ElementUse(PipelineRun._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 265, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(PipelineRun._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 265, 3)) + symbol = pyxb.binding.content.ElementUse(PipelineRun._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 266, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = None - symbol = pyxb.binding.content.ElementUse(PipelineRun._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 589, 5)) + symbol = pyxb.binding.content.ElementUse(PipelineRun._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 590, 5)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = None - symbol = pyxb.binding.content.ElementUse(PipelineRun._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineVersion')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 590, 5)) + symbol = pyxb.binding.content.ElementUse(PipelineRun._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineVersion')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 591, 5)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) final_update = set() - symbol = pyxb.binding.content.ElementUse(PipelineRun._UseForTag(pyxb.namespace.ExpandedName(None, 'sourceData')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 591, 5)) + symbol = pyxb.binding.content.ElementUse(PipelineRun._UseForTag(pyxb.namespace.ExpandedName(None, 'sourceData')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 592, 5)) st_10 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_10) transitions = [] @@ -7371,23 +7470,23 @@ PipelineRun._Automaton = _BuildAutomaton_36() -CorrelatedDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'subArrayPointingIdentifier'), IdentifierType, scope=CorrelatedDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 812, 5))) +CorrelatedDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'subArrayPointingIdentifier'), IdentifierType, scope=CorrelatedDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 824, 5))) -CorrelatedDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'subband'), pyxb.binding.datatypes.unsignedShort, scope=CorrelatedDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 813, 5))) +CorrelatedDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'subband'), pyxb.binding.datatypes.unsignedShort, scope=CorrelatedDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 825, 5))) -CorrelatedDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'stationSubband'), pyxb.binding.datatypes.unsignedShort, scope=CorrelatedDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 814, 5))) +CorrelatedDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'stationSubband'), pyxb.binding.datatypes.unsignedShort, scope=CorrelatedDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 826, 5))) -CorrelatedDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'startTime'), pyxb.binding.datatypes.dateTime, scope=CorrelatedDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 815, 5))) +CorrelatedDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'startTime'), pyxb.binding.datatypes.dateTime, scope=CorrelatedDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 827, 5))) -CorrelatedDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'duration'), pyxb.binding.datatypes.duration, scope=CorrelatedDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 816, 5))) +CorrelatedDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'duration'), pyxb.binding.datatypes.duration, scope=CorrelatedDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 828, 5))) -CorrelatedDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'integrationInterval'), Time, scope=CorrelatedDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 817, 5))) +CorrelatedDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'integrationInterval'), Time, scope=CorrelatedDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 829, 5))) -CorrelatedDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'centralFrequency'), Frequency, scope=CorrelatedDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 818, 5))) +CorrelatedDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'centralFrequency'), Frequency, scope=CorrelatedDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 830, 5))) -CorrelatedDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelWidth'), Frequency, scope=CorrelatedDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 819, 5))) +CorrelatedDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelWidth'), Frequency, scope=CorrelatedDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 831, 5))) -CorrelatedDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), pyxb.binding.datatypes.unsignedShort, scope=CorrelatedDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 820, 5))) +CorrelatedDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'channelsPerSubband'), pyxb.binding.datatypes.unsignedShort, scope=CorrelatedDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 832, 5))) def _BuildAutomaton_37 (): # Remove this helper function from the namespace after it is invoked @@ -7396,81 +7495,89 @@ def _BuildAutomaton_37 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3)) counters.add(cc_0) - cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3)) + cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3)) counters.add(cc_1) - cc_2 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 814, 5)) + cc_2 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 826, 5)) counters.add(cc_2) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductType')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 790, 3)) + symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductType')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 800, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 791, 3)) + symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 801, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageTicket')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3)) + symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageTicket')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'size')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 793, 3)) + symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'size')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 803, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'checksum')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3)) + symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'checksum')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 795, 3)) + symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 805, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileFormat')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 796, 3)) + symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileFormat')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 806, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 797, 3)) + symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageWriter')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 807, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = None - symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'subArrayPointingIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 812, 5)) + symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageWriterVersion')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 808, 3)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = None - symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'subband')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 813, 5)) + symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 809, 3)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) final_update = None - symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'stationSubband')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 814, 5)) + symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'subArrayPointingIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 824, 5)) st_10 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_10) final_update = None - symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 815, 5)) + symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'subband')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 825, 5)) st_11 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_11) final_update = None - symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 816, 5)) + symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'stationSubband')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 826, 5)) st_12 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_12) final_update = None - symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'integrationInterval')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 817, 5)) + symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 827, 5)) st_13 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_13) final_update = None - symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'centralFrequency')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 818, 5)) + symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 828, 5)) st_14 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_14) final_update = None - symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'channelWidth')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 819, 5)) + symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'integrationInterval')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 829, 5)) st_15 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_15) - final_update = set() - symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'channelsPerSubband')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 820, 5)) + final_update = None + symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'centralFrequency')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 830, 5)) st_16 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_16) + final_update = None + symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'channelWidth')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 831, 5)) + st_17 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) + states.append(st_17) + final_update = set() + symbol = pyxb.binding.content.ElementUse(CorrelatedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'channelsPerSubband')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 832, 5)) + st_18 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) + states.append(st_18) transitions = [] transitions.append(fac.Transition(st_1, [ ])) @@ -7518,22 +7625,22 @@ def _BuildAutomaton_37 (): transitions = [] transitions.append(fac.Transition(st_10, [ ])) - transitions.append(fac.Transition(st_11, [ - ])) st_9._set_transitionSet(transitions) transitions = [] - transitions.append(fac.Transition(st_10, [ - fac.UpdateInstruction(cc_2, True) ])) transitions.append(fac.Transition(st_11, [ - fac.UpdateInstruction(cc_2, False) ])) + ])) st_10._set_transitionSet(transitions) transitions = [] transitions.append(fac.Transition(st_12, [ ])) + transitions.append(fac.Transition(st_13, [ + ])) st_11._set_transitionSet(transitions) transitions = [] + transitions.append(fac.Transition(st_12, [ + fac.UpdateInstruction(cc_2, True) ])) transitions.append(fac.Transition(st_13, [ - ])) + fac.UpdateInstruction(cc_2, False) ])) st_12._set_transitionSet(transitions) transitions = [] transitions.append(fac.Transition(st_14, [ @@ -7548,7 +7655,15 @@ def _BuildAutomaton_37 (): ])) st_15._set_transitionSet(transitions) transitions = [] + transitions.append(fac.Transition(st_17, [ + ])) st_16._set_transitionSet(transitions) + transitions = [] + transitions.append(fac.Transition(st_18, [ + ])) + st_17._set_transitionSet(transitions) + transitions = [] + st_18._set_transitionSet(transitions) return fac.Automaton(states, counters, False, containing_state=None) CorrelatedDataProduct._Automaton = _BuildAutomaton_37() @@ -7562,43 +7677,51 @@ def _BuildAutomaton_38 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3)) counters.add(cc_0) - cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3)) + cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3)) counters.add(cc_1) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(InstrumentModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductType')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 790, 3)) + symbol = pyxb.binding.content.ElementUse(InstrumentModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductType')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 800, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(InstrumentModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 791, 3)) + symbol = pyxb.binding.content.ElementUse(InstrumentModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 801, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(InstrumentModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageTicket')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3)) + symbol = pyxb.binding.content.ElementUse(InstrumentModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageTicket')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(InstrumentModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'size')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 793, 3)) + symbol = pyxb.binding.content.ElementUse(InstrumentModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'size')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 803, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(InstrumentModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'checksum')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3)) + symbol = pyxb.binding.content.ElementUse(InstrumentModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'checksum')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(InstrumentModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 795, 3)) + symbol = pyxb.binding.content.ElementUse(InstrumentModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 805, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(InstrumentModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileFormat')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 796, 3)) + symbol = pyxb.binding.content.ElementUse(InstrumentModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileFormat')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 806, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) - final_update = set() - symbol = pyxb.binding.content.ElementUse(InstrumentModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 797, 3)) + final_update = None + symbol = pyxb.binding.content.ElementUse(InstrumentModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageWriter')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 807, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) + final_update = None + symbol = pyxb.binding.content.ElementUse(InstrumentModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageWriterVersion')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 808, 3)) + st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) + states.append(st_8) + final_update = set() + symbol = pyxb.binding.content.ElementUse(InstrumentModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 809, 3)) + st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) + states.append(st_9) transitions = [] transitions.append(fac.Transition(st_1, [ ])) @@ -7636,7 +7759,15 @@ def _BuildAutomaton_38 (): ])) st_6._set_transitionSet(transitions) transitions = [] + transitions.append(fac.Transition(st_8, [ + ])) st_7._set_transitionSet(transitions) + transitions = [] + transitions.append(fac.Transition(st_9, [ + ])) + st_8._set_transitionSet(transitions) + transitions = [] + st_9._set_transitionSet(transitions) return fac.Automaton(states, counters, False, containing_state=None) InstrumentModelDataProduct._Automaton = _BuildAutomaton_38() @@ -7650,43 +7781,51 @@ def _BuildAutomaton_39 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3)) counters.add(cc_0) - cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3)) + cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3)) counters.add(cc_1) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(SkyModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductType')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 790, 3)) + symbol = pyxb.binding.content.ElementUse(SkyModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductType')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 800, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(SkyModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 791, 3)) + symbol = pyxb.binding.content.ElementUse(SkyModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 801, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(SkyModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageTicket')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3)) + symbol = pyxb.binding.content.ElementUse(SkyModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageTicket')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(SkyModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'size')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 793, 3)) + symbol = pyxb.binding.content.ElementUse(SkyModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'size')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 803, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(SkyModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'checksum')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3)) + symbol = pyxb.binding.content.ElementUse(SkyModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'checksum')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(SkyModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 795, 3)) + symbol = pyxb.binding.content.ElementUse(SkyModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 805, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(SkyModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileFormat')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 796, 3)) + symbol = pyxb.binding.content.ElementUse(SkyModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileFormat')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 806, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) - final_update = set() - symbol = pyxb.binding.content.ElementUse(SkyModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 797, 3)) + final_update = None + symbol = pyxb.binding.content.ElementUse(SkyModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageWriter')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 807, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) + final_update = None + symbol = pyxb.binding.content.ElementUse(SkyModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageWriterVersion')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 808, 3)) + st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) + states.append(st_8) + final_update = set() + symbol = pyxb.binding.content.ElementUse(SkyModelDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 809, 3)) + st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) + states.append(st_9) transitions = [] transitions.append(fac.Transition(st_1, [ ])) @@ -7724,18 +7863,26 @@ def _BuildAutomaton_39 (): ])) st_6._set_transitionSet(transitions) transitions = [] + transitions.append(fac.Transition(st_8, [ + ])) st_7._set_transitionSet(transitions) + transitions = [] + transitions.append(fac.Transition(st_9, [ + ])) + st_8._set_transitionSet(transitions) + transitions = [] + st_9._set_transitionSet(transitions) return fac.Automaton(states, counters, False, containing_state=None) SkyModelDataProduct._Automaton = _BuildAutomaton_39() -TransientBufferBoardDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfSamples'), pyxb.binding.datatypes.unsignedInt, scope=TransientBufferBoardDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 855, 5))) +TransientBufferBoardDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfSamples'), pyxb.binding.datatypes.unsignedInt, scope=TransientBufferBoardDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 867, 5))) -TransientBufferBoardDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'timeStamp'), pyxb.binding.datatypes.unsignedInt, scope=TransientBufferBoardDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 856, 5))) +TransientBufferBoardDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'timeStamp'), pyxb.binding.datatypes.unsignedInt, scope=TransientBufferBoardDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 868, 5))) -TransientBufferBoardDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'triggerParameters'), TBBTrigger, scope=TransientBufferBoardDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 857, 5))) +TransientBufferBoardDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'triggerParameters'), TBBTrigger, scope=TransientBufferBoardDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 869, 5))) def _BuildAutomaton_40 (): # Remove this helper function from the namespace after it is invoked @@ -7744,55 +7891,63 @@ def _BuildAutomaton_40 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3)) counters.add(cc_0) - cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3)) + cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3)) counters.add(cc_1) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(TransientBufferBoardDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductType')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 790, 3)) + symbol = pyxb.binding.content.ElementUse(TransientBufferBoardDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductType')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 800, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(TransientBufferBoardDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 791, 3)) + symbol = pyxb.binding.content.ElementUse(TransientBufferBoardDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 801, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(TransientBufferBoardDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageTicket')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3)) + symbol = pyxb.binding.content.ElementUse(TransientBufferBoardDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageTicket')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(TransientBufferBoardDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'size')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 793, 3)) + symbol = pyxb.binding.content.ElementUse(TransientBufferBoardDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'size')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 803, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(TransientBufferBoardDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'checksum')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3)) + symbol = pyxb.binding.content.ElementUse(TransientBufferBoardDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'checksum')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(TransientBufferBoardDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 795, 3)) + symbol = pyxb.binding.content.ElementUse(TransientBufferBoardDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 805, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(TransientBufferBoardDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileFormat')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 796, 3)) + symbol = pyxb.binding.content.ElementUse(TransientBufferBoardDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileFormat')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 806, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(TransientBufferBoardDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 797, 3)) + symbol = pyxb.binding.content.ElementUse(TransientBufferBoardDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageWriter')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 807, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = None - symbol = pyxb.binding.content.ElementUse(TransientBufferBoardDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfSamples')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 855, 5)) + symbol = pyxb.binding.content.ElementUse(TransientBufferBoardDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageWriterVersion')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 808, 3)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = None - symbol = pyxb.binding.content.ElementUse(TransientBufferBoardDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'timeStamp')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 856, 5)) + symbol = pyxb.binding.content.ElementUse(TransientBufferBoardDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 809, 3)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) - final_update = set() - symbol = pyxb.binding.content.ElementUse(TransientBufferBoardDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'triggerParameters')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 857, 5)) + final_update = None + symbol = pyxb.binding.content.ElementUse(TransientBufferBoardDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfSamples')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 867, 5)) st_10 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_10) + final_update = None + symbol = pyxb.binding.content.ElementUse(TransientBufferBoardDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'timeStamp')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 868, 5)) + st_11 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) + states.append(st_11) + final_update = set() + symbol = pyxb.binding.content.ElementUse(TransientBufferBoardDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'triggerParameters')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 869, 5)) + st_12 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) + states.append(st_12) transitions = [] transitions.append(fac.Transition(st_1, [ ])) @@ -7842,16 +7997,24 @@ def _BuildAutomaton_40 (): ])) st_9._set_transitionSet(transitions) transitions = [] + transitions.append(fac.Transition(st_11, [ + ])) st_10._set_transitionSet(transitions) + transitions = [] + transitions.append(fac.Transition(st_12, [ + ])) + st_11._set_transitionSet(transitions) + transitions = [] + st_12._set_transitionSet(transitions) return fac.Automaton(states, counters, False, containing_state=None) TransientBufferBoardDataProduct._Automaton = _BuildAutomaton_40() -CoherentStokesBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'pointing'), Pointing, scope=CoherentStokesBeam, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 900, 5))) +CoherentStokesBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'pointing'), Pointing, scope=CoherentStokesBeam, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 912, 5))) -CoherentStokesBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'offset'), Pointing, scope=CoherentStokesBeam, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 901, 5))) +CoherentStokesBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'offset'), Pointing, scope=CoherentStokesBeam, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 913, 5))) def _BuildAutomaton_41 (): # Remove this helper function from the namespace after it is invoked @@ -7860,55 +8023,55 @@ def _BuildAutomaton_41 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=1, max=4, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 888, 3)) + cc_0 = fac.CounterCondition(min=1, max=4, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 900, 3)) counters.add(cc_0) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(CoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'subArrayPointingIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 879, 3)) + symbol = pyxb.binding.content.ElementUse(CoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'subArrayPointingIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 891, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(CoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'beamNumber')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 880, 3)) + symbol = pyxb.binding.content.ElementUse(CoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'beamNumber')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 892, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(CoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'dispersionMeasure')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 881, 3)) + symbol = pyxb.binding.content.ElementUse(CoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'dispersionMeasure')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 893, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(CoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfSubbands')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 882, 3)) + symbol = pyxb.binding.content.ElementUse(CoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfSubbands')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 894, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(CoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'stationSubbands')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 883, 3)) + symbol = pyxb.binding.content.ElementUse(CoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'stationSubbands')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 895, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(CoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'samplingTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 884, 3)) + symbol = pyxb.binding.content.ElementUse(CoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'samplingTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 896, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(CoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'centralFrequencies')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 885, 3)) + symbol = pyxb.binding.content.ElementUse(CoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'centralFrequencies')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 897, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(CoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'channelWidth')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 886, 3)) + symbol = pyxb.binding.content.ElementUse(CoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'channelWidth')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 898, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = None - symbol = pyxb.binding.content.ElementUse(CoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'channelsPerSubband')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 887, 3)) + symbol = pyxb.binding.content.ElementUse(CoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'channelsPerSubband')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 899, 3)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = None - symbol = pyxb.binding.content.ElementUse(CoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'stokes')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 888, 3)) + symbol = pyxb.binding.content.ElementUse(CoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'stokes')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 900, 3)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) final_update = None - symbol = pyxb.binding.content.ElementUse(CoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'pointing')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 900, 5)) + symbol = pyxb.binding.content.ElementUse(CoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'pointing')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 912, 5)) st_10 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_10) final_update = set() - symbol = pyxb.binding.content.ElementUse(CoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'offset')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 901, 5)) + symbol = pyxb.binding.content.ElementUse(CoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'offset')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 913, 5)) st_11 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_11) transitions = [] @@ -7972,48 +8135,48 @@ def _BuildAutomaton_42 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=1, max=4, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 888, 3)) + cc_0 = fac.CounterCondition(min=1, max=4, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 900, 3)) counters.add(cc_0) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(IncoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'subArrayPointingIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 879, 3)) + symbol = pyxb.binding.content.ElementUse(IncoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'subArrayPointingIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 891, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(IncoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'beamNumber')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 880, 3)) + symbol = pyxb.binding.content.ElementUse(IncoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'beamNumber')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 892, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(IncoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'dispersionMeasure')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 881, 3)) + symbol = pyxb.binding.content.ElementUse(IncoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'dispersionMeasure')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 893, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(IncoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfSubbands')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 882, 3)) + symbol = pyxb.binding.content.ElementUse(IncoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfSubbands')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 894, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(IncoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'stationSubbands')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 883, 3)) + symbol = pyxb.binding.content.ElementUse(IncoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'stationSubbands')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 895, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(IncoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'samplingTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 884, 3)) + symbol = pyxb.binding.content.ElementUse(IncoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'samplingTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 896, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(IncoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'centralFrequencies')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 885, 3)) + symbol = pyxb.binding.content.ElementUse(IncoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'centralFrequencies')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 897, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(IncoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'channelWidth')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 886, 3)) + symbol = pyxb.binding.content.ElementUse(IncoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'channelWidth')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 898, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = None - symbol = pyxb.binding.content.ElementUse(IncoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'channelsPerSubband')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 887, 3)) + symbol = pyxb.binding.content.ElementUse(IncoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'channelsPerSubband')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 899, 3)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = set() final_update.add(fac.UpdateInstruction(cc_0, False)) - symbol = pyxb.binding.content.ElementUse(IncoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'stokes')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 888, 3)) + symbol = pyxb.binding.content.ElementUse(IncoherentStokesBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'stokes')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 900, 3)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) transitions = [] @@ -8062,7 +8225,7 @@ IncoherentStokesBeam._Automaton = _BuildAutomaton_42() -FlysEyeBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'station'), Station, scope=FlysEyeBeam, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 917, 5))) +FlysEyeBeam._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'station'), Station, scope=FlysEyeBeam, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 929, 5))) def _BuildAutomaton_43 (): # Remove this helper function from the namespace after it is invoked @@ -8071,51 +8234,51 @@ def _BuildAutomaton_43 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=1, max=4, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 888, 3)) + cc_0 = fac.CounterCondition(min=1, max=4, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 900, 3)) counters.add(cc_0) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(FlysEyeBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'subArrayPointingIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 879, 3)) + symbol = pyxb.binding.content.ElementUse(FlysEyeBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'subArrayPointingIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 891, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(FlysEyeBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'beamNumber')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 880, 3)) + symbol = pyxb.binding.content.ElementUse(FlysEyeBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'beamNumber')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 892, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(FlysEyeBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'dispersionMeasure')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 881, 3)) + symbol = pyxb.binding.content.ElementUse(FlysEyeBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'dispersionMeasure')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 893, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(FlysEyeBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfSubbands')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 882, 3)) + symbol = pyxb.binding.content.ElementUse(FlysEyeBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfSubbands')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 894, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(FlysEyeBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'stationSubbands')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 883, 3)) + symbol = pyxb.binding.content.ElementUse(FlysEyeBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'stationSubbands')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 895, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(FlysEyeBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'samplingTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 884, 3)) + symbol = pyxb.binding.content.ElementUse(FlysEyeBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'samplingTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 896, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(FlysEyeBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'centralFrequencies')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 885, 3)) + symbol = pyxb.binding.content.ElementUse(FlysEyeBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'centralFrequencies')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 897, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(FlysEyeBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'channelWidth')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 886, 3)) + symbol = pyxb.binding.content.ElementUse(FlysEyeBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'channelWidth')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 898, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = None - symbol = pyxb.binding.content.ElementUse(FlysEyeBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'channelsPerSubband')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 887, 3)) + symbol = pyxb.binding.content.ElementUse(FlysEyeBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'channelsPerSubband')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 899, 3)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = None - symbol = pyxb.binding.content.ElementUse(FlysEyeBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'stokes')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 888, 3)) + symbol = pyxb.binding.content.ElementUse(FlysEyeBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'stokes')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 900, 3)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) final_update = set() - symbol = pyxb.binding.content.ElementUse(FlysEyeBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'station')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 917, 5)) + symbol = pyxb.binding.content.ElementUse(FlysEyeBeam._UseForTag(pyxb.namespace.ExpandedName(None, 'station')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 929, 5)) st_10 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_10) transitions = [] @@ -8168,9 +8331,9 @@ FlysEyeBeam._Automaton = _BuildAutomaton_43() -BeamFormedDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfBeams'), pyxb.binding.datatypes.unsignedShort, scope=BeamFormedDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 926, 5))) +BeamFormedDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfBeams'), pyxb.binding.datatypes.unsignedShort, scope=BeamFormedDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 938, 5))) -BeamFormedDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'beams'), ArrayBeams, scope=BeamFormedDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 927, 5))) +BeamFormedDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'beams'), ArrayBeams, scope=BeamFormedDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 939, 5))) def _BuildAutomaton_44 (): # Remove this helper function from the namespace after it is invoked @@ -8179,54 +8342,62 @@ def _BuildAutomaton_44 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3)) counters.add(cc_0) - cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3)) + cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3)) counters.add(cc_1) - cc_2 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 927, 5)) + cc_2 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 939, 5)) counters.add(cc_2) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(BeamFormedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductType')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 790, 3)) + symbol = pyxb.binding.content.ElementUse(BeamFormedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductType')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 800, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(BeamFormedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 791, 3)) + symbol = pyxb.binding.content.ElementUse(BeamFormedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 801, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(BeamFormedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageTicket')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3)) + symbol = pyxb.binding.content.ElementUse(BeamFormedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageTicket')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(BeamFormedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'size')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 793, 3)) + symbol = pyxb.binding.content.ElementUse(BeamFormedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'size')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 803, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(BeamFormedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'checksum')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3)) + symbol = pyxb.binding.content.ElementUse(BeamFormedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'checksum')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(BeamFormedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 795, 3)) + symbol = pyxb.binding.content.ElementUse(BeamFormedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 805, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(BeamFormedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileFormat')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 796, 3)) + symbol = pyxb.binding.content.ElementUse(BeamFormedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileFormat')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 806, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(BeamFormedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 797, 3)) + symbol = pyxb.binding.content.ElementUse(BeamFormedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageWriter')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 807, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) - final_update = set() - symbol = pyxb.binding.content.ElementUse(BeamFormedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfBeams')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 926, 5)) + final_update = None + symbol = pyxb.binding.content.ElementUse(BeamFormedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageWriterVersion')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 808, 3)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) - final_update = set() - final_update.add(fac.UpdateInstruction(cc_2, False)) - symbol = pyxb.binding.content.ElementUse(BeamFormedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'beams')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 927, 5)) + final_update = None + symbol = pyxb.binding.content.ElementUse(BeamFormedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 809, 3)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) + final_update = set() + symbol = pyxb.binding.content.ElementUse(BeamFormedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfBeams')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 938, 5)) + st_10 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) + states.append(st_10) + final_update = set() + final_update.add(fac.UpdateInstruction(cc_2, False)) + symbol = pyxb.binding.content.ElementUse(BeamFormedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'beams')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 939, 5)) + st_11 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) + states.append(st_11) transitions = [] transitions.append(fac.Transition(st_1, [ ])) @@ -8272,18 +8443,26 @@ def _BuildAutomaton_44 (): ])) st_8._set_transitionSet(transitions) transitions = [] - transitions.append(fac.Transition(st_9, [ - fac.UpdateInstruction(cc_2, True) ])) + transitions.append(fac.Transition(st_10, [ + ])) st_9._set_transitionSet(transitions) + transitions = [] + transitions.append(fac.Transition(st_11, [ + ])) + st_10._set_transitionSet(transitions) + transitions = [] + transitions.append(fac.Transition(st_11, [ + fac.UpdateInstruction(cc_2, True) ])) + st_11._set_transitionSet(transitions) return fac.Automaton(states, counters, False, containing_state=None) BeamFormedDataProduct._Automaton = _BuildAutomaton_44() -PulpSummaryDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'fileContent'), ListOfString, scope=PulpSummaryDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 953, 5))) +PulpSummaryDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'fileContent'), ListOfString, scope=PulpSummaryDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 965, 5))) -PulpSummaryDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'dataType'), PulsarPipelineDataType, scope=PulpSummaryDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 954, 5))) +PulpSummaryDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'dataType'), PulsarPipelineDataType, scope=PulpSummaryDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 966, 5))) def _BuildAutomaton_45 (): # Remove this helper function from the namespace after it is invoked @@ -8292,51 +8471,59 @@ def _BuildAutomaton_45 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3)) counters.add(cc_0) - cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3)) + cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3)) counters.add(cc_1) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(PulpSummaryDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductType')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 790, 3)) + symbol = pyxb.binding.content.ElementUse(PulpSummaryDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductType')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 800, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(PulpSummaryDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 791, 3)) + symbol = pyxb.binding.content.ElementUse(PulpSummaryDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 801, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(PulpSummaryDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageTicket')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3)) + symbol = pyxb.binding.content.ElementUse(PulpSummaryDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageTicket')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(PulpSummaryDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'size')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 793, 3)) + symbol = pyxb.binding.content.ElementUse(PulpSummaryDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'size')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 803, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(PulpSummaryDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'checksum')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3)) + symbol = pyxb.binding.content.ElementUse(PulpSummaryDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'checksum')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(PulpSummaryDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 795, 3)) + symbol = pyxb.binding.content.ElementUse(PulpSummaryDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 805, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(PulpSummaryDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileFormat')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 796, 3)) + symbol = pyxb.binding.content.ElementUse(PulpSummaryDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileFormat')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 806, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(PulpSummaryDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 797, 3)) + symbol = pyxb.binding.content.ElementUse(PulpSummaryDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageWriter')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 807, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = None - symbol = pyxb.binding.content.ElementUse(PulpSummaryDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileContent')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 953, 5)) + symbol = pyxb.binding.content.ElementUse(PulpSummaryDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageWriterVersion')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 808, 3)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) - final_update = set() - symbol = pyxb.binding.content.ElementUse(PulpSummaryDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataType')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 954, 5)) + final_update = None + symbol = pyxb.binding.content.ElementUse(PulpSummaryDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 809, 3)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) + final_update = None + symbol = pyxb.binding.content.ElementUse(PulpSummaryDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileContent')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 965, 5)) + st_10 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) + states.append(st_10) + final_update = set() + symbol = pyxb.binding.content.ElementUse(PulpSummaryDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataType')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 966, 5)) + st_11 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) + states.append(st_11) transitions = [] transitions.append(fac.Transition(st_1, [ ])) @@ -8382,18 +8569,26 @@ def _BuildAutomaton_45 (): ])) st_8._set_transitionSet(transitions) transitions = [] + transitions.append(fac.Transition(st_10, [ + ])) st_9._set_transitionSet(transitions) + transitions = [] + transitions.append(fac.Transition(st_11, [ + ])) + st_10._set_transitionSet(transitions) + transitions = [] + st_11._set_transitionSet(transitions) return fac.Automaton(states, counters, False, containing_state=None) PulpSummaryDataProduct._Automaton = _BuildAutomaton_45() -PulpDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'fileContent'), ListOfString, scope=PulpDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 963, 5))) +PulpDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'fileContent'), ListOfString, scope=PulpDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 975, 5))) -PulpDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'dataType'), PulsarPipelineDataType, scope=PulpDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 964, 5))) +PulpDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'dataType'), PulsarPipelineDataType, scope=PulpDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 976, 5))) -PulpDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'arrayBeam'), ArrayBeam, scope=PulpDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 965, 5))) +PulpDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'arrayBeam'), ArrayBeam, scope=PulpDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 977, 5))) def _BuildAutomaton_46 (): # Remove this helper function from the namespace after it is invoked @@ -8402,55 +8597,63 @@ def _BuildAutomaton_46 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3)) counters.add(cc_0) - cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3)) + cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3)) counters.add(cc_1) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(PulpDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductType')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 790, 3)) + symbol = pyxb.binding.content.ElementUse(PulpDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductType')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 800, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(PulpDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 791, 3)) + symbol = pyxb.binding.content.ElementUse(PulpDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 801, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(PulpDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageTicket')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3)) + symbol = pyxb.binding.content.ElementUse(PulpDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageTicket')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(PulpDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'size')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 793, 3)) + symbol = pyxb.binding.content.ElementUse(PulpDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'size')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 803, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(PulpDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'checksum')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3)) + symbol = pyxb.binding.content.ElementUse(PulpDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'checksum')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(PulpDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 795, 3)) + symbol = pyxb.binding.content.ElementUse(PulpDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 805, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(PulpDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileFormat')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 796, 3)) + symbol = pyxb.binding.content.ElementUse(PulpDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileFormat')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 806, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(PulpDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 797, 3)) + symbol = pyxb.binding.content.ElementUse(PulpDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageWriter')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 807, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = None - symbol = pyxb.binding.content.ElementUse(PulpDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileContent')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 963, 5)) + symbol = pyxb.binding.content.ElementUse(PulpDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageWriterVersion')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 808, 3)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = None - symbol = pyxb.binding.content.ElementUse(PulpDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataType')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 964, 5)) + symbol = pyxb.binding.content.ElementUse(PulpDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 809, 3)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) - final_update = set() - symbol = pyxb.binding.content.ElementUse(PulpDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'arrayBeam')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 965, 5)) + final_update = None + symbol = pyxb.binding.content.ElementUse(PulpDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileContent')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 975, 5)) st_10 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_10) + final_update = None + symbol = pyxb.binding.content.ElementUse(PulpDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataType')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 976, 5)) + st_11 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) + states.append(st_11) + final_update = set() + symbol = pyxb.binding.content.ElementUse(PulpDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'arrayBeam')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 977, 5)) + st_12 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) + states.append(st_12) transitions = [] transitions.append(fac.Transition(st_1, [ ])) @@ -8500,7 +8703,15 @@ def _BuildAutomaton_46 (): ])) st_9._set_transitionSet(transitions) transitions = [] + transitions.append(fac.Transition(st_11, [ + ])) st_10._set_transitionSet(transitions) + transitions = [] + transitions.append(fac.Transition(st_12, [ + ])) + st_11._set_transitionSet(transitions) + transitions = [] + st_12._set_transitionSet(transitions) return fac.Automaton(states, counters, False, containing_state=None) PulpDataProduct._Automaton = _BuildAutomaton_46() @@ -8514,43 +8725,51 @@ def _BuildAutomaton_47 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3)) counters.add(cc_0) - cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3)) + cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3)) counters.add(cc_1) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(GenericDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductType')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 790, 3)) + symbol = pyxb.binding.content.ElementUse(GenericDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductType')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 800, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(GenericDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 791, 3)) + symbol = pyxb.binding.content.ElementUse(GenericDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 801, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(GenericDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageTicket')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3)) + symbol = pyxb.binding.content.ElementUse(GenericDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageTicket')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(GenericDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'size')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 793, 3)) + symbol = pyxb.binding.content.ElementUse(GenericDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'size')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 803, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(GenericDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'checksum')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3)) + symbol = pyxb.binding.content.ElementUse(GenericDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'checksum')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(GenericDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 795, 3)) + symbol = pyxb.binding.content.ElementUse(GenericDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 805, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(GenericDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileFormat')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 796, 3)) + symbol = pyxb.binding.content.ElementUse(GenericDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileFormat')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 806, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) - final_update = set() - symbol = pyxb.binding.content.ElementUse(GenericDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 797, 3)) + final_update = None + symbol = pyxb.binding.content.ElementUse(GenericDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageWriter')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 807, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) + final_update = None + symbol = pyxb.binding.content.ElementUse(GenericDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageWriterVersion')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 808, 3)) + st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) + states.append(st_8) + final_update = set() + symbol = pyxb.binding.content.ElementUse(GenericDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 809, 3)) + st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) + states.append(st_9) transitions = [] transitions.append(fac.Transition(st_1, [ ])) @@ -8588,7 +8807,15 @@ def _BuildAutomaton_47 (): ])) st_6._set_transitionSet(transitions) transitions = [] + transitions.append(fac.Transition(st_8, [ + ])) st_7._set_transitionSet(transitions) + transitions = [] + transitions.append(fac.Transition(st_9, [ + ])) + st_8._set_transitionSet(transitions) + transitions = [] + st_9._set_transitionSet(transitions) return fac.Automaton(states, counters, False, containing_state=None) GenericDataProduct._Automaton = _BuildAutomaton_47() @@ -8602,43 +8829,51 @@ def _BuildAutomaton_48 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3)) counters.add(cc_0) - cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3)) + cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3)) counters.add(cc_1) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(UnspecifiedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductType')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 790, 3)) + symbol = pyxb.binding.content.ElementUse(UnspecifiedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductType')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 800, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(UnspecifiedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 791, 3)) + symbol = pyxb.binding.content.ElementUse(UnspecifiedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 801, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(UnspecifiedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageTicket')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3)) + symbol = pyxb.binding.content.ElementUse(UnspecifiedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageTicket')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(UnspecifiedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'size')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 793, 3)) + symbol = pyxb.binding.content.ElementUse(UnspecifiedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'size')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 803, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(UnspecifiedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'checksum')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3)) + symbol = pyxb.binding.content.ElementUse(UnspecifiedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'checksum')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(UnspecifiedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 795, 3)) + symbol = pyxb.binding.content.ElementUse(UnspecifiedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 805, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(UnspecifiedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileFormat')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 796, 3)) + symbol = pyxb.binding.content.ElementUse(UnspecifiedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileFormat')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 806, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) - final_update = set() - symbol = pyxb.binding.content.ElementUse(UnspecifiedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 797, 3)) + final_update = None + symbol = pyxb.binding.content.ElementUse(UnspecifiedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageWriter')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 807, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) + final_update = None + symbol = pyxb.binding.content.ElementUse(UnspecifiedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageWriterVersion')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 808, 3)) + st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) + states.append(st_8) + final_update = set() + symbol = pyxb.binding.content.ElementUse(UnspecifiedDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 809, 3)) + st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) + states.append(st_9) transitions = [] transitions.append(fac.Transition(st_1, [ ])) @@ -8676,18 +8911,26 @@ def _BuildAutomaton_48 (): ])) st_6._set_transitionSet(transitions) transitions = [] + transitions.append(fac.Transition(st_8, [ + ])) st_7._set_transitionSet(transitions) + transitions = [] + transitions.append(fac.Transition(st_9, [ + ])) + st_8._set_transitionSet(transitions) + transitions = [] + st_9._set_transitionSet(transitions) return fac.Automaton(states, counters, False, containing_state=None) UnspecifiedDataProduct._Automaton = _BuildAutomaton_48() -LinearAxis._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'increment'), pyxb.binding.datatypes.double, scope=LinearAxis, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1006, 5))) +LinearAxis._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'increment'), pyxb.binding.datatypes.double, scope=LinearAxis, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1018, 5))) -LinearAxis._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'referencePixel'), pyxb.binding.datatypes.double, scope=LinearAxis, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1007, 5))) +LinearAxis._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'referencePixel'), pyxb.binding.datatypes.double, scope=LinearAxis, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1019, 5))) -LinearAxis._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'referenceValue'), pyxb.binding.datatypes.double, scope=LinearAxis, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1008, 5))) +LinearAxis._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'referenceValue'), pyxb.binding.datatypes.double, scope=LinearAxis, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1020, 5))) def _BuildAutomaton_49 (): # Remove this helper function from the namespace after it is invoked @@ -8698,31 +8941,31 @@ def _BuildAutomaton_49 (): counters = set() states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(LinearAxis._UseForTag(pyxb.namespace.ExpandedName(None, 'number')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 996, 3)) + symbol = pyxb.binding.content.ElementUse(LinearAxis._UseForTag(pyxb.namespace.ExpandedName(None, 'number')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1008, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(LinearAxis._UseForTag(pyxb.namespace.ExpandedName(None, 'name')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 997, 3)) + symbol = pyxb.binding.content.ElementUse(LinearAxis._UseForTag(pyxb.namespace.ExpandedName(None, 'name')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1009, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(LinearAxis._UseForTag(pyxb.namespace.ExpandedName(None, 'units')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 998, 3)) + symbol = pyxb.binding.content.ElementUse(LinearAxis._UseForTag(pyxb.namespace.ExpandedName(None, 'units')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1010, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(LinearAxis._UseForTag(pyxb.namespace.ExpandedName(None, 'length')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 999, 3)) + symbol = pyxb.binding.content.ElementUse(LinearAxis._UseForTag(pyxb.namespace.ExpandedName(None, 'length')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1011, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(LinearAxis._UseForTag(pyxb.namespace.ExpandedName(None, 'increment')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1006, 5)) + symbol = pyxb.binding.content.ElementUse(LinearAxis._UseForTag(pyxb.namespace.ExpandedName(None, 'increment')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1018, 5)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(LinearAxis._UseForTag(pyxb.namespace.ExpandedName(None, 'referencePixel')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1007, 5)) + symbol = pyxb.binding.content.ElementUse(LinearAxis._UseForTag(pyxb.namespace.ExpandedName(None, 'referencePixel')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1019, 5)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = set() - symbol = pyxb.binding.content.ElementUse(LinearAxis._UseForTag(pyxb.namespace.ExpandedName(None, 'referenceValue')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1008, 5)) + symbol = pyxb.binding.content.ElementUse(LinearAxis._UseForTag(pyxb.namespace.ExpandedName(None, 'referenceValue')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1020, 5)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) transitions = [] @@ -8766,19 +9009,19 @@ def _BuildAutomaton_50 (): counters = set() states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(TabularAxis._UseForTag(pyxb.namespace.ExpandedName(None, 'number')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 996, 3)) + symbol = pyxb.binding.content.ElementUse(TabularAxis._UseForTag(pyxb.namespace.ExpandedName(None, 'number')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1008, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(TabularAxis._UseForTag(pyxb.namespace.ExpandedName(None, 'name')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 997, 3)) + symbol = pyxb.binding.content.ElementUse(TabularAxis._UseForTag(pyxb.namespace.ExpandedName(None, 'name')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1009, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(TabularAxis._UseForTag(pyxb.namespace.ExpandedName(None, 'units')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 998, 3)) + symbol = pyxb.binding.content.ElementUse(TabularAxis._UseForTag(pyxb.namespace.ExpandedName(None, 'units')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1010, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = set() - symbol = pyxb.binding.content.ElementUse(TabularAxis._UseForTag(pyxb.namespace.ExpandedName(None, 'length')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 999, 3)) + symbol = pyxb.binding.content.ElementUse(TabularAxis._UseForTag(pyxb.namespace.ExpandedName(None, 'length')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1011, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) transitions = [] @@ -8801,27 +9044,27 @@ TabularAxis._Automaton = _BuildAutomaton_50() -DirectionCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'directionLinearAxis'), LinearAxis, scope=DirectionCoordinate, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1052, 5))) +DirectionCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'directionLinearAxis'), LinearAxis, scope=DirectionCoordinate, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1064, 5))) -DirectionCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'PC0_0'), pyxb.binding.datatypes.double, scope=DirectionCoordinate, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1053, 5))) +DirectionCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'PC0_0'), pyxb.binding.datatypes.double, scope=DirectionCoordinate, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1065, 5))) -DirectionCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'PC0_1'), pyxb.binding.datatypes.double, scope=DirectionCoordinate, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1054, 5))) +DirectionCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'PC0_1'), pyxb.binding.datatypes.double, scope=DirectionCoordinate, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1066, 5))) -DirectionCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'PC1_0'), pyxb.binding.datatypes.double, scope=DirectionCoordinate, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1055, 5))) +DirectionCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'PC1_0'), pyxb.binding.datatypes.double, scope=DirectionCoordinate, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1067, 5))) -DirectionCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'PC1_1'), pyxb.binding.datatypes.double, scope=DirectionCoordinate, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1056, 5))) +DirectionCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'PC1_1'), pyxb.binding.datatypes.double, scope=DirectionCoordinate, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1068, 5))) -DirectionCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'equinox'), pyxb.binding.datatypes.string, scope=DirectionCoordinate, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1057, 5))) +DirectionCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'equinox'), pyxb.binding.datatypes.string, scope=DirectionCoordinate, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1069, 5))) -DirectionCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'raDecSystem'), RaDecSystem, scope=DirectionCoordinate, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1058, 5))) +DirectionCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'raDecSystem'), RaDecSystem, scope=DirectionCoordinate, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1070, 5))) -DirectionCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'projection'), pyxb.binding.datatypes.string, scope=DirectionCoordinate, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1059, 5))) +DirectionCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'projection'), pyxb.binding.datatypes.string, scope=DirectionCoordinate, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1071, 5))) -DirectionCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'projectionParameters'), ListOfDouble, scope=DirectionCoordinate, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1060, 5))) +DirectionCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'projectionParameters'), ListOfDouble, scope=DirectionCoordinate, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1072, 5))) -DirectionCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'longitudePole'), Angle, scope=DirectionCoordinate, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1061, 5))) +DirectionCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'longitudePole'), Angle, scope=DirectionCoordinate, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1073, 5))) -DirectionCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'latitudePole'), Angle, scope=DirectionCoordinate, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1062, 5))) +DirectionCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'latitudePole'), Angle, scope=DirectionCoordinate, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1074, 5))) def _BuildAutomaton_51 (): # Remove this helper function from the namespace after it is invoked @@ -8830,51 +9073,51 @@ def _BuildAutomaton_51 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=2, max=2, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1052, 5)) + cc_0 = fac.CounterCondition(min=2, max=2, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1064, 5)) counters.add(cc_0) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(DirectionCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'directionLinearAxis')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1052, 5)) + symbol = pyxb.binding.content.ElementUse(DirectionCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'directionLinearAxis')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1064, 5)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(DirectionCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'PC0_0')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1053, 5)) + symbol = pyxb.binding.content.ElementUse(DirectionCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'PC0_0')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1065, 5)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(DirectionCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'PC0_1')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1054, 5)) + symbol = pyxb.binding.content.ElementUse(DirectionCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'PC0_1')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1066, 5)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(DirectionCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'PC1_0')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1055, 5)) + symbol = pyxb.binding.content.ElementUse(DirectionCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'PC1_0')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1067, 5)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(DirectionCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'PC1_1')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1056, 5)) + symbol = pyxb.binding.content.ElementUse(DirectionCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'PC1_1')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1068, 5)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(DirectionCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'equinox')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1057, 5)) + symbol = pyxb.binding.content.ElementUse(DirectionCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'equinox')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1069, 5)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(DirectionCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'raDecSystem')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1058, 5)) + symbol = pyxb.binding.content.ElementUse(DirectionCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'raDecSystem')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1070, 5)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(DirectionCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'projection')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1059, 5)) + symbol = pyxb.binding.content.ElementUse(DirectionCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'projection')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1071, 5)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = None - symbol = pyxb.binding.content.ElementUse(DirectionCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'projectionParameters')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1060, 5)) + symbol = pyxb.binding.content.ElementUse(DirectionCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'projectionParameters')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1072, 5)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = None - symbol = pyxb.binding.content.ElementUse(DirectionCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'longitudePole')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1061, 5)) + symbol = pyxb.binding.content.ElementUse(DirectionCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'longitudePole')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1073, 5)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) final_update = set() - symbol = pyxb.binding.content.ElementUse(DirectionCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'latitudePole')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1062, 5)) + symbol = pyxb.binding.content.ElementUse(DirectionCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'latitudePole')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1074, 5)) st_10 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_10) transitions = [] @@ -8927,11 +9170,11 @@ DirectionCoordinate._Automaton = _BuildAutomaton_51() -SpectralCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'spectralLinearAxis'), LinearAxis, scope=SpectralCoordinate, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1092, 6))) +SpectralCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'spectralLinearAxis'), LinearAxis, scope=SpectralCoordinate, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1104, 6))) -SpectralCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'spectralTabularAxis'), TabularAxis, scope=SpectralCoordinate, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1093, 6))) +SpectralCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'spectralTabularAxis'), TabularAxis, scope=SpectralCoordinate, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1105, 6))) -SpectralCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'spectralQuantity'), SpectralQuantity, scope=SpectralCoordinate, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1095, 5))) +SpectralCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'spectralQuantity'), SpectralQuantity, scope=SpectralCoordinate, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1107, 5))) def _BuildAutomaton_52 (): # Remove this helper function from the namespace after it is invoked @@ -8942,15 +9185,15 @@ def _BuildAutomaton_52 (): counters = set() states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(SpectralCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'spectralLinearAxis')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1092, 6)) + symbol = pyxb.binding.content.ElementUse(SpectralCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'spectralLinearAxis')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1104, 6)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(SpectralCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'spectralTabularAxis')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1093, 6)) + symbol = pyxb.binding.content.ElementUse(SpectralCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'spectralTabularAxis')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1105, 6)) st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = set() - symbol = pyxb.binding.content.ElementUse(SpectralCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'spectralQuantity')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1095, 5)) + symbol = pyxb.binding.content.ElementUse(SpectralCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'spectralQuantity')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1107, 5)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) transitions = [] @@ -8969,11 +9212,11 @@ SpectralCoordinate._Automaton = _BuildAutomaton_52() -TimeCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'timeLinearAxis'), LinearAxis, scope=TimeCoordinate, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1105, 6))) +TimeCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'timeLinearAxis'), LinearAxis, scope=TimeCoordinate, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1117, 6))) -TimeCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'timeTabularAxis'), TabularAxis, scope=TimeCoordinate, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1106, 6))) +TimeCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'timeTabularAxis'), TabularAxis, scope=TimeCoordinate, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1118, 6))) -TimeCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'equinox'), EquinoxType, scope=TimeCoordinate, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1108, 5))) +TimeCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'equinox'), EquinoxType, scope=TimeCoordinate, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1120, 5))) def _BuildAutomaton_53 (): # Remove this helper function from the namespace after it is invoked @@ -8984,15 +9227,15 @@ def _BuildAutomaton_53 (): counters = set() states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(TimeCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'timeLinearAxis')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1105, 6)) + symbol = pyxb.binding.content.ElementUse(TimeCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'timeLinearAxis')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1117, 6)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(TimeCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'timeTabularAxis')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1106, 6)) + symbol = pyxb.binding.content.ElementUse(TimeCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'timeTabularAxis')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1118, 6)) st_1 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = set() - symbol = pyxb.binding.content.ElementUse(TimeCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'equinox')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1108, 5)) + symbol = pyxb.binding.content.ElementUse(TimeCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'equinox')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1120, 5)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) transitions = [] @@ -9011,9 +9254,9 @@ TimeCoordinate._Automaton = _BuildAutomaton_53() -PolarizationCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'polarizationTabularAxis'), TabularAxis, scope=PolarizationCoordinate, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1117, 5))) +PolarizationCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'polarizationTabularAxis'), TabularAxis, scope=PolarizationCoordinate, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1129, 5))) -PolarizationCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'polarization'), PolarizationType, scope=PolarizationCoordinate, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1118, 5))) +PolarizationCoordinate._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'polarization'), PolarizationType, scope=PolarizationCoordinate, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1130, 5))) def _BuildAutomaton_54 (): # Remove this helper function from the namespace after it is invoked @@ -9022,16 +9265,16 @@ def _BuildAutomaton_54 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=1, max=4, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1118, 5)) + cc_0 = fac.CounterCondition(min=1, max=4, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1130, 5)) counters.add(cc_0) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(PolarizationCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'polarizationTabularAxis')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1117, 5)) + symbol = pyxb.binding.content.ElementUse(PolarizationCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'polarizationTabularAxis')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1129, 5)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = set() final_update.add(fac.UpdateInstruction(cc_0, False)) - symbol = pyxb.binding.content.ElementUse(PolarizationCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'polarization')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1118, 5)) + symbol = pyxb.binding.content.ElementUse(PolarizationCoordinate._UseForTag(pyxb.namespace.ExpandedName(None, 'polarization')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1130, 5)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) transitions = [] @@ -9048,11 +9291,11 @@ PolarizationCoordinate._Automaton = _BuildAutomaton_54() -PixelMapDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfAxes'), pyxb.binding.datatypes.unsignedShort, scope=PixelMapDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1132, 5))) +PixelMapDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfAxes'), pyxb.binding.datatypes.unsignedShort, scope=PixelMapDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1144, 5))) -PixelMapDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfCoordinates'), pyxb.binding.datatypes.unsignedShort, scope=PixelMapDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1133, 5))) +PixelMapDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfCoordinates'), pyxb.binding.datatypes.unsignedShort, scope=PixelMapDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1145, 5))) -PixelMapDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'coordinate'), Coordinate, scope=PixelMapDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1134, 5))) +PixelMapDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'coordinate'), Coordinate, scope=PixelMapDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1146, 5))) def _BuildAutomaton_55 (): # Remove this helper function from the namespace after it is invoked @@ -9061,58 +9304,66 @@ def _BuildAutomaton_55 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3)) counters.add(cc_0) - cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3)) + cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3)) counters.add(cc_1) - cc_2 = fac.CounterCondition(min=1, max=999, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1134, 5)) + cc_2 = fac.CounterCondition(min=1, max=999, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1146, 5)) counters.add(cc_2) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(PixelMapDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductType')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 790, 3)) + symbol = pyxb.binding.content.ElementUse(PixelMapDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductType')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 800, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(PixelMapDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 791, 3)) + symbol = pyxb.binding.content.ElementUse(PixelMapDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 801, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(PixelMapDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageTicket')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3)) + symbol = pyxb.binding.content.ElementUse(PixelMapDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageTicket')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(PixelMapDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'size')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 793, 3)) + symbol = pyxb.binding.content.ElementUse(PixelMapDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'size')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 803, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(PixelMapDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'checksum')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3)) + symbol = pyxb.binding.content.ElementUse(PixelMapDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'checksum')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(PixelMapDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 795, 3)) + symbol = pyxb.binding.content.ElementUse(PixelMapDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 805, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(PixelMapDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileFormat')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 796, 3)) + symbol = pyxb.binding.content.ElementUse(PixelMapDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileFormat')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 806, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(PixelMapDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 797, 3)) + symbol = pyxb.binding.content.ElementUse(PixelMapDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageWriter')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 807, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = None - symbol = pyxb.binding.content.ElementUse(PixelMapDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfAxes')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1132, 5)) + symbol = pyxb.binding.content.ElementUse(PixelMapDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageWriterVersion')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 808, 3)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = None - symbol = pyxb.binding.content.ElementUse(PixelMapDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfCoordinates')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1133, 5)) + symbol = pyxb.binding.content.ElementUse(PixelMapDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 809, 3)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) - final_update = set() - final_update.add(fac.UpdateInstruction(cc_2, False)) - symbol = pyxb.binding.content.ElementUse(PixelMapDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'coordinate')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1134, 5)) + final_update = None + symbol = pyxb.binding.content.ElementUse(PixelMapDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfAxes')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1144, 5)) st_10 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_10) + final_update = None + symbol = pyxb.binding.content.ElementUse(PixelMapDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfCoordinates')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1145, 5)) + st_11 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) + states.append(st_11) + final_update = set() + final_update.add(fac.UpdateInstruction(cc_2, False)) + symbol = pyxb.binding.content.ElementUse(PixelMapDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'coordinate')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1146, 5)) + st_12 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) + states.append(st_12) transitions = [] transitions.append(fac.Transition(st_1, [ ])) @@ -9162,32 +9413,40 @@ def _BuildAutomaton_55 (): ])) st_9._set_transitionSet(transitions) transitions = [] - transitions.append(fac.Transition(st_10, [ - fac.UpdateInstruction(cc_2, True) ])) + transitions.append(fac.Transition(st_11, [ + ])) st_10._set_transitionSet(transitions) + transitions = [] + transitions.append(fac.Transition(st_12, [ + ])) + st_11._set_transitionSet(transitions) + transitions = [] + transitions.append(fac.Transition(st_12, [ + fac.UpdateInstruction(cc_2, True) ])) + st_12._set_transitionSet(transitions) return fac.Automaton(states, counters, False, containing_state=None) PixelMapDataProduct._Automaton = _BuildAutomaton_55() -ImagingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'frequencyIntegrationStep'), pyxb.binding.datatypes.unsignedShort, scope=ImagingPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 603, 5))) +ImagingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'frequencyIntegrationStep'), pyxb.binding.datatypes.unsignedShort, scope=ImagingPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 604, 5))) -ImagingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'timeIntegrationStep'), pyxb.binding.datatypes.unsignedShort, scope=ImagingPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 604, 5))) +ImagingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'timeIntegrationStep'), pyxb.binding.datatypes.unsignedShort, scope=ImagingPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 605, 5))) -ImagingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'skyModelDatabase'), pyxb.binding.datatypes.string, scope=ImagingPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 605, 5))) +ImagingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'skyModelDatabase'), pyxb.binding.datatypes.string, scope=ImagingPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 606, 5))) -ImagingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'demixing'), pyxb.binding.datatypes.boolean, scope=ImagingPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 606, 5))) +ImagingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'demixing'), pyxb.binding.datatypes.boolean, scope=ImagingPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 607, 5))) -ImagingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'imagerIntegrationTime'), Time, scope=ImagingPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 607, 5))) +ImagingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'imagerIntegrationTime'), Time, scope=ImagingPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 608, 5))) -ImagingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfMajorCycles'), pyxb.binding.datatypes.unsignedShort, scope=ImagingPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 608, 5))) +ImagingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfMajorCycles'), pyxb.binding.datatypes.unsignedShort, scope=ImagingPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 609, 5))) -ImagingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfInstrumentModels'), pyxb.binding.datatypes.unsignedShort, scope=ImagingPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 609, 5))) +ImagingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfInstrumentModels'), pyxb.binding.datatypes.unsignedShort, scope=ImagingPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 610, 5))) -ImagingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts'), pyxb.binding.datatypes.unsignedShort, scope=ImagingPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 610, 5))) +ImagingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts'), pyxb.binding.datatypes.unsignedShort, scope=ImagingPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 611, 5))) -ImagingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfSkyImages'), pyxb.binding.datatypes.unsignedShort, scope=ImagingPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 611, 5))) +ImagingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfSkyImages'), pyxb.binding.datatypes.unsignedShort, scope=ImagingPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 612, 5))) def _BuildAutomaton_56 (): # Remove this helper function from the namespace after it is invoked @@ -9196,95 +9455,95 @@ def _BuildAutomaton_56 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) counters.add(cc_0) - cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 603, 5)) + cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 604, 5)) counters.add(cc_1) - cc_2 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 604, 5)) + cc_2 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 605, 5)) counters.add(cc_2) - cc_3 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 605, 5)) + cc_3 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 606, 5)) counters.add(cc_3) - cc_4 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 606, 5)) + cc_4 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 607, 5)) counters.add(cc_4) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 258, 3)) + symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 259, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 259, 3)) + symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 260, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 261, 3)) + symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 262, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 262, 3)) + symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 263, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 263, 3)) + symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 264, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 264, 3)) + symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 265, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 265, 3)) + symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 266, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = None - symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 589, 5)) + symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 590, 5)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = None - symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineVersion')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 590, 5)) + symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineVersion')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 591, 5)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) final_update = None - symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'sourceData')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 591, 5)) + symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'sourceData')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 592, 5)) st_10 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_10) final_update = None - symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'frequencyIntegrationStep')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 603, 5)) + symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'frequencyIntegrationStep')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 604, 5)) st_11 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_11) final_update = None - symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'timeIntegrationStep')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 604, 5)) + symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'timeIntegrationStep')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 605, 5)) st_12 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_12) final_update = None - symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'skyModelDatabase')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 605, 5)) + symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'skyModelDatabase')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 606, 5)) st_13 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_13) final_update = None - symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'demixing')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 606, 5)) + symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'demixing')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 607, 5)) st_14 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_14) final_update = None - symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'imagerIntegrationTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 607, 5)) + symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'imagerIntegrationTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 608, 5)) st_15 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_15) final_update = None - symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfMajorCycles')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 608, 5)) + symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfMajorCycles')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 609, 5)) st_16 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_16) final_update = None - symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfInstrumentModels')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 609, 5)) + symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfInstrumentModels')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 610, 5)) st_17 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_17) final_update = None - symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 610, 5)) + symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 611, 5)) st_18 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_18) final_update = set() - symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfSkyImages')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 611, 5)) + symbol = pyxb.binding.content.ElementUse(ImagingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfSkyImages')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 612, 5)) st_19 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_19) transitions = [] @@ -9403,19 +9662,19 @@ ImagingPipeline._Automaton = _BuildAutomaton_56() -CalibrationPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'frequencyIntegrationStep'), pyxb.binding.datatypes.unsignedShort, scope=CalibrationPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 620, 5))) +CalibrationPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'frequencyIntegrationStep'), pyxb.binding.datatypes.unsignedShort, scope=CalibrationPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 621, 5))) -CalibrationPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'timeIntegrationStep'), pyxb.binding.datatypes.unsignedShort, scope=CalibrationPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 621, 5))) +CalibrationPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'timeIntegrationStep'), pyxb.binding.datatypes.unsignedShort, scope=CalibrationPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 622, 5))) -CalibrationPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'flagAutoCorrelations'), pyxb.binding.datatypes.boolean, scope=CalibrationPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 622, 5))) +CalibrationPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'flagAutoCorrelations'), pyxb.binding.datatypes.boolean, scope=CalibrationPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 623, 5))) -CalibrationPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'demixing'), pyxb.binding.datatypes.boolean, scope=CalibrationPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 623, 5))) +CalibrationPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'demixing'), pyxb.binding.datatypes.boolean, scope=CalibrationPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 624, 5))) -CalibrationPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'skyModelDatabase'), pyxb.binding.datatypes.string, scope=CalibrationPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 624, 5))) +CalibrationPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'skyModelDatabase'), pyxb.binding.datatypes.string, scope=CalibrationPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 625, 5))) -CalibrationPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfInstrumentModels'), pyxb.binding.datatypes.unsignedShort, scope=CalibrationPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 625, 5))) +CalibrationPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfInstrumentModels'), pyxb.binding.datatypes.unsignedShort, scope=CalibrationPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 626, 5))) -CalibrationPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts'), pyxb.binding.datatypes.unsignedShort, scope=CalibrationPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 626, 5))) +CalibrationPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts'), pyxb.binding.datatypes.unsignedShort, scope=CalibrationPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 627, 5))) def _BuildAutomaton_57 (): # Remove this helper function from the namespace after it is invoked @@ -9424,87 +9683,87 @@ def _BuildAutomaton_57 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) counters.add(cc_0) - cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 620, 5)) + cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 621, 5)) counters.add(cc_1) - cc_2 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 621, 5)) + cc_2 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 622, 5)) counters.add(cc_2) - cc_3 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 622, 5)) + cc_3 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 623, 5)) counters.add(cc_3) - cc_4 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 623, 5)) + cc_4 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 624, 5)) counters.add(cc_4) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 258, 3)) + symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 259, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 259, 3)) + symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 260, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 261, 3)) + symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 262, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 262, 3)) + symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 263, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 263, 3)) + symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 264, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 264, 3)) + symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 265, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 265, 3)) + symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 266, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = None - symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 589, 5)) + symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 590, 5)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = None - symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineVersion')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 590, 5)) + symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineVersion')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 591, 5)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) final_update = None - symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'sourceData')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 591, 5)) + symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'sourceData')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 592, 5)) st_10 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_10) final_update = None - symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'frequencyIntegrationStep')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 620, 5)) + symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'frequencyIntegrationStep')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 621, 5)) st_11 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_11) final_update = None - symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'timeIntegrationStep')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 621, 5)) + symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'timeIntegrationStep')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 622, 5)) st_12 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_12) final_update = None - symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'flagAutoCorrelations')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 622, 5)) + symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'flagAutoCorrelations')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 623, 5)) st_13 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_13) final_update = None - symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'demixing')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 623, 5)) + symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'demixing')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 624, 5)) st_14 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_14) final_update = None - symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'skyModelDatabase')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 624, 5)) + symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'skyModelDatabase')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 625, 5)) st_15 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_15) final_update = None - symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfInstrumentModels')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 625, 5)) + symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfInstrumentModels')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 626, 5)) st_16 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_16) final_update = set() - symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 626, 5)) + symbol = pyxb.binding.content.ElementUse(CalibrationPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 627, 5)) st_17 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_17) transitions = [] @@ -9615,15 +9874,15 @@ CalibrationPipeline._Automaton = _BuildAutomaton_57() -AveragingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'frequencyIntegrationStep'), pyxb.binding.datatypes.unsignedShort, scope=AveragingPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 635, 5))) +AveragingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'frequencyIntegrationStep'), pyxb.binding.datatypes.unsignedShort, scope=AveragingPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 636, 5))) -AveragingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'timeIntegrationStep'), pyxb.binding.datatypes.unsignedShort, scope=AveragingPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 636, 5))) +AveragingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'timeIntegrationStep'), pyxb.binding.datatypes.unsignedShort, scope=AveragingPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 637, 5))) -AveragingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'flagAutoCorrelations'), pyxb.binding.datatypes.boolean, scope=AveragingPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 637, 5))) +AveragingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'flagAutoCorrelations'), pyxb.binding.datatypes.boolean, scope=AveragingPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 638, 5))) -AveragingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'demixing'), pyxb.binding.datatypes.boolean, scope=AveragingPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 638, 5))) +AveragingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'demixing'), pyxb.binding.datatypes.boolean, scope=AveragingPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 639, 5))) -AveragingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts'), pyxb.binding.datatypes.unsignedShort, scope=AveragingPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 639, 5))) +AveragingPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts'), pyxb.binding.datatypes.unsignedShort, scope=AveragingPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 640, 5))) def _BuildAutomaton_58 (): # Remove this helper function from the namespace after it is invoked @@ -9632,71 +9891,71 @@ def _BuildAutomaton_58 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) counters.add(cc_0) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 258, 3)) + symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 259, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 259, 3)) + symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 260, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 261, 3)) + symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 262, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 262, 3)) + symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 263, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 263, 3)) + symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 264, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 264, 3)) + symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 265, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 265, 3)) + symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 266, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = None - symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 589, 5)) + symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 590, 5)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = None - symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineVersion')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 590, 5)) + symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineVersion')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 591, 5)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) final_update = None - symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'sourceData')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 591, 5)) + symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'sourceData')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 592, 5)) st_10 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_10) final_update = None - symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'frequencyIntegrationStep')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 635, 5)) + symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'frequencyIntegrationStep')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 636, 5)) st_11 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_11) final_update = None - symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'timeIntegrationStep')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 636, 5)) + symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'timeIntegrationStep')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 637, 5)) st_12 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_12) final_update = None - symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'flagAutoCorrelations')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 637, 5)) + symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'flagAutoCorrelations')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 638, 5)) st_13 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_13) final_update = None - symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'demixing')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 638, 5)) + symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'demixing')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 639, 5)) st_14 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_14) final_update = set() - symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 639, 5)) + symbol = pyxb.binding.content.ElementUse(AveragingPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfCorrelatedDataProducts')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 640, 5)) st_15 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_15) transitions = [] @@ -9771,29 +10030,29 @@ AveragingPipeline._Automaton = _BuildAutomaton_58() -PulsarPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'pulsarSelection'), PulsarSelectionType, scope=PulsarPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 663, 5))) +PulsarPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'pulsarSelection'), PulsarSelectionType, scope=PulsarPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 664, 5))) -PulsarPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'pulsars'), ListOfString, scope=PulsarPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 664, 5))) +PulsarPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'pulsars'), ListOfString, scope=PulsarPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 665, 5))) -PulsarPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'doSinglePulseAnalysis'), pyxb.binding.datatypes.boolean, scope=PulsarPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 665, 5))) +PulsarPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'doSinglePulseAnalysis'), pyxb.binding.datatypes.boolean, scope=PulsarPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 666, 5))) -PulsarPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'convertRawTo8bit'), pyxb.binding.datatypes.boolean, scope=PulsarPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 666, 5))) +PulsarPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'convertRawTo8bit'), pyxb.binding.datatypes.boolean, scope=PulsarPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 667, 5))) -PulsarPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'subintegrationLength'), Time, scope=PulsarPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 667, 5))) +PulsarPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'subintegrationLength'), Time, scope=PulsarPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 668, 5))) -PulsarPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'skipRFIExcision'), pyxb.binding.datatypes.boolean, scope=PulsarPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 668, 5))) +PulsarPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'skipRFIExcision'), pyxb.binding.datatypes.boolean, scope=PulsarPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 669, 5))) -PulsarPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'skipDataFolding'), pyxb.binding.datatypes.boolean, scope=PulsarPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 669, 5))) +PulsarPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'skipDataFolding'), pyxb.binding.datatypes.boolean, scope=PulsarPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 670, 5))) -PulsarPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'skipOptimizePulsarProfile'), pyxb.binding.datatypes.boolean, scope=PulsarPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 670, 5))) +PulsarPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'skipOptimizePulsarProfile'), pyxb.binding.datatypes.boolean, scope=PulsarPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 671, 5))) -PulsarPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'skipConvertRawIntoFoldedPSRFITS'), pyxb.binding.datatypes.boolean, scope=PulsarPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 671, 5))) +PulsarPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'skipConvertRawIntoFoldedPSRFITS'), pyxb.binding.datatypes.boolean, scope=PulsarPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 672, 5))) -PulsarPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'runRotationalRAdioTransientsAnalysis'), pyxb.binding.datatypes.boolean, scope=PulsarPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 672, 5))) +PulsarPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'runRotationalRAdioTransientsAnalysis'), pyxb.binding.datatypes.boolean, scope=PulsarPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 673, 5))) -PulsarPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'skipDynamicSpectrum'), pyxb.binding.datatypes.boolean, scope=PulsarPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 673, 5))) +PulsarPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'skipDynamicSpectrum'), pyxb.binding.datatypes.boolean, scope=PulsarPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 674, 5))) -PulsarPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'skipPreFold'), pyxb.binding.datatypes.boolean, scope=PulsarPipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 674, 5))) +PulsarPipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'skipPreFold'), pyxb.binding.datatypes.boolean, scope=PulsarPipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 675, 5))) def _BuildAutomaton_59 (): # Remove this helper function from the namespace after it is invoked @@ -9802,99 +10061,99 @@ def _BuildAutomaton_59 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) counters.add(cc_0) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 258, 3)) + symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 259, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 259, 3)) + symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 260, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 261, 3)) + symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 262, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 262, 3)) + symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 263, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 263, 3)) + symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 264, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 264, 3)) + symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 265, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 265, 3)) + symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 266, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = None - symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 589, 5)) + symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 590, 5)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = None - symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineVersion')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 590, 5)) + symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineVersion')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 591, 5)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) final_update = None - symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'sourceData')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 591, 5)) + symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'sourceData')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 592, 5)) st_10 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_10) final_update = None - symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pulsarSelection')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 663, 5)) + symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pulsarSelection')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 664, 5)) st_11 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_11) final_update = None - symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pulsars')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 664, 5)) + symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pulsars')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 665, 5)) st_12 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_12) final_update = None - symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'doSinglePulseAnalysis')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 665, 5)) + symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'doSinglePulseAnalysis')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 666, 5)) st_13 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_13) final_update = None - symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'convertRawTo8bit')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 666, 5)) + symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'convertRawTo8bit')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 667, 5)) st_14 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_14) final_update = None - symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'subintegrationLength')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 667, 5)) + symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'subintegrationLength')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 668, 5)) st_15 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_15) final_update = None - symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'skipRFIExcision')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 668, 5)) + symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'skipRFIExcision')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 669, 5)) st_16 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_16) final_update = None - symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'skipDataFolding')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 669, 5)) + symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'skipDataFolding')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 670, 5)) st_17 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_17) final_update = None - symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'skipOptimizePulsarProfile')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 670, 5)) + symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'skipOptimizePulsarProfile')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 671, 5)) st_18 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_18) final_update = None - symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'skipConvertRawIntoFoldedPSRFITS')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 671, 5)) + symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'skipConvertRawIntoFoldedPSRFITS')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 672, 5)) st_19 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_19) final_update = None - symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'runRotationalRAdioTransientsAnalysis')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 672, 5)) + symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'runRotationalRAdioTransientsAnalysis')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 673, 5)) st_20 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_20) final_update = None - symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'skipDynamicSpectrum')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 673, 5)) + symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'skipDynamicSpectrum')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 674, 5)) st_21 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_21) final_update = set() - symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'skipPreFold')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 674, 5)) + symbol = pyxb.binding.content.ElementUse(PulsarPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'skipPreFold')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 675, 5)) st_22 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_22) transitions = [] @@ -10004,51 +10263,51 @@ def _BuildAutomaton_60 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) counters.add(cc_0) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(CosmicRayPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 258, 3)) + symbol = pyxb.binding.content.ElementUse(CosmicRayPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 259, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(CosmicRayPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 259, 3)) + symbol = pyxb.binding.content.ElementUse(CosmicRayPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 260, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(CosmicRayPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + symbol = pyxb.binding.content.ElementUse(CosmicRayPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(CosmicRayPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 261, 3)) + symbol = pyxb.binding.content.ElementUse(CosmicRayPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 262, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(CosmicRayPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 262, 3)) + symbol = pyxb.binding.content.ElementUse(CosmicRayPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 263, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(CosmicRayPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 263, 3)) + symbol = pyxb.binding.content.ElementUse(CosmicRayPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 264, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(CosmicRayPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 264, 3)) + symbol = pyxb.binding.content.ElementUse(CosmicRayPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 265, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(CosmicRayPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 265, 3)) + symbol = pyxb.binding.content.ElementUse(CosmicRayPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 266, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = None - symbol = pyxb.binding.content.ElementUse(CosmicRayPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 589, 5)) + symbol = pyxb.binding.content.ElementUse(CosmicRayPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 590, 5)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = None - symbol = pyxb.binding.content.ElementUse(CosmicRayPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineVersion')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 590, 5)) + symbol = pyxb.binding.content.ElementUse(CosmicRayPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineVersion')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 591, 5)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) final_update = set() - symbol = pyxb.binding.content.ElementUse(CosmicRayPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'sourceData')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 591, 5)) + symbol = pyxb.binding.content.ElementUse(CosmicRayPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'sourceData')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 592, 5)) st_10 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_10) transitions = [] @@ -10103,9 +10362,9 @@ CosmicRayPipeline._Automaton = _BuildAutomaton_60() -LongBaselinePipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'subbandsPerSubbandGroup'), pyxb.binding.datatypes.unsignedShort, scope=LongBaselinePipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 688, 5))) +LongBaselinePipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'subbandsPerSubbandGroup'), pyxb.binding.datatypes.unsignedShort, scope=LongBaselinePipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 689, 5))) -LongBaselinePipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'subbandGroupsPerMS'), pyxb.binding.datatypes.unsignedShort, scope=LongBaselinePipeline, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 689, 5))) +LongBaselinePipeline._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'subbandGroupsPerMS'), pyxb.binding.datatypes.unsignedShort, scope=LongBaselinePipeline, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 690, 5))) def _BuildAutomaton_61 (): # Remove this helper function from the namespace after it is invoked @@ -10114,59 +10373,59 @@ def _BuildAutomaton_61 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) counters.add(cc_0) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 258, 3)) + symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 259, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 259, 3)) + symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 260, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 261, 3)) + symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 262, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 262, 3)) + symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 263, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 263, 3)) + symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 264, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 264, 3)) + symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 265, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 265, 3)) + symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 266, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = None - symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 589, 5)) + symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 590, 5)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = None - symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineVersion')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 590, 5)) + symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineVersion')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 591, 5)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) final_update = None - symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'sourceData')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 591, 5)) + symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'sourceData')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 592, 5)) st_10 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_10) final_update = None - symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'subbandsPerSubbandGroup')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 688, 5)) + symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'subbandsPerSubbandGroup')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 689, 5)) st_11 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_11) final_update = set() - symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'subbandGroupsPerMS')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 689, 5)) + symbol = pyxb.binding.content.ElementUse(LongBaselinePipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'subbandGroupsPerMS')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 690, 5)) st_12 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_12) transitions = [] @@ -10236,51 +10495,51 @@ def _BuildAutomaton_62 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) counters.add(cc_0) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(GenericPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 258, 3)) + symbol = pyxb.binding.content.ElementUse(GenericPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 259, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(GenericPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 259, 3)) + symbol = pyxb.binding.content.ElementUse(GenericPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'observationId')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 260, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(GenericPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 260, 3)) + symbol = pyxb.binding.content.ElementUse(GenericPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'parset')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 261, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(GenericPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 261, 3)) + symbol = pyxb.binding.content.ElementUse(GenericPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 262, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(GenericPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 262, 3)) + symbol = pyxb.binding.content.ElementUse(GenericPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'strategyDescription')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 263, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(GenericPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 263, 3)) + symbol = pyxb.binding.content.ElementUse(GenericPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'startTime')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 264, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(GenericPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 264, 3)) + symbol = pyxb.binding.content.ElementUse(GenericPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'duration')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 265, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(GenericPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 265, 3)) + symbol = pyxb.binding.content.ElementUse(GenericPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'relations')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 266, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = None - symbol = pyxb.binding.content.ElementUse(GenericPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 589, 5)) + symbol = pyxb.binding.content.ElementUse(GenericPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 590, 5)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = None - symbol = pyxb.binding.content.ElementUse(GenericPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineVersion')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 590, 5)) + symbol = pyxb.binding.content.ElementUse(GenericPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'pipelineVersion')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 591, 5)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) final_update = set() - symbol = pyxb.binding.content.ElementUse(GenericPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'sourceData')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 591, 5)) + symbol = pyxb.binding.content.ElementUse(GenericPipeline._UseForTag(pyxb.namespace.ExpandedName(None, 'sourceData')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 592, 5)) st_10 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_10) transitions = [] @@ -10335,17 +10594,17 @@ GenericPipeline._Automaton = _BuildAutomaton_62() -SkyImageDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'locationFrame'), LocationFrame, scope=SkyImageDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1151, 5))) +SkyImageDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'locationFrame'), LocationFrame, scope=SkyImageDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1163, 5))) -SkyImageDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'timeFrame'), pyxb.binding.datatypes.string, scope=SkyImageDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1152, 5))) +SkyImageDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'timeFrame'), pyxb.binding.datatypes.string, scope=SkyImageDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1164, 5))) -SkyImageDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'observationPointing'), Pointing, scope=SkyImageDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1153, 5))) +SkyImageDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'observationPointing'), Pointing, scope=SkyImageDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1165, 5))) -SkyImageDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'restoringBeamMajor'), Angle, scope=SkyImageDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1154, 5))) +SkyImageDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'restoringBeamMajor'), Angle, scope=SkyImageDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1166, 5))) -SkyImageDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'restoringBeamMinor'), Angle, scope=SkyImageDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1155, 5))) +SkyImageDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'restoringBeamMinor'), Angle, scope=SkyImageDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1167, 5))) -SkyImageDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'rmsNoise'), Pixel, scope=SkyImageDataProduct, location=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1156, 5))) +SkyImageDataProduct._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(None, 'rmsNoise'), Pixel, scope=SkyImageDataProduct, location=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1168, 5))) def _BuildAutomaton_63 (): # Remove this helper function from the namespace after it is invoked @@ -10354,81 +10613,89 @@ def _BuildAutomaton_63 (): import pyxb.utils.fac as fac counters = set() - cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3)) + cc_0 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3)) counters.add(cc_0) - cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3)) + cc_1 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3)) counters.add(cc_1) - cc_2 = fac.CounterCondition(min=1, max=999, metadata=pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1134, 5)) + cc_2 = fac.CounterCondition(min=1, max=999, metadata=pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1146, 5)) counters.add(cc_2) states = [] final_update = None - symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductType')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 790, 3)) + symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductType')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 800, 3)) st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False) states.append(st_0) final_update = None - symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 791, 3)) + symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'dataProductIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 801, 3)) st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_1) final_update = None - symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageTicket')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 792, 3)) + symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageTicket')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 802, 3)) st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_2) final_update = None - symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'size')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 793, 3)) + symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'size')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 803, 3)) st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_3) final_update = None - symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'checksum')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 794, 3)) + symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'checksum')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 804, 3)) st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_4) final_update = None - symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileName')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 795, 3)) + symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileName')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 805, 3)) st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_5) final_update = None - symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileFormat')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 796, 3)) + symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'fileFormat')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 806, 3)) st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_6) final_update = None - symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 797, 3)) + symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageWriter')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 807, 3)) st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_7) final_update = None - symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfAxes')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1132, 5)) + symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'storageWriterVersion')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 808, 3)) st_8 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_8) final_update = None - symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfCoordinates')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1133, 5)) + symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'processIdentifier')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 809, 3)) st_9 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_9) final_update = None - symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'coordinate')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1134, 5)) + symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfAxes')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1144, 5)) st_10 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_10) final_update = None - symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'locationFrame')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1151, 5)) + symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'numberOfCoordinates')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1145, 5)) st_11 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_11) final_update = None - symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'timeFrame')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1152, 5)) + symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'coordinate')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1146, 5)) st_12 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_12) final_update = None - symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'observationPointing')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1153, 5)) + symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'locationFrame')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1163, 5)) st_13 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_13) final_update = None - symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'restoringBeamMajor')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1154, 5)) + symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'timeFrame')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1164, 5)) st_14 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_14) final_update = None - symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'restoringBeamMinor')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1155, 5)) + symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'observationPointing')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1165, 5)) st_15 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_15) - final_update = set() - symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'rmsNoise')), pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/LTA-SIP.xsd', 1156, 5)) + final_update = None + symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'restoringBeamMajor')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1166, 5)) st_16 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) states.append(st_16) + final_update = None + symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'restoringBeamMinor')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1167, 5)) + st_17 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) + states.append(st_17) + final_update = set() + symbol = pyxb.binding.content.ElementUse(SkyImageDataProduct._UseForTag(pyxb.namespace.ExpandedName(None, 'rmsNoise')), pyxb.utils.utility.Location('/lofar/LTA/LTACommon/LTA-SIP.xsd', 1168, 5)) + st_18 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False) + states.append(st_18) transitions = [] transitions.append(fac.Transition(st_1, [ ])) @@ -10478,18 +10745,18 @@ def _BuildAutomaton_63 (): ])) st_9._set_transitionSet(transitions) transitions = [] - transitions.append(fac.Transition(st_10, [ - fac.UpdateInstruction(cc_2, True) ])) transitions.append(fac.Transition(st_11, [ - fac.UpdateInstruction(cc_2, False) ])) + ])) st_10._set_transitionSet(transitions) transitions = [] transitions.append(fac.Transition(st_12, [ ])) st_11._set_transitionSet(transitions) transitions = [] + transitions.append(fac.Transition(st_12, [ + fac.UpdateInstruction(cc_2, True) ])) transitions.append(fac.Transition(st_13, [ - ])) + fac.UpdateInstruction(cc_2, False) ])) st_12._set_transitionSet(transitions) transitions = [] transitions.append(fac.Transition(st_14, [ @@ -10504,7 +10771,15 @@ def _BuildAutomaton_63 (): ])) st_15._set_transitionSet(transitions) transitions = [] + transitions.append(fac.Transition(st_17, [ + ])) st_16._set_transitionSet(transitions) + transitions = [] + transitions.append(fac.Transition(st_18, [ + ])) + st_17._set_transitionSet(transitions) + transitions = [] + st_18._set_transitionSet(transitions) return fac.Automaton(states, counters, False, containing_state=None) SkyImageDataProduct._Automaton = _BuildAutomaton_63() diff --git a/LTA/sip/lib/query.py b/LTA/sip/lib/query.py index 88f14a9b3cbe207ae3ebed31f49e17e2ddfd07a6..f1eae290b73fe890c9d7c25ba7f21c7ce560e1b6 100644 --- a/LTA/sip/lib/query.py +++ b/LTA/sip/lib/query.py @@ -8,6 +8,8 @@ import xml.etree.ElementTree as ET import xmlrpc.client import uuid import copy +import logging +logger = logging.getLogger(__name__) path = expanduser("~/.siplibrc") user = None @@ -23,7 +25,7 @@ if not exists(path): file.write("host=\n") with open(path,'r') as file: - print("Parsing user credentials from",path) + logger.info("Parsing user credentials from %s" % path) for line in file: if line.startswith("user"): user = line.split('=')[1].strip() diff --git a/LTA/sip/lib/siplib.py b/LTA/sip/lib/siplib.py index 3003ab8104989e27e86eafedc39a8f8062b23c66..bb3c6238a14a19117ee2d5379f838ddb6b04f66c 100644 --- a/LTA/sip/lib/siplib.py +++ b/LTA/sip/lib/siplib.py @@ -34,7 +34,8 @@ import xml.dom.minidom from pyxb.namespace import XMLSchema_instance as xsi from pyxb.namespace import XMLNamespaces as xmlns from . import query - +import logging +logger = logging.getLogger(__name__) VERSION = "SIPlib 0.4" d = os.path.dirname(os.path.realpath(__file__)) @@ -51,14 +52,15 @@ ltasip.Namespace.setPrefix('sip') def print_user_warning(): - print("!!! You are accessing an object, which is based on code that was auto-generated with the pyxb package.") - print("!!! We strongly advise you to only use the datatypes of the siplib wrapper to create your SIP file.") - print("!!! If you choose to alter pyxb/ltasip objects or their values directly for some reason, your SIP may ") - print("!!! become invalid. - Please make sure to validate your SIP before submission! ") - print("!!! Note that the pyxb portion of the code is subject to change whitout being backwards compatible.") - print("!!! This means that, should you choose to access pyxb objects e.g. to parse an existing SIP file, things") - print("!!! might break for you without further warning.") - print("!!! (You may suppress this warning by setting the flag in the pyxb-related getter/setter functions.)") + logger.warning(''' +!!! You are accessing an object, which is based on code that was auto-generated with the pyxb package. +!!! We strongly advise you to only use the datatypes of the siplib wrapper to create your SIP file. +!!! If you choose to alter pyxb/ltasip objects or their values directly for some reason, your SIP may +!!! become invalid. - Please make sure to validate your SIP before submission! +!!! Note that the pyxb portion of the code is subject to change whitout being backwards compatible. +!!! This means that, should you choose to access pyxb objects e.g. to parse an existing SIP file, things +!!! might break for you without further warning. +!!! You may suppress this warning by setting the flag in the pyxb-related getter/setter functions.''') # =============================== # Identifier definition (used for LTA entities, i-e- processes and dataproducts): @@ -111,6 +113,7 @@ class Identifier(object): print_user_warning() return self.__pyxb_identifier + # =============================== # Station definitions: @@ -433,6 +436,8 @@ class DataProductMap(): size, filename, fileformat, + storage_writer, + storage_writer_version, process_identifier, checksum_md5=None, checksum_adler32=None, @@ -441,7 +446,10 @@ class DataProductMap(): self.dataproduct_map= dict(dataProductType=type, dataProductIdentifier=identifier._get_pyxb_identifier(suppress_warning=True), size=size, - fileName=filename, fileFormat=fileformat, + fileName=filename, + fileFormat=fileformat, + storageWriter=storage_writer, + storageWriterVersion=storage_writer_version, processIdentifier=process_identifier._get_pyxb_identifier(suppress_warning=True), storageTicket=storageticket) @@ -672,7 +680,7 @@ class SpectralCoordinate(): elif isinstance(axis, TabularAxis): args.update(dict(spectralTabularAxis=axis._get_pyxb_axis(suppress_warning=True))) else: - print("wrong axis type:",type(axis)) + logger.error("wrong axis type:",type(axis)) self.__pyxb_coordinate=ltasip.SpectralCoordinate(**args) @@ -695,7 +703,7 @@ class TimeCoordinate(): elif isinstance(axis, TabularAxis): args.update(dict(timeTabularAxis=axis._get_pyxb_axis(suppress_warning=True))) else: - print("wrong axis type:",type(axis)) + logger.error("wrong axis type:",type(axis)) self.__pyxb_coordinate=ltasip.TimeCoordinate(**args) @@ -1054,6 +1062,7 @@ class ProcessMap(): def get_dict(self): return self.process_map + class ProcessRelation(): def __init__(self, identifier, @@ -1310,9 +1319,7 @@ class Sip(object): The main Sip object. Instantiate this with the dataproduct you want to describe/ingest. Then add all related items to it, like observation, pipeline runs, and intermediate dataproducts. """ - print("\n################") - print(VERSION) - print("################\n") + logger.info("SIP library v.%s" %VERSION) #----------- # Base document @@ -1374,18 +1381,20 @@ class Sip(object): # Optional additions #--- - def add_related_dataproduct(self, dataproduct): + def add_related_dataproduct(self, dataproduct, return_xml=True): self.__sip.relatedDataProduct.append(dataproduct._get_pyxb_dataproduct(suppress_warning=True)) - return self.get_prettyxml() + if return_xml: + return self.get_prettyxml() - def add_observation(self, observation): + def add_observation(self, observation, return_xml=True): self.__sip.observation.append(observation._get_pyxb_observation(suppress_warning=True)) - return self.get_prettyxml() - + if return_xml: + return self.get_prettyxml() - def add_pipelinerun(self, pipeline): + def add_pipelinerun(self, pipeline, return_xml=True): self.__sip.pipelineRun.append(pipeline._get_pyxb_pipeline(suppress_warning=True)) - return self.get_prettyxml() + if return_xml: + return self.get_prettyxml() def add_unspecifiedprocess(self, @@ -1420,7 +1429,7 @@ class Sip(object): if not any(x.dataProductIdentifier.identifier == relateddataproduct_sip.__sip.dataProduct.dataProductIdentifier.identifier for x in self.__sip.relatedDataProduct): self.__sip.relatedDataProduct.append(relateddataproduct_sip.__sip.dataProduct) else: - print("WARNING: There already exists a dataproduct with id", relateddataproduct_sip.__sip.dataProduct.dataProductIdentifier.identifier," - Will try to add any new related items anyway.") + logger.warning("There already exists a dataproduct with id", relateddataproduct_sip.__sip.dataProduct.dataProductIdentifier.identifier," - Will try to add any new related items anyway.") if relateddataproduct_sip.__sip.relatedDataProduct: # add related dataproducts (if not there already) for dp in relateddataproduct_sip.__sip.relatedDataProduct: @@ -1470,18 +1479,15 @@ class Sip(object): def get_prettyxml(self): try: dom = self.__sip.toDOM() - #print "1) "+dom.toprettyxml() dom.documentElement.setAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance") dom.documentElement.setAttribute('xsi:schemaLocation', "http://www.astron.nl/SIP-Lofar LTA-SIP-2.7.0.xsd") - #print "2) "+dom.toprettyxml() return dom.toprettyxml() except pyxb.ValidationError as err: - #print str(err) - print(err.details()) + logger.error(err.details()) raise err def prettyprint(self): - print(self.get_prettyxml()) + logger.info(self.get_prettyxml()) def save_to_file(self, path): diff --git a/LTA/sip/lib/testmetadata_file.Correlated.modified b/LTA/sip/lib/testmetadata_file.Correlated.modified deleted file mode 100644 index 4d17a1d5f0f9a868f28730d6411846e6801684fc..0000000000000000000000000000000000000000 --- a/LTA/sip/lib/testmetadata_file.Correlated.modified +++ /dev/null @@ -1,31 +0,0 @@ -test.prefix.Output_Correlated_[0].centralFrequency=119042968.75 -test.prefix.Output_Correlated_[0].channelWidth=48828.125 -test.prefix.Output_Correlated_[0].channelsPerSubband=8 -test.prefix.Output_Correlated_[0].duration=3600.99872684 -test.prefix.Output_Correlated_[0].fileFormat=AIPS++/CASA -test.prefix.Output_Correlated_[0].filename=L74759_SAP000_SB001_uv.copySubtracted -test.prefix.Output_Correlated_[0].integrationInterval=4.00556032 -test.prefix.Output_Correlated_[0].job_duration=5.0088031292 -test.prefix.Output_Correlated_[0].location=jrc0636:/work/htb00/htb003/cookbook_working_dir/Cookbook-Tutorial -test.prefix.Output_Correlated_[0].percentageWritten=100 -test.prefix.Output_Correlated_[0].returncode=0 -test.prefix.Output_Correlated_[0].size=1381625751 -test.prefix.Output_Correlated_[0].startTime=2012-11-12T12:47:00.000 -test.prefix.Output_Correlated_[0].stationSubband=0 -test.prefix.Output_Correlated_[0].subband=0 -test.prefix.Output_Correlated_[1].centralFrequency=119042968.75 -test.prefix.Output_Correlated_[1].channelWidth=48828.125 -test.prefix.Output_Correlated_[1].channelsPerSubband=8 -test.prefix.Output_Correlated_[1].duration=3600.99872684 -test.prefix.Output_Correlated_[1].fileFormat=AIPS++/CASA -test.prefix.Output_Correlated_[1].filename=L74759_SAP000_SB001_uv.copySubtracted.2 -test.prefix.Output_Correlated_[1].integrationInterval=4.00556032 -test.prefix.Output_Correlated_[1].job_duration=5.0088031292 -test.prefix.Output_Correlated_[1].location=jrc0636:/work/htb00/htb003/cookbook_working_dir/Cookbook-Tutorial -test.prefix.Output_Correlated_[1].percentageWritten=100 -test.prefix.Output_Correlated_[1].returncode=1 -test.prefix.Output_Correlated_[1].size=1381625751 -test.prefix.Output_Correlated_[1].startTime=2012-11-12T12:47:00.000 -test.prefix.Output_Correlated_[1].stationSubband=1 -test.prefix.Output_Correlated_[1].subband=1 -test.prefix.nrOfOutput_Correlated_=2 \ No newline at end of file diff --git a/LTA/sip/lib/validator.py b/LTA/sip/lib/validator.py index 4d7f30f9dffaed15ba9bb50762495c972abc7f08..508c2beee330b5c7a32226031eb9d95beef2c2d3 100644 --- a/LTA/sip/lib/validator.py +++ b/LTA/sip/lib/validator.py @@ -1,7 +1,9 @@ from lxml import etree import os -from . import ltasip +from . import ltasip, siplib +import logging +logger = logging.getLogger(__name__) d = os.path.dirname(os.path.realpath(__file__)) XSDPATH = d+"/LTA-SIP.xsd" @@ -11,7 +13,7 @@ DEFAULT_SIP_XSD_PATH = os.path.join(os.environ.get('LOFARROOT', '/opt/lofar'), ' def validate(xmlpath, xsdpath=DEFAULT_SIP_XSD_PATH): '''validates given xml file against given xsd file''' - print("validating", xmlpath, "against", xsdpath) + logger.info("validating %s against %s" % (xmlpath, xsdpath)) with open(xsdpath) as xsd: xmlschema_doc = etree.parse(xsd) @@ -25,77 +27,87 @@ def validate(xmlpath, xsdpath=DEFAULT_SIP_XSD_PATH): try: xmlschema.assertValid(doc) except Exception as err: - print(err) + logger.error(err) - print("SIP is valid according to schema definition!") + logger.info("SIP is valid according to schema definition!") return valid -def check_consistency(xmlpath): +def check_consistency(sip): + ''' + since a SIP can be valid XML but make no sense structurally, this makes sure that SIP contents contain a tree + structure that ends with a single described dataproduct, and all pipelines and intermediary dataproducts are + properly chained together. + ''' + + sip = sip._get_pyxb_sip(suppress_warning=True) + linkstodataproduct = {} + linkstoprocess = {} + + # the dataproduct that is described by the sip + data_out = sip.dataProduct + id_out = str(data_out.dataProductIdentifier.identifier) + id_process = str(data_out.processIdentifier.identifier) + linkstodataproduct.setdefault(id_out, []).append(id_process) + + # the input / intermediate dataproducts + for data_in in sip.relatedDataProduct: + id_in = str(data_in.dataProductIdentifier.identifier) + id_process = str(data_in.processIdentifier.identifier) + linkstodataproduct.setdefault(id_in, []).append(id_process) + + # the observations + for obs in sip.observation: + id_obs = str(obs.observationId.identifier) + id_process = str(obs.processIdentifier.identifier) + linkstoprocess.setdefault(id_process, []) + + # the data processing steps + for pipe in sip.pipelineRun: + id_pipe = str(pipe.processIdentifier.identifier) + id_in = [] + for elem in pipe.sourceData.orderedContent(): + id_in.append(str(elem.value.identifier)) + linkstoprocess.setdefault(id_pipe, []).append(id_in) + + # the data processing steps + for unspec in sip.unspecifiedProcess: + id_unspec = str(unspec.processIdentifier.identifier) + linkstoprocess.setdefault(id_unspec, []) + + # todo: online processing + # todo: parsets (?) + + for id in linkstodataproduct: + for id_from in linkstodataproduct.get(id): + if not id_from in linkstoprocess: + raise Exception( + "The pipeline or observation that created dataproduct '" + id + "' seems to be missing! -> ", + id_from) + + for id in linkstoprocess: + for ids_from in linkstoprocess.get(id): + for id_from in ids_from: + if not id_from in linkstodataproduct: + raise Exception("The input dataproduct for pipeline '" + id + "' seems to be missing! -> ", id_from) + + logger.info("General SIP structure seems ok!") + return True # already raised Exception if there was a problem... + + +def check_consistency_of_file(xmlpath): """ Checks the general structure of the provided SIP XML. E.g.: Is/Are the processes/es present that created the described dataproduct / related dataproducts? Are the input dataproducts for these processes present? """ - print("Checking", xmlpath, "for structural consistency") + logger.info("Checking %s for structural consistency" % xmlpath) with open(xmlpath) as f: xml = f.read() - sip = ltasip.CreateFromDocument(xml) - - - linkstodataproduct = {} - linkstoprocess = {} - - # the dataproduct that is described by the sip - data_out = sip.dataProduct - id_out = str(data_out.dataProductIdentifier.identifier) - id_process = str(data_out.processIdentifier.identifier) - linkstodataproduct.setdefault(id_out,[]).append(id_process) - - # the input / intermediate dataproducts - for data_in in sip.relatedDataProduct: - id_in = str(data_in.dataProductIdentifier.identifier) - id_process = str(data_in.processIdentifier.identifier) - linkstodataproduct.setdefault(id_in,[]).append(id_process) - - # the observations - for obs in sip.observation: - id_obs = str(obs.observationId.identifier) - id_process = str(obs.processIdentifier.identifier) - linkstoprocess.setdefault(id_process,[]) - - # the data processing steps - for pipe in sip.pipelineRun: - id_pipe = str(pipe.processIdentifier.identifier) - id_in = [] - for id in pipe.sourceData.content(): - id_in.append(str(id.identifier)) - linkstoprocess.setdefault(id_pipe,[]).append(id_in) - - # the data processing steps - for unspec in sip.unspecifiedProcess: - id_unspec = str(unspec.processIdentifier.identifier) - linkstoprocess.setdefault(id_unspec,[]) - - - # todo: online processing - # todo: parsets (?) - - for id in linkstodataproduct: - for id_from in linkstodataproduct.get(id): - if not id_from in linkstoprocess: - raise Exception("The pipeline or observation that created dataproduct '"+ id + "' seems to be missing! -> ", id_from) - - for id in linkstoprocess: - for ids_from in linkstoprocess.get(id): - for id_from in ids_from: - if not id_from in linkstodataproduct: - raise Exception("The input dataproduct for pipeline '"+ id +"' seems to be missing! -> ", id_from) - - print("General SIP structure seems ok!") - return True # already raised Exception if there was a problem... + sip = siplib.Sip.from_xml(xml) + return check_consistency(sip) def main(xml): @@ -107,8 +119,7 @@ def main(xml): xml = xml xsd = DEFAULT_SIP_XSD_PATH valid = validate(xml, xsd) - consistent = check_consistency(xml) + consistent = check_consistency_of_file(xml) return valid and consistent except Exception as err: - print("An error occurred:") - print(err) + logger.error(err) diff --git a/LTA/sip/lib/visualizer.py b/LTA/sip/lib/visualizer.py index b901545f038ef8e9f0536575d72bfc6302f9c737..225016ef8629c82952fe105eee966782181d03fa 100755 --- a/LTA/sip/lib/visualizer.py +++ b/LTA/sip/lib/visualizer.py @@ -4,17 +4,20 @@ from graphviz import Digraph import sys from . import siplib from . import ltasip +import tempfile +import logging +logger = logging.getLogger(__name__) ltasip.Namespace.setPrefix('sip') -def visualize_sip(sip, path="sip.visualize", format="svg", view=False): +def visualize_sip(sip, path=None, format="svg", view=False): if type(sip) == siplib.Sip: sip = sip._get_pyxb_sip(suppress_warning=True) linkstodataproduct = {} linkstoprocess = {} - dot_wrapper = Digraph('cluster_wrapper') + dot_wrapper = Digraph('cluster_wrapper', format=format) # --- # create legend @@ -44,7 +47,7 @@ def visualize_sip(sip, path="sip.visualize", format="svg", view=False): data_out = sip.dataProduct id_out = str(data_out.dataProductIdentifier.identifier) dot.node(id_out, id_out +": "+data_out.fileName,style="filled",fillcolor="cadetblue", shape="note") - print("adding node for final dataproduct ", id_out) + logger.info("adding node for final dataproduct %s" % id_out) id_process = str(data_out.processIdentifier.identifier) # keep reference to originating pipeline run / observation: linkstodataproduct.setdefault(id_out,[]).append(id_process) @@ -53,7 +56,7 @@ def visualize_sip(sip, path="sip.visualize", format="svg", view=False): for data_in in sip.relatedDataProduct: id_in = str(data_in.dataProductIdentifier.identifier) dot.node(id_in, id_in +": "+data_in.fileName, style="filled", shape="note",fillcolor="cadetblue2") - print("adding node for dataproduct ", id_in) + logger.info("adding node for dataproduct %s" % id_in) id_process = str(data_in.processIdentifier.identifier) # keep reference to originating pipeline run / observation: linkstodataproduct.setdefault(id_in,[]).append(id_process) @@ -63,7 +66,7 @@ def visualize_sip(sip, path="sip.visualize", format="svg", view=False): id_obs = str(obs.observationId.identifier) id_process = str(obs.processIdentifier.identifier) dot.node(id_process, id_process + ": "+ id_obs, style="filled", fillcolor="gold",shape="octagon") - print("adding node for observation ", id_process) + logger.info("adding node for observation %s" % id_process) # no incoming data here, but register node as present: linkstoprocess.setdefault(id_process,[]) @@ -71,18 +74,18 @@ def visualize_sip(sip, path="sip.visualize", format="svg", view=False): for pipe in sip.pipelineRun: id_pipe = str(pipe.processIdentifier.identifier) dot.node(id_pipe, id_pipe+" ", style="filled", fillcolor="chartreuse", shape="cds") - print("adding node for pipelinerun ", id_pipe) + logger.info("adding node for pipelinerun %s" % id_pipe) # keep reference to input dataproducts: id_in = [] - for id in pipe.sourceData.content(): - id_in.append(str(id.identifier)) + for elem in pipe.sourceData.orderedContent(): + id_in.append(str(elem.value.identifier)) linkstoprocess.setdefault(id_pipe,[]).append(id_in) # the data processing steps for unspec in sip.unspecifiedProcess: id_unspec = str(unspec.processIdentifier.identifier) dot.node(id_unspec, id_unspec, style="filled", fillcolor="orange", shape="hexagon") - print("adding node for unspecified process ", id_unspec) + logger.info("adding node for unspecified process %s" % id_unspec) # no incoming data here, but register node as present: linkstoprocess.setdefault(id_unspec,[]) @@ -90,26 +93,21 @@ def visualize_sip(sip, path="sip.visualize", format="svg", view=False): # todo: online processing # todo: parsets (?) -# print linkstoprocess -# print linkstodataproduct - # add edges: for id in linkstodataproduct: for id_from in linkstodataproduct.get(id): if id_from in linkstoprocess: dot.edge(id_from, id) - #print id_from,"->", id else: - print("Error: The pipeline or observation that created dataproduct '"+ id + "' seems to be missing! -> ", id_from) + raise Exception("The pipeline or observation that created dataproduct %s seems to be missing! -> %s" % (id, id_from)) for id in linkstoprocess: for ids_from in linkstoprocess.get(id): for id_from in ids_from: if id_from in linkstodataproduct: dot.edge(id_from, id) - #print id_from,"->", id else: - print("Error: The input dataproduct for pipeline '"+ id +"' seems to be missing! -> ", id_from) + raise Exception("The input dataproduct for pipeline %s seems to be missing! -> %s" % (id, id_from)) # ---- @@ -118,11 +116,16 @@ def visualize_sip(sip, path="sip.visualize", format="svg", view=False): dot_wrapper.subgraph(dot) dot_wrapper = stylize(dot_wrapper) dot_wrapper.format = format - print("writing rendering to", path) - dot_wrapper.render(path, view=view) - - - + dot_wrapper.engine = 'dot' + if path is not None: + logger.info("writing rendering to", path) + dot_wrapper.render(path, view=view) + else: + with tempfile.NamedTemporaryFile(mode='wt') as temp: + dot_wrapper.render(temp.name, view=view) + temp.flush() + with open("%s.%s" % (temp.name, format), mode='rb') as temp_render: + return temp_render.read() def stylize(graph): @@ -162,7 +165,7 @@ def stylize(graph): def main(xmlpath): - print("Reading xml from file", xmlpath) + logger.info("Reading xml from file %s" % xmlpath) with open(xmlpath) as f: xml = f.read() sip = ltasip.CreateFromDocument(xml) diff --git a/LTA/sip/test/CMakeLists.txt b/LTA/sip/test/CMakeLists.txt index c781f89a8ad3188197a5b36d9765981e9273ea58..e1867ee4c193038e9069ca29abf0be49fc49e299 100644 --- a/LTA/sip/test/CMakeLists.txt +++ b/LTA/sip/test/CMakeLists.txt @@ -6,14 +6,6 @@ lofar_add_test(test_siplib) lofar_add_test(test_feedback) lofar_add_test(test_visualizer) - - -set(test_resource_files - sipfrommom.xml - valid_sip.xml - testmetadata_file.Correlated.modified -) - -# WRONG, we should not install test files. -# install(FILES ${test_resource_files} -# DESTINATION /tmp/) +file(COPY testmetadata_file.Correlated.modified DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +file(COPY sipfrommom.xml DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +file(COPY valid_sip.xml DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) \ No newline at end of file diff --git a/LTA/sip/test/sipfrommom.xml b/LTA/sip/test/sipfrommom.xml index 85d46f18da0c8f8d7dcf79e24cd6590398a43d5a..3669be87820979bd2ac9237878f35540b62d4bd3 100644 --- a/LTA/sip/test/sipfrommom.xml +++ b/LTA/sip/test/sipfrommom.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <sip:ltaSip xmlns:sip="http://www.astron.nl/SIP-Lofar" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.astron.nl/SIP-Lofar LTA-SIP-2.6.0.xsd "> - <sipGeneratorVersion>Version v2.17.5 (29-08-2016)</sipGeneratorVersion> + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.astron.nl/SIP-Lofar LTA-SIP-2.7.2.xsd "> + <sipGeneratorVersion>Version v2.17.5 (29-08-2016) (modified by hand by JK, Aug 2020)</sipGeneratorVersion> <project> <projectCode>LC6_016</projectCode> <primaryInvestigator>Arias de Saavedra Benitez, Maria</primaryInvestigator> @@ -33,6 +33,8 @@ </checksum> <fileName>L527639_SB000_uv.dppp.MS_f43104ae.tar</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697902</identifier> @@ -1939,6 +1941,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB000_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -1969,6 +1973,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB001_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -1999,6 +2005,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB002_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2029,6 +2037,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB003_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2059,6 +2069,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB004_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2089,6 +2101,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB005_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2119,6 +2133,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB006_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2149,6 +2165,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB007_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2179,6 +2197,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB008_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2209,6 +2229,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB009_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2239,6 +2261,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB010_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2269,6 +2293,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB011_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2299,6 +2325,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB012_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2329,6 +2357,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB013_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2359,6 +2389,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB014_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2389,6 +2421,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB015_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2419,6 +2453,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB016_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2449,6 +2485,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB017_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2479,6 +2517,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB018_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2509,6 +2549,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB019_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2539,6 +2581,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB020_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2569,6 +2613,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB021_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2599,6 +2645,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB022_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2629,6 +2677,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB023_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2659,6 +2709,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB024_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2689,6 +2741,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB025_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2719,6 +2773,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB026_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2749,6 +2805,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB027_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2779,6 +2837,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB028_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2809,6 +2869,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB029_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2839,6 +2901,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB030_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2869,6 +2933,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB031_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2899,6 +2965,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB032_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2929,6 +2997,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB033_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2959,6 +3029,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB034_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2989,6 +3061,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB035_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3019,6 +3093,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB036_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3049,6 +3125,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB037_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3079,6 +3157,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB038_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3109,6 +3189,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB039_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3139,6 +3221,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB040_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3169,6 +3253,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB041_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3199,6 +3285,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB042_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3229,6 +3317,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB043_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3259,6 +3349,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB044_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3289,6 +3381,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB045_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3319,6 +3413,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB046_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3349,6 +3445,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB047_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3379,6 +3477,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB048_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3409,6 +3509,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB049_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3439,6 +3541,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB050_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3469,6 +3573,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB051_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3499,6 +3605,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB052_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3529,6 +3637,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB053_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3559,6 +3669,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB054_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3589,6 +3701,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB055_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3619,6 +3733,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB056_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3649,6 +3765,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB057_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3679,6 +3797,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB058_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3709,6 +3829,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB059_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3739,6 +3861,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB060_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3769,6 +3893,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB061_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3799,6 +3925,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB062_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3829,6 +3957,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB063_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3859,6 +3989,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB064_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3889,6 +4021,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB065_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3919,6 +4053,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB066_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3949,6 +4085,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB067_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3979,6 +4117,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB068_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4009,6 +4149,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB069_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4039,6 +4181,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB070_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4069,6 +4213,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB071_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4099,6 +4245,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB072_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4129,6 +4277,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB073_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4159,6 +4309,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB074_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4189,6 +4341,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB075_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4219,6 +4373,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB076_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4249,6 +4405,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB077_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4279,6 +4437,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB078_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4309,6 +4469,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB079_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4339,6 +4501,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB080_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4369,6 +4533,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB081_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4399,6 +4565,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB082_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4429,6 +4597,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB083_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4459,6 +4629,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB084_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4489,6 +4661,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB085_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4519,6 +4693,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB086_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4549,6 +4725,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB087_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4579,6 +4757,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB088_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4609,6 +4789,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB089_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4639,6 +4821,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB090_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4669,6 +4853,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB091_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4699,6 +4885,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB092_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4729,6 +4917,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB093_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4759,6 +4949,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB094_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4789,6 +4981,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB095_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4819,6 +5013,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB096_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4849,6 +5045,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB097_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4879,6 +5077,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB098_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4909,6 +5109,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB099_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4939,6 +5141,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB100_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4969,6 +5173,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB101_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4999,6 +5205,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB102_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5029,6 +5237,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB103_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5059,6 +5269,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB104_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5089,6 +5301,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB105_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5119,6 +5333,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB106_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5149,6 +5365,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB107_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5179,6 +5397,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB108_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5209,6 +5429,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB109_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5239,6 +5461,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB110_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5269,6 +5493,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB111_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5299,6 +5525,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB112_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5329,6 +5557,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB113_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5359,6 +5589,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB114_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5389,6 +5621,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB115_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5419,6 +5653,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB116_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5449,6 +5685,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB117_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5479,6 +5717,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB118_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5509,6 +5749,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB119_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5539,6 +5781,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB120_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5569,6 +5813,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB121_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5599,6 +5845,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB122_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5629,6 +5877,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB123_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5659,6 +5909,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB124_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5689,6 +5941,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB125_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5719,6 +5973,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB126_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5749,6 +6005,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB127_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5779,6 +6037,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB128_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5809,6 +6069,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB129_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5839,6 +6101,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB130_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5869,6 +6133,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB131_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5899,6 +6165,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB132_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5929,6 +6197,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB133_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5959,6 +6229,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB134_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5989,6 +6261,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB135_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6019,6 +6293,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB136_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6049,6 +6325,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB137_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6079,6 +6357,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB138_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6109,6 +6389,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB139_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6139,6 +6421,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB140_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6169,6 +6453,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB141_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6199,6 +6485,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB142_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6229,6 +6517,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB143_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6259,6 +6549,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB144_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6289,6 +6581,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB145_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6319,6 +6613,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB146_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6349,6 +6645,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB147_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6379,6 +6677,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB148_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6409,6 +6709,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB149_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6439,6 +6741,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB150_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6469,6 +6773,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB151_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6499,6 +6805,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB152_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6529,6 +6837,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB153_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6559,6 +6869,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB154_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6589,6 +6901,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB155_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6619,6 +6933,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB156_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6649,6 +6965,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB157_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6679,6 +6997,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB158_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6709,6 +7029,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB159_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6739,6 +7061,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB160_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6769,6 +7093,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB161_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6799,6 +7125,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB162_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6829,6 +7157,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB163_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6859,6 +7189,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB164_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6889,6 +7221,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB165_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6919,6 +7253,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB166_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6949,6 +7285,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB167_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6979,6 +7317,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB168_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7009,6 +7349,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB169_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7039,6 +7381,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB170_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7069,6 +7413,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB171_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7099,6 +7445,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB172_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7129,6 +7477,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB173_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7159,6 +7509,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB174_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7189,6 +7541,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB175_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7219,6 +7573,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB176_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7249,6 +7605,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB177_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7279,6 +7637,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB178_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7309,6 +7669,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB179_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7339,6 +7701,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB180_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7369,6 +7733,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB181_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7399,6 +7765,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB182_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7429,6 +7797,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB183_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7459,6 +7829,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB184_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7489,6 +7861,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB185_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7519,6 +7893,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB186_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7549,6 +7925,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB187_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7579,6 +7957,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB188_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7609,6 +7989,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB189_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7639,6 +8021,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB190_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7669,6 +8053,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB191_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7699,6 +8085,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB192_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7729,6 +8117,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB193_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7759,6 +8149,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB194_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7789,6 +8181,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB195_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7819,6 +8213,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB196_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7849,6 +8245,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB197_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7879,6 +8277,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB198_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7909,6 +8309,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB199_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7939,6 +8341,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB200_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7969,6 +8373,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB201_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7999,6 +8405,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB202_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8029,6 +8437,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB203_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8059,6 +8469,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB204_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8089,6 +8501,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB205_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8119,6 +8533,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB206_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8149,6 +8565,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB207_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8179,6 +8597,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB208_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8209,6 +8629,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB209_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8239,6 +8661,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB210_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8269,6 +8693,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB211_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8299,6 +8725,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB212_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8329,6 +8757,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB213_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8359,6 +8789,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB214_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8389,6 +8821,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB215_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8419,6 +8853,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB216_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8449,6 +8885,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB217_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8479,6 +8917,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB218_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8509,6 +8949,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB219_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8539,6 +8981,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB220_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8569,6 +9013,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB221_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8599,6 +9045,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB222_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8629,6 +9077,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB223_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8659,6 +9109,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB224_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8689,6 +9141,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB225_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8719,6 +9173,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB226_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8749,6 +9205,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB227_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8779,6 +9237,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB228_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8809,6 +9269,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB229_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8839,6 +9301,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB230_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8869,6 +9333,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB231_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8899,6 +9365,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB232_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8929,6 +9397,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB233_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8959,6 +9429,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB234_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8989,6 +9461,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB235_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -9019,6 +9493,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB236_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -9049,6 +9525,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB237_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -9079,6 +9557,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB238_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -9109,6 +9589,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB239_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -9139,6 +9621,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB240_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -9169,6 +9653,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB241_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -9199,6 +9685,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB242_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -9229,6 +9717,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB243_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> diff --git a/LTA/sip/test/test_feedback.py b/LTA/sip/test/test_feedback.py index 351b51b9903a2108f0b277d1e731c85fad6a3088..5f4a8fbb311744b0ee1b3aaa3ece9e13a8387698 100755 --- a/LTA/sip/test/test_feedback.py +++ b/LTA/sip/test/test_feedback.py @@ -27,61 +27,80 @@ except ImportError as e: exit(3) # special lofar test exit code: skipped test import unittest -from lofar.lta.sip import siplib -from lofar.lta.sip import validator -from lofar.lta.sip import constants -from lofar.lta.sip import feedback +import os +from lofar.lta.sip import siplib, validator, constants, feedback +from unittest.mock import patch + import uuid +import logging +logger = logging.getLogger(__name__) + +TMPFILE_PATH = "test_siplib.xml" +working_dir = os.path.dirname(os.path.abspath(__file__)) +FEEDBACK_PATH = os.path.join(working_dir, "testmetadata_file.Correlated.modified") -TMPFILE_PATH = "/tmp/test_siplib.xml" # todo: how to deploy in testdir? -FEEDBACK_PATH = "/tmp/testmetadata_file.Correlated.modified" # todo: how to deploy in testdir? +id_response = {"version": "version", + "result": "ok", + "id": uuid.uuid1().int >> 64, + "user_label": None, + "data_type": "type", + "identifier_source": 'test', + "is_new": True, + "error": ''} def create_basicdoc(): - return siplib.Sip( - project_code = "code", - project_primaryinvestigator = "pi", - project_contactauthor = "coauthor", - # project_telescope="LOFAR", - project_description = "awesome project", - project_coinvestigators = ["sidekick1", "sidekick2"], - dataproduct = siplib.SimpleDataProduct( - siplib.DataProductMap( - type = "Unknown", - identifier = siplib.Identifier("test"), - size = 1024, - filename = "/home/paulus/test.h5", - fileformat = "HDF5", - process_identifier = siplib.Identifier("test"), - checksum_md5 = "hash1", - checksum_adler32 = "hash2", - storageticket = "ticket" + with patch('lofar.lta.sip.siplib.query.client') as client_mock: + client_mock.GetUniqueID.return_value = id_response + return siplib.Sip( + project_code = "code", + project_primaryinvestigator = "pi", + project_contactauthor = "coauthor", + # project_telescope="LOFAR", + project_description = "awesome project", + project_coinvestigators = ["sidekick1", "sidekick2"], + dataproduct = siplib.SimpleDataProduct( + siplib.DataProductMap( + type = "Unknown", + identifier = siplib.Identifier('test'), + size = 1024, + filename = "/home/paulus/test.h5", + fileformat = "HDF5", + storage_writer='LofarStorageManager', + storage_writer_version = 'storagewriterversion', + process_identifier = siplib.Identifier('test'), + checksum_md5 = "hash1", + checksum_adler32 = "hash2", + storageticket = "ticket" + ) ) ) - ) class TestSIPfeedback(unittest.TestCase): def test_basic_doc(self): # create example doc with mandatory attributes - print("===\nCreating basic document:\n") + logging.info("===\nCreating basic document:\n") mysip = create_basicdoc() mysip.save_to_file(TMPFILE_PATH) self.assertTrue(validator.validate(TMPFILE_PATH)) def test_dataproducts(self): - mysip = create_basicdoc() - print("===\nAdding related generic dataproduct:\n") - with open(FEEDBACK_PATH) as f: - text = f.readlines() - fb = feedback.Feedback(text) - pipe_label = siplib.Identifier('test') - dataproducts = fb.get_dataproducts(prefix = "test.prefix", process_identifier = pipe_label) - for dp in dataproducts: - print("...adding:", dp) - mysip.add_related_dataproduct(dp) - mysip.save_to_file(TMPFILE_PATH) - self.assertTrue(validator.validate(TMPFILE_PATH)) + with patch('lofar.lta.sip.siplib.query.client') as client_mock: + client_mock.GetUniqueID.return_value = id_response + mysip = create_basicdoc() + logging.info("===\nAdding related generic dataproduct:\n") + with open(FEEDBACK_PATH) as f: + text = f.readlines() + fb = feedback.Feedback(text) + pipe_label = siplib.Identifier('test') + dataproducts = fb.get_dataproducts(prefix = "test.prefix", process_identifier = pipe_label) + for dp in dataproducts: + logging.info("...adding:", dp) + mysip.add_related_dataproduct(dp) + + mysip.save_to_file(TMPFILE_PATH) + self.assertTrue(validator.validate(TMPFILE_PATH)) # run tests if main if __name__ == '__main__': diff --git a/LTA/sip/test/test_siplib.py b/LTA/sip/test/test_siplib.py index 944e1eeb8e6d58bae994d1d4e722ec5e699e0798..1efea2744c641e4bd5a32fecb71e8b09b1be7145 100755 --- a/LTA/sip/test/test_siplib.py +++ b/LTA/sip/test/test_siplib.py @@ -20,6 +20,8 @@ # $Id: $ import unittest +import uuid +from unittest.mock import patch try: import pyxb @@ -28,22 +30,36 @@ except ImportError as e: print('Please install python3 package pyxb: sudo apt-get install python3-pyxb') exit(3) # special lofar test exit code: skipped test -from lofar.lta.sip import siplib -from lofar.lta.sip import validator -from lofar.lta.sip import constants +from lofar.lta.sip import siplib, validator, constants, ltasip import os +import logging +logger = logging.getLogger(__name__) # d = os.path.dirname(os.path.realpath(__file__)) -TMPFILE_PATH = "/tmp/test_siplib.xml" -RELATEDSIP = '/tmp/sipfrommom.xml' # todo: how to deploy in testdir? +TMPFILE_PATH = "test_siplib.xml" +RELATEDSIP = 'sipfrommom.xml' + +id_response = {"version": "version", + "result": "ok", + "id": uuid.uuid1().int >> 64, + "user_label": None, + "data_type": "type", + "identifier_source": 'test', + "is_new": True, + "error": ''} + +with patch('lofar.lta.sip.siplib.query.client') as client_mock: + client_mock.GetUniqueID.return_value = id_response + dp_id = siplib.Identifier("test") + in_dpid1 = siplib.Identifier("test") + in_dpid2 = siplib.Identifier("test") + proc_id = siplib.Identifier("test") + pipe_id = siplib.Identifier("test") + obs_id = siplib.Identifier("test") + point_id = siplib.Identifier("test") + parset_id = siplib.Identifier("test") + sap_id = siplib.Identifier("test") -dp_id = siplib.Identifier("test") -in_dpid1 = siplib.Identifier("test") -in_dpid2 = siplib.Identifier("test") -proc_id = siplib.Identifier("test") -pipe_id = siplib.Identifier("test") -obs_id = siplib.Identifier("test") -point_id = siplib.Identifier("test") def create_basicdoc(): return siplib.Sip( @@ -60,6 +76,8 @@ def create_basicdoc(): size = 1024, filename = "/home/paulus/test.h5", fileformat = "HDF5", + storage_writer="Unknown", + storage_writer_version="Unknown", process_identifier = pipe_id, checksum_md5 = "hash1", checksum_adler32 = "hash2", @@ -76,13 +94,13 @@ def create_processmap(): duration = "P6Y3M10DT15H", identifier = proc_id, observation_identifier = obs_id, - parset_identifier = siplib.Identifier("test"), + parset_identifier = parset_id, relations = [ siplib.ProcessRelation( - identifier = siplib.Identifier("test"), + identifier = proc_id, ), siplib.ProcessRelation( - identifier = siplib.Identifier("test"), + identifier = obs_id, ) ] ) @@ -102,6 +120,8 @@ def create_dataproductmap(): size = 2048, filename = "/home/paulus/test.h5", fileformat = "HDF5", + storage_writer = "HDF5Default", + storage_writer_version = "Unknown", process_identifier = proc_id, ) @@ -109,24 +129,24 @@ class TestSIPlib(unittest.TestCase): def test_basic_doc(self): # create example doc with mandatory attributes - print("===\nCreating basic document:\n") + logger.info("===\nCreating basic document:\n") mysip = create_basicdoc() mysip.save_to_file(TMPFILE_PATH) self.assertTrue(validator.validate(TMPFILE_PATH)) def test_dataproducts(self): mysip = create_basicdoc() - print("===\nAdding related generic dataproduct:\n") + logger.info("===\nAdding related generic dataproduct:\n") # add optional dataproduct item - print(mysip.add_related_dataproduct( + logger.info(mysip.add_related_dataproduct( siplib.GenericDataProduct( create_dataproductmap() ) )) # add optional dataproduct item - print("===\nAdding related pulp summary dataproduct:\n") - print(mysip.add_related_dataproduct( + logger.info("===\nAdding related pulp summary dataproduct:\n") + logger.info(mysip.add_related_dataproduct( siplib.PulpSummaryDataProduct( create_dataproductmap(), filecontent = ["content_a", "content_b"], @@ -135,8 +155,8 @@ class TestSIPlib(unittest.TestCase): )) # add optional dataproduct item - print("===\nAdding related pulp dataproduct:\n") - print(mysip.add_related_dataproduct( + logger.info("===\nAdding related pulp dataproduct:\n") + logger.info(mysip.add_related_dataproduct( siplib.PulpDataProduct( create_dataproductmap(), filecontent = ["content_a", "content_b"], @@ -160,8 +180,8 @@ class TestSIPlib(unittest.TestCase): )) # add optional dataproduct item - print("===\nAdding related beamformed dataproduct:\n") - print(mysip.add_related_dataproduct( + logger.info("===\nAdding related beamformed dataproduct:\n") + logger.info(mysip.add_related_dataproduct( siplib.BeamFormedDataProduct( create_dataproductmap(), beams = [siplib.FlysEyeBeam( @@ -185,8 +205,8 @@ class TestSIPlib(unittest.TestCase): )) # add optional dataproduct item - print("===\nAdding related sky image dataproduct:\n") - print(mysip.add_related_dataproduct( + logger.info("===\nAdding related sky image dataproduct:\n") + logger.info(mysip.add_related_dataproduct( siplib.SkyImageDataProduct( create_dataproductmap(), numberofaxes = 2, @@ -278,11 +298,11 @@ class TestSIPlib(unittest.TestCase): )) # add optional dataproduct item - print("===\nAdded related correlated dataproduct:\n") - print(mysip.add_related_dataproduct( + logger.info("===\nAdded related correlated dataproduct:\n") + logger.info(mysip.add_related_dataproduct( siplib.CorrelatedDataProduct( create_dataproductmap(), - subarraypointing_identifier = siplib.Identifier("test"), + subarraypointing_identifier = sap_id, subband = "1", starttime = "1980-03-23T10:20:15", duration = "P6Y3M10DT15H", @@ -298,8 +318,8 @@ class TestSIPlib(unittest.TestCase): )) # add optional dataproduct item - print("===\nAdding related pixelmap dataproduct:\n") - print(mysip.add_related_dataproduct( + logger.info("===\nAdding related pixelmap dataproduct:\n") + logger.info(mysip.add_related_dataproduct( siplib.PixelMapDataProduct( create_dataproductmap(), numberofaxes = 5, @@ -318,8 +338,8 @@ class TestSIPlib(unittest.TestCase): )) # add optional dataproduct item - print("===\nAdding related pixelmap dataproduct using predefined constants:\n") - print(mysip.add_related_dataproduct( + logger.info("===\nAdding related pixelmap dataproduct using predefined constants:\n") + logger.info(mysip.add_related_dataproduct( siplib.SkyImageDataProduct( create_dataproductmap(), numberofaxes = 2, @@ -397,8 +417,8 @@ class TestSIPlib(unittest.TestCase): def test_observation(self): mysip = create_basicdoc() # add optional observation item - print("===\nAdding observation:\n") - print(mysip.add_observation(siplib.Observation(observingmode = "Interferometer", + logger.info("===\nAdding observation:\n") + logger.info(mysip.add_observation(siplib.Observation(observingmode = "Interferometer", instrumentfilter = "10-70 MHz", clock_frequency = '160', clock_frequencyunit = "MHz", @@ -436,7 +456,7 @@ class TestSIPlib(unittest.TestCase): numberofcorrelateddataproducts = 2, numberofbeamformeddataproducts = 1, relations = [siplib.ProcessRelation( - identifier = siplib.Identifier("test") + identifier = obs_id )], correlatorprocessing = siplib.CorrelatorProcessing( integrationinterval = 0.5, @@ -496,9 +516,9 @@ class TestSIPlib(unittest.TestCase): def test_parset(self): mysip = create_basicdoc() - print("===\nAdding parset:\n") - print(mysip.add_parset( - identifier = siplib.Identifier("test"), + logger.info("===\nAdding parset:\n") + logger.info(mysip.add_parset( + identifier = parset_id, contents = "blabla")) mysip.save_to_file(TMPFILE_PATH) @@ -506,8 +526,8 @@ class TestSIPlib(unittest.TestCase): def test_unspecifiedprocess(self): mysip = create_basicdoc() - print("===\nAdding unspecified process:\n") - print(mysip.add_unspecifiedprocess( + logger.info("===\nAdding unspecified process:\n") + logger.info(mysip.add_unspecifiedprocess( observingmode = "Interferometer", description = "unspecified", process_map = create_processmap() @@ -517,29 +537,29 @@ class TestSIPlib(unittest.TestCase): def test_pipelines(self): mysip = create_basicdoc() - print("===\nAdding simple pipelinerun:\n") - print(mysip.add_pipelinerun( + logger.info("===\nAdding simple pipelinerun:\n") + logger.info(mysip.add_pipelinerun( siplib.SimplePipeline( create_pipelinemap() ) )) - print("===\nAdding generic pipelinerun:\n") - print(mysip.add_pipelinerun( + logger.info("===\nAdding generic pipelinerun:\n") + logger.info(mysip.add_pipelinerun( siplib.GenericPipeline( create_pipelinemap() ) )) - print("===\nAdding cosmic ray pipelinerun:\n") - print(mysip.add_pipelinerun( + logger.info("===\nAdding cosmic ray pipelinerun:\n") + logger.info(mysip.add_pipelinerun( siplib.CosmicRayPipeline( create_pipelinemap() ) )) - print("===\nAdding long baseline pipelinerun:\n") - print(mysip.add_pipelinerun( + logger.info("===\nAdding long baseline pipelinerun:\n") + logger.info(mysip.add_pipelinerun( siplib.LongBaselinePipeline( create_pipelinemap(), subbandspersubbandgroup = 5, @@ -548,8 +568,8 @@ class TestSIPlib(unittest.TestCase): ) )) - print("===\nAdding imaging pipelinerun:\n") - print(mysip.add_pipelinerun(siplib.ImagingPipeline( + logger.info("===\nAdding imaging pipelinerun:\n") + logger.info(mysip.add_pipelinerun(siplib.ImagingPipeline( create_pipelinemap(), imagerintegrationtime = 10, imagerintegrationtime_unit = "ms", @@ -560,8 +580,8 @@ class TestSIPlib(unittest.TestCase): ) )) - print("===\nAdding calibration pipelinerun:\n") - print(mysip.add_pipelinerun( + logger.info("===\nAdding calibration pipelinerun:\n") + logger.info(mysip.add_pipelinerun( siplib.CalibrationPipeline( create_pipelinemap(), skymodeldatabase = "db", @@ -573,8 +593,8 @@ class TestSIPlib(unittest.TestCase): demixing = False ))) - print("===\nAdding averaging pipelinerun:\n") - print(mysip.add_pipelinerun( + logger.info("===\nAdding averaging pipelinerun:\n") + logger.info(mysip.add_pipelinerun( siplib.AveragingPipeline( create_pipelinemap(), numberofcorrelateddataproducts = 1, @@ -584,8 +604,8 @@ class TestSIPlib(unittest.TestCase): demixing = False ))) - print("===\nAdding pulsar pipelinerun:\n") - print(mysip.add_pipelinerun( + logger.info("===\nAdding pulsar pipelinerun:\n") + logger.info(mysip.add_pipelinerun( siplib.PulsarPipeline( create_pipelinemap(), pulsarselection = "Pulsars in observation specs, file and brightest in SAP and TAB", diff --git a/LTA/sip/test/test_validator.py b/LTA/sip/test/test_validator.py old mode 100644 new mode 100755 index 4a0571a2ea56a8b714db8a1071cbf859845b56ce..7becc673afb4bf68b199d472c3e5b0de89b0572e --- a/LTA/sip/test/test_validator.py +++ b/LTA/sip/test/test_validator.py @@ -29,12 +29,12 @@ except ImportError as e: import unittest from lofar.lta.sip import validator -VALIDFILE_PATH = "/tmp/valid_sip.xml" # todo: how to deploy in testdir? +VALIDFILE_PATH = "valid_sip.xml" class TestSIPvalidator(unittest.TestCase): def test_validate(self): self.assertTrue(validator.validate(VALIDFILE_PATH)) - self.assertTrue(validator.check_consistency(VALIDFILE_PATH)) + self.assertTrue(validator.check_consistency_of_file(VALIDFILE_PATH)) self.assertTrue(validator.main(VALIDFILE_PATH)) # run tests if main diff --git a/LTA/sip/test/test_visualizer.py b/LTA/sip/test/test_visualizer.py index aea9d5a4f675ef7c972a38ddd82bf0b59c31f7ab..9bfe15fbf8dc2d66f10a31be35a8da53c27df23a 100755 --- a/LTA/sip/test/test_visualizer.py +++ b/LTA/sip/test/test_visualizer.py @@ -32,7 +32,7 @@ import os from lofar.lta.sip import visualizer from lofar.lta.sip import ltasip -INPUTFILE_PATH = "/tmp/valid_sip.xml" +INPUTFILE_PATH = "valid_sip.xml" class TestSIPvisualizer(unittest.TestCase): def test_visualize(self): diff --git a/LTA/sip/test/testmetadata_file.Correlated.modified b/LTA/sip/test/testmetadata_file.Correlated.modified index 4d17a1d5f0f9a868f28730d6411846e6801684fc..10c5d9c38e09d825ecb2b8907315e152bbf0c32c 100644 --- a/LTA/sip/test/testmetadata_file.Correlated.modified +++ b/LTA/sip/test/testmetadata_file.Correlated.modified @@ -13,6 +13,8 @@ test.prefix.Output_Correlated_[0].size=1381625751 test.prefix.Output_Correlated_[0].startTime=2012-11-12T12:47:00.000 test.prefix.Output_Correlated_[0].stationSubband=0 test.prefix.Output_Correlated_[0].subband=0 +test.prefix.Output_Correlated_[0].storageWriter=LOFAR +test.prefix.Output_Correlated_[0].storageWriterVersion=Unknown test.prefix.Output_Correlated_[1].centralFrequency=119042968.75 test.prefix.Output_Correlated_[1].channelWidth=48828.125 test.prefix.Output_Correlated_[1].channelsPerSubband=8 @@ -28,4 +30,6 @@ test.prefix.Output_Correlated_[1].size=1381625751 test.prefix.Output_Correlated_[1].startTime=2012-11-12T12:47:00.000 test.prefix.Output_Correlated_[1].stationSubband=1 test.prefix.Output_Correlated_[1].subband=1 +test.prefix.Output_Correlated_[1].storageWriter=CASA +test.prefix.Output_Correlated_[1].storageWriterVersion=Unknown test.prefix.nrOfOutput_Correlated_=2 \ No newline at end of file diff --git a/LTA/sip/test/valid_sip.xml b/LTA/sip/test/valid_sip.xml index 85d46f18da0c8f8d7dcf79e24cd6590398a43d5a..3669be87820979bd2ac9237878f35540b62d4bd3 100644 --- a/LTA/sip/test/valid_sip.xml +++ b/LTA/sip/test/valid_sip.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <sip:ltaSip xmlns:sip="http://www.astron.nl/SIP-Lofar" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.astron.nl/SIP-Lofar LTA-SIP-2.6.0.xsd "> - <sipGeneratorVersion>Version v2.17.5 (29-08-2016)</sipGeneratorVersion> + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.astron.nl/SIP-Lofar LTA-SIP-2.7.2.xsd "> + <sipGeneratorVersion>Version v2.17.5 (29-08-2016) (modified by hand by JK, Aug 2020)</sipGeneratorVersion> <project> <projectCode>LC6_016</projectCode> <primaryInvestigator>Arias de Saavedra Benitez, Maria</primaryInvestigator> @@ -33,6 +33,8 @@ </checksum> <fileName>L527639_SB000_uv.dppp.MS_f43104ae.tar</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697902</identifier> @@ -1939,6 +1941,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB000_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -1969,6 +1973,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB001_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -1999,6 +2005,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB002_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2029,6 +2037,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB003_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2059,6 +2069,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB004_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2089,6 +2101,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB005_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2119,6 +2133,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB006_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2149,6 +2165,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB007_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2179,6 +2197,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB008_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2209,6 +2229,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB009_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2239,6 +2261,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB010_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2269,6 +2293,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB011_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2299,6 +2325,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB012_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2329,6 +2357,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB013_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2359,6 +2389,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB014_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2389,6 +2421,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB015_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2419,6 +2453,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB016_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2449,6 +2485,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB017_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2479,6 +2517,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB018_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2509,6 +2549,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB019_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2539,6 +2581,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB020_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2569,6 +2613,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB021_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2599,6 +2645,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB022_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2629,6 +2677,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB023_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2659,6 +2709,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB024_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2689,6 +2741,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB025_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2719,6 +2773,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB026_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2749,6 +2805,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB027_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2779,6 +2837,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB028_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2809,6 +2869,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB029_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2839,6 +2901,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB030_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2869,6 +2933,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB031_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2899,6 +2965,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB032_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2929,6 +2997,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB033_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2959,6 +3029,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB034_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -2989,6 +3061,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB035_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3019,6 +3093,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB036_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3049,6 +3125,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB037_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3079,6 +3157,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB038_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3109,6 +3189,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB039_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3139,6 +3221,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB040_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3169,6 +3253,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB041_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3199,6 +3285,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB042_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3229,6 +3317,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB043_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3259,6 +3349,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB044_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3289,6 +3381,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB045_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3319,6 +3413,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB046_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3349,6 +3445,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB047_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3379,6 +3477,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB048_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3409,6 +3509,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB049_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3439,6 +3541,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB050_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3469,6 +3573,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB051_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3499,6 +3605,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB052_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3529,6 +3637,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB053_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3559,6 +3669,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB054_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3589,6 +3701,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB055_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3619,6 +3733,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB056_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3649,6 +3765,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB057_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3679,6 +3797,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB058_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3709,6 +3829,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB059_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3739,6 +3861,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB060_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3769,6 +3893,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB061_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3799,6 +3925,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB062_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3829,6 +3957,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB063_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3859,6 +3989,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB064_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3889,6 +4021,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB065_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3919,6 +4053,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB066_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3949,6 +4085,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB067_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -3979,6 +4117,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB068_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4009,6 +4149,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB069_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4039,6 +4181,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB070_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4069,6 +4213,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB071_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4099,6 +4245,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB072_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4129,6 +4277,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB073_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4159,6 +4309,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB074_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4189,6 +4341,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB075_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4219,6 +4373,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB076_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4249,6 +4405,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB077_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4279,6 +4437,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB078_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4309,6 +4469,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB079_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4339,6 +4501,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB080_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4369,6 +4533,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB081_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4399,6 +4565,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB082_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4429,6 +4597,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB083_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4459,6 +4629,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB084_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4489,6 +4661,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB085_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4519,6 +4693,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB086_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4549,6 +4725,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB087_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4579,6 +4757,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB088_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4609,6 +4789,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB089_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4639,6 +4821,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB090_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4669,6 +4853,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB091_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4699,6 +4885,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB092_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4729,6 +4917,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB093_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4759,6 +4949,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB094_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4789,6 +4981,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB095_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4819,6 +5013,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB096_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4849,6 +5045,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB097_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4879,6 +5077,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB098_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4909,6 +5109,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB099_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4939,6 +5141,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB100_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4969,6 +5173,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB101_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -4999,6 +5205,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB102_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5029,6 +5237,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB103_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5059,6 +5269,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB104_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5089,6 +5301,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB105_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5119,6 +5333,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB106_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5149,6 +5365,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB107_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5179,6 +5397,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB108_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5209,6 +5429,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB109_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5239,6 +5461,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB110_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5269,6 +5493,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB111_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5299,6 +5525,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB112_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5329,6 +5557,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB113_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5359,6 +5589,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB114_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5389,6 +5621,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB115_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5419,6 +5653,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB116_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5449,6 +5685,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB117_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5479,6 +5717,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB118_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5509,6 +5749,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB119_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5539,6 +5781,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB120_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5569,6 +5813,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB121_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5599,6 +5845,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB122_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5629,6 +5877,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB123_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5659,6 +5909,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB124_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5689,6 +5941,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB125_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5719,6 +5973,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB126_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5749,6 +6005,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB127_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5779,6 +6037,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB128_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5809,6 +6069,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB129_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5839,6 +6101,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB130_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5869,6 +6133,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB131_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5899,6 +6165,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB132_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5929,6 +6197,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB133_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5959,6 +6229,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB134_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -5989,6 +6261,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB135_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6019,6 +6293,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB136_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6049,6 +6325,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB137_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6079,6 +6357,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB138_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6109,6 +6389,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB139_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6139,6 +6421,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB140_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6169,6 +6453,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB141_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6199,6 +6485,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB142_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6229,6 +6517,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB143_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6259,6 +6549,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB144_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6289,6 +6581,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB145_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6319,6 +6613,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB146_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6349,6 +6645,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB147_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6379,6 +6677,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB148_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6409,6 +6709,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB149_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6439,6 +6741,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB150_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6469,6 +6773,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB151_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6499,6 +6805,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB152_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6529,6 +6837,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB153_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6559,6 +6869,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB154_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6589,6 +6901,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB155_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6619,6 +6933,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB156_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6649,6 +6965,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB157_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6679,6 +6997,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB158_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6709,6 +7029,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB159_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6739,6 +7061,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB160_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6769,6 +7093,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB161_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6799,6 +7125,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB162_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6829,6 +7157,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB163_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6859,6 +7189,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB164_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6889,6 +7221,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB165_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6919,6 +7253,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB166_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6949,6 +7285,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB167_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -6979,6 +7317,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB168_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7009,6 +7349,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB169_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7039,6 +7381,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB170_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7069,6 +7413,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB171_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7099,6 +7445,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB172_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7129,6 +7477,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB173_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7159,6 +7509,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB174_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7189,6 +7541,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB175_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7219,6 +7573,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB176_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7249,6 +7605,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB177_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7279,6 +7637,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB178_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7309,6 +7669,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB179_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7339,6 +7701,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB180_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7369,6 +7733,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB181_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7399,6 +7765,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB182_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7429,6 +7797,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB183_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7459,6 +7829,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB184_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7489,6 +7861,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB185_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7519,6 +7893,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB186_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7549,6 +7925,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB187_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7579,6 +7957,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB188_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7609,6 +7989,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB189_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7639,6 +8021,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB190_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7669,6 +8053,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB191_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7699,6 +8085,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB192_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7729,6 +8117,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB193_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7759,6 +8149,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB194_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7789,6 +8181,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB195_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7819,6 +8213,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB196_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7849,6 +8245,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB197_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7879,6 +8277,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB198_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7909,6 +8309,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB199_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7939,6 +8341,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB200_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7969,6 +8373,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB201_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -7999,6 +8405,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB202_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8029,6 +8437,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB203_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8059,6 +8469,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB204_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8089,6 +8501,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB205_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8119,6 +8533,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB206_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8149,6 +8565,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB207_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8179,6 +8597,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB208_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8209,6 +8629,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB209_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8239,6 +8661,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB210_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8269,6 +8693,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB211_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8299,6 +8725,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB212_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8329,6 +8757,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB213_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8359,6 +8789,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB214_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8389,6 +8821,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB215_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8419,6 +8853,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB216_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8449,6 +8885,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB217_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8479,6 +8917,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB218_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8509,6 +8949,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB219_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8539,6 +8981,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB220_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8569,6 +9013,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB221_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8599,6 +9045,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB222_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8629,6 +9077,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB223_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8659,6 +9109,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB224_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8689,6 +9141,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB225_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8719,6 +9173,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB226_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8749,6 +9205,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB227_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8779,6 +9237,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB228_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8809,6 +9269,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB229_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8839,6 +9301,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB230_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8869,6 +9333,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB231_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8899,6 +9365,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB232_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8929,6 +9397,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB233_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8959,6 +9429,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB234_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -8989,6 +9461,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB235_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -9019,6 +9493,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB236_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -9049,6 +9525,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB237_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -9079,6 +9557,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB238_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -9109,6 +9589,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB239_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -9139,6 +9621,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB240_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -9169,6 +9653,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB241_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -9199,6 +9685,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB242_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> @@ -9229,6 +9717,8 @@ <size>29414318080</size> <fileName>L527637_SAP000_SB243_uv.MS</fileName> <fileFormat>AIPS++/CASA</fileFormat> + <storageWriter>LofarStorageManager</storageWriter> + <storageWriterVersion>LOFAR</storageWriterVersion> <processIdentifier> <source>MoM</source> <identifier>697899</identifier> diff --git a/SAS/TMSS/CMakeLists.txt b/SAS/TMSS/CMakeLists.txt index 668eefd608fd3c612bb660ba71ad1e5dee363d21..69ad4348c9afa07ccdea058b278c9e9caca995c1 100644 --- a/SAS/TMSS/CMakeLists.txt +++ b/SAS/TMSS/CMakeLists.txt @@ -1,6 +1,6 @@ -lofar_package(TMSS 0.1 DEPENDS PyCommon pyparameterset PyMessaging ResourceAssigner) +lofar_package(TMSS 0.1 DEPENDS PyCommon pyparameterset PyMessaging ResourceAssigner TaskPrescheduler sip) lofar_add_package(TMSSClient client) add_subdirectory(src) diff --git a/SAS/TMSS/client/lib/populate.py b/SAS/TMSS/client/lib/populate.py index 6e2eac8336d20ee7177b391f5706c490623a41e8..c0f2ce656c6abef7c4e4ebdc251b9d46915a0cd2 100644 --- a/SAS/TMSS/client/lib/populate.py +++ b/SAS/TMSS/client/lib/populate.py @@ -47,13 +47,24 @@ def populate_schemas(schema_dir: str=None, templates_filename: str=None): # override plain-text type by its url template['type'] = client.get_path_as_json_object('subtask_type/'+template.pop('type'))['url'] + if template_path == 'task_template' and 'type' in template: + # override plain-text type by its url + template['type'] = client.get_path_as_json_object('task_type/'+template.pop('type'))['url'] + + if template_path == 'scheduling_unit_observing_strategy_template': + template['template'] = json_schema + scheduling_unit_templates = client.get_path_as_json_object('scheduling_unit_template?name=' + template.pop('scheduling_unit_template_name') + '&version=' + template.pop('scheduling_unit_template_version')) + scheduling_unit_template = scheduling_unit_templates[0] + template['scheduling_unit_template'] = scheduling_unit_template['url'] + else: + template['schema'] = json_schema + logger.info("Uploading template template='%s' name='%s' version='%s'", template_path, name, version) client.post_template(template_path=template_path, name=name, description=description, version=version, - schema=json_schema, **template) except Exception as e: logger.error(e) diff --git a/SAS/TMSS/client/lib/tmss_http_rest_client.py b/SAS/TMSS/client/lib/tmss_http_rest_client.py index 80f63be08ff382aa18b6b3ac491a13467a68b855..4e889336bfe4b85a77c8833ac05296908654f2c6 100644 --- a/SAS/TMSS/client/lib/tmss_http_rest_client.py +++ b/SAS/TMSS/client/lib/tmss_http_rest_client.py @@ -158,7 +158,7 @@ class TMSSsession(object): def get_path_as_json_object(self, path: str, params={}) -> object: '''get resource at the given path, interpret it as json, and return it as as native object (usually a dict or a list of dicts)''' - full_url = '%s/%s/' % (self.base_url, path.strip('/')) + full_url = '%s/%s' % (self.base_url, path.strip('/')) return self.get_url_as_json_object(full_url, params=params) def get_url_as_json_object(self, full_url: str, params={}) -> object: @@ -169,7 +169,7 @@ class TMSSsession(object): if response.status_code >= 200 and response.status_code < 300: result = json.loads(response.content.decode('utf-8')) if isinstance(result, dict): - result_object = result.get('results', result) # return the 'results' list if any, or lese just the object itself + result_object = result.get('results', result) # return the 'results' list if any, or else just the object itself if result.get('next'): # recurse, get the 'next' url, and return a concatenation of the results @@ -178,7 +178,7 @@ class TMSSsession(object): return result # ugly error message parsing - content = response.content.decode('utf-8') + content = response.text try: error_msg = content.split('\n')[1] # magic! error message is at 2nd line of response... except: @@ -263,12 +263,15 @@ class TMSSsession(object): content = response.content.decode('utf-8') raise Exception("Could not set status with url %s - %s %s - %s" % (response.request.url, response.status_code, responses.get(response.status_code), content)) - def post_template(self, template_path:str, name: str, description: str, version: str, schema: str, **kwargs): + def post_template(self, template_path:str, name: str, description: str, version: str, schema: str=None, template: str=None, **kwargs): '''POST a template at <BASE_URL>/<template_path> with the given name, description and version''' json_data = {'name': name, 'description': description, - 'version': version, - 'schema': json.loads(schema) if isinstance(schema, str) else schema} + 'version': version} + if schema is not None: + json_data['schema'] = json.loads(schema) if isinstance(schema, str) else schema + if template is not None: + json_data['template'] = json.loads(template) if isinstance(template, str) else template json_data.update(**kwargs) response = self.session.post(url='%s/%s/' % (self.base_url, template_path), json=json_data) diff --git a/SAS/TMSS/docker-compose-ua.yml b/SAS/TMSS/docker-compose-ua.yml index 92097328364f16615a1a435ad1d3a6b61a046f43..74752f8596f9daa35763a85b7f5e355288b38cbd 100644 --- a/SAS/TMSS/docker-compose-ua.yml +++ b/SAS/TMSS/docker-compose-ua.yml @@ -1,18 +1,25 @@ # This docker-compose is used to run TMSS together with a test open ID connect server on the User Acceptance system (tmss-ua) version: "3" services: - web: - image: nexus.cep4.control.lofar:18080/tmss_django:latest - restart: on-failure - env_file: - - ./.env - command: bash -c 'source /opt/lofar/lofarinit.sh && python3 lib/python3.6/site-packages/lofar/sas/tmss/manage.py runserver 0.0.0.0:8008' + rabbitmq: + image: rabbitmq:latest + hostname: rabbitmq ports: - - "8008:8008" - testprovider: + - 5672:5672 + - 15672:15672 + oidc-provider: image: nexus.cep4.control.lofar:18080/tmss_testprovider:latest restart: unless-stopped + hostname: oidc-provider env_file: - ./.env ports: - "8088:8088" + web: + image: nexus.cep4.control.lofar:18080/tmss_django:latest + restart: on-failure + env_file: + - ./.env + command: bash -c 'source /opt/lofar/lofarinit.sh && python3 lib64/python3.6/site-packages/lofar/sas/tmss/manage.py runserver 0.0.0.0:8008' + ports: + - "8008:8008" diff --git a/SAS/TMSS/frontend/CMakeLists.txt b/SAS/TMSS/frontend/CMakeLists.txt index b4a09541f6dd24d668847a68334265259315bcef..cb74bd697d19246e5b3467bc7fa6f874498791c8 100644 --- a/SAS/TMSS/frontend/CMakeLists.txt +++ b/SAS/TMSS/frontend/CMakeLists.txt @@ -1 +1,2 @@ -add_subdirectory(frontend_poc) \ No newline at end of file +# add_subdirectory(frontend_poc) +add_subdirectory(tmss_webapp) diff --git a/SAS/TMSS/frontend/tmss_webapp/.env b/SAS/TMSS/frontend/tmss_webapp/.env new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/SAS/TMSS/frontend/tmss_webapp/CMakeLists.txt b/SAS/TMSS/frontend/tmss_webapp/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..b20842bcefd3a4313c19ad5e7001a2f9b9175aac --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/CMakeLists.txt @@ -0,0 +1,2 @@ +include(NPMInstall) +npm_install(package.json PUBLIC public SOURCE src DESTINATION ${PYTHON_INSTALL_DIR}/lofar/sas/frontend/tmss_webapp/build) diff --git a/SAS/TMSS/frontend/tmss_webapp/package.json b/SAS/TMSS/frontend/tmss_webapp/package.json index b5328e779ebfa77c91b24d16cf90c040bc06e3a4..b8a53534056c2171aa2bddc4e885529473f5ef16 100644 --- a/SAS/TMSS/frontend/tmss_webapp/package.json +++ b/SAS/TMSS/frontend/tmss_webapp/package.json @@ -3,17 +3,25 @@ "version": "0.1.0", "private": true, "dependencies": { + "@fortawesome/fontawesome-free": "^5.13.1", "@json-editor/json-editor": "^2.3.0", "@testing-library/jest-dom": "^4.2.4", "@testing-library/react": "^9.3.2", "@testing-library/user-event": "^7.1.2", "axios": "^0.19.2", + "bootstrap": "^4.5.0", + "cleave.js": "^1.6.0", + "flatpickr": "^4.6.3", "font-awesome": "^4.7.0", "history": "^5.0.0", + "lodash": "^4.17.19", + "match-sorter": "^4.1.0", + "moment": "^2.27.0", "node-sass": "^4.12.0", "primeflex": "^1.3.0", "primeicons": "^4.0.0", "primereact": "^4.2.2", + "prop-types": "^15.7.2", "react": "^16.13.1", "react-app-polyfill": "^1.0.6", "react-bootstrap": "^1.0.1", @@ -21,9 +29,13 @@ "react-dom": "^16.13.1", "react-frame-component": "^4.1.2", "react-json-view": "^1.19.1", + "react-loader-spinner": "^3.1.14", "react-router-dom": "^5.2.0", - "react-scripts": "3.4.1", - "react-transition-group": "^1.2.1", + "react-scripts": "^3.4.2", + "react-table": "^7.2.1", + "react-transition-group": "^2.5.1", + "reactstrap": "^8.5.1", + "styled-components": "^5.1.1", "typescript": "^3.9.5", "yup": "^0.29.1" }, @@ -33,6 +45,7 @@ "test": "react-scripts test", "eject": "react-scripts eject" }, + "proxy": "http://127.0.0.1:8008/", "eslintConfig": { "extends": "react-app" }, @@ -47,5 +60,10 @@ "last 1 firefox version", "last 1 safari version" ] + }, + "devDependencies": { + "customize-cra": "^0.9.1", + "react-app-rewired": "^1.6.2", + "babel-polyfill": "^6.26.0" } } diff --git a/SAS/TMSS/frontend/tmss_webapp/public/manifest.json b/SAS/TMSS/frontend/tmss_webapp/public/manifest.json index 080d6c77ac21bb2ef88a6992b2b73ad93daaca92..1f2f141fafdeb1d31d85b008ec5132840c5e6362 100644 --- a/SAS/TMSS/frontend/tmss_webapp/public/manifest.json +++ b/SAS/TMSS/frontend/tmss_webapp/public/manifest.json @@ -6,16 +6,6 @@ "src": "favicon.ico", "sizes": "64x64 32x32 24x24 16x16", "type": "image/x-icon" - }, - { - "src": "logo192.png", - "type": "image/png", - "sizes": "192x192" - }, - { - "src": "logo512.png", - "type": "image/png", - "sizes": "512x512" } ], "start_url": ".", diff --git a/SAS/TMSS/frontend/tmss_webapp/src/App.css b/SAS/TMSS/frontend/tmss_webapp/src/App.css index 18ccb9475ca09cfadf5cd73e300c156090c9812f..766fff47baad6747a35c03a164125f8d181f5956 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/App.css +++ b/SAS/TMSS/frontend/tmss_webapp/src/App.css @@ -29,6 +29,177 @@ color: #61dafb; } +label { + font-size: 14px; + font-weight: 600; + align-items: flex-start !important; + color: #004B93; + margin-bottom: 10px; +} + +h2, .h2 { + font-size: 1.5rem; +} + +h3, .h3 { + font-size: 1.25rem; +} + +h5, .h5 { + font-size: 15px !important; +} + +a{ + margin-bottom: 10px; +} + +.main-content span,a{ + font-size: 14px; +} + +#editor_holder { + padding: 0px 10px; +} + +.chips-readonly > ul { + border: none; +} + +p { + font-size: 14px; +} + +.card { + border: none; +} + +.card-title { + margin-bottom: 0.5rem; +} + +.card-body { + padding: 0.25rem; + margin-bottom: 5px !important; +} + +.form-group { + margin-bottom: 5px !important; +} + +.btn-group { + margin-bottom: 5px; +} + +.p-field { + margin-bottom: 0.5rem; +} + +.p-inputtext { + padding-top: 0.25em !important; + padding-bottom: 0.25em !important; + padding-left: 0.25em !important; +} + +.act-btn-grp { + margin-top: 20px; +} + +.task-list { + padding-inline-start: 0px; +} + +.task-list > li { + list-style: none; +} + +.col-filter-btn { + margin-left: 15px; + padding-top: 5px; + cursor: pointer; +} + +#editor_holder label { + text-transform: capitalize; + color: #28289b; +} + +.p-multiselect-label { + margin-bottom: 0px; +} + +.resource-input-grid div { + margin-bottom: 1rem; +} + +.layout-main .fa { + color: #005b9f; + font-size: 20px; +} + +thead { + background-color: #ebeaea; +} + +.error { + color: #dc3545; + font-size: 80%; + font-weight: 400; +} + +.info { + color: #b4b2b2; + font-size: 80%; + font-weight: 400; +} + +.input-error { + border-color: #dc3545 !important; +} + +.p-tooltip-custom .p-tooltip-text { + /* background-color: #49b0ff !important; */ +} + +.p-link:focus { + box-shadow: none !important; +} + +.pi-primary { + color: #007ad9; +} + +.pi-warning { + color: #ffba01; +} + +.pi-success { + color: #34A835; +} + +.pi-info { + color: #008fba; +} + +.pi-error { + color: #e91224; +} + +.pi-small { + font-size: rem !important; +} + +.pi-medium { + font-size: 1.5rem !important; +} + +.pi-large { + font-size: 2rem !important; +} + +.pi-x-large { + font-size: 3rem !important; +} + @keyframes App-logo-spin { from { transform: rotate(0deg); diff --git a/SAS/TMSS/frontend/tmss_webapp/src/App.js b/SAS/TMSS/frontend/tmss_webapp/src/App.js index 0d607d738c330273f30c7f9dc5a6421c4a0069c7..af0b8d760c3c17348d38f349362ee983a10dbc1b 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/App.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/App.js @@ -1,60 +1,123 @@ import React, {Component} from 'react'; import { BrowserRouter as Router } from 'react-router-dom'; - +import classNames from 'classnames'; import {AppTopbar} from './layout/components/AppTopbar'; import {AppMenu} from './layout/components/AppMenu'; -import { AppFooter } from './layout/components/AppFooter'; +import {AppFooter } from './layout/components/AppFooter'; import {RoutedContent} from './routes'; +import {AppBreadcrumb } from "./layout/components/AppBreadcrumb"; +import {withRouter } from 'react-router'; -// import {Dashboard} from './routes/dashboard/dashboard'; - +import 'primeicons/primeicons.css'; +import 'primereact/resources/themes/nova-light/theme.css'; +import 'primereact/resources/primereact.css'; import './layout/layout.scss'; -// import './App.css'; - +import 'primeflex/primeflex.css'; +import './App.scss'; +import './App.css'; class App extends Component { - - constructor() { + constructor() { super(); this.state = { + layoutMode: 'static', currentMenu: '', - currentPath: '/' - } - this.onMenuItemClick = this.onMenuItemClick.bind(this) - this.menu = [ + currentPath: '/', + staticMenuInactive: false, + overlayMenuActive: false, + mobileMenuActive: false, + }; + this.onWrapperClick = this.onWrapperClick.bind(this); + this.onToggleMenu = this.onToggleMenu.bind(this); + this.onSidebarClick = this.onSidebarClick.bind(this); + this.onMenuItemClick = this.onMenuItemClick.bind(this); + + this.menu = [ {label: 'Dashboard', icon: 'pi pi-fw pi-home', to:'/dashboard'}, - {label: 'Scheduling Units', icon: 'pi pi-fw pi-calendar', to:'/scheduling'} + {label: 'Cycle', icon:'pi pi-fw pi-spinner', to:'/cycle'}, + {label: 'Project', icon: 'fab fa-fw fa-wpexplorer', to:'/project'}, + {label: 'Scheduling Units', icon: 'pi pi-fw pi-calendar', to:'/schedulingunit'}, + // {label: 'Tasks', icon: 'pi pi-fw pi-check-square', to:'/task'}, + + ]; // this.menuComponent = {'Dashboard': Dashboard} } + + onWrapperClick(event) { + if (!this.menuClick) { + this.setState({ + overlayMenuActive: false, + mobileMenuActive: false + }); + } - onMenuItemClick(event) { - console.log(event); - this.setState({currentMenu:event.item.label, currentPath: event.item.path}); - } + this.menuClick = false; + } + onToggleMenu(event) { + this.menuClick = true; + if (this.isDesktop()) { + if (this.state.layoutMode === 'overlay') { + this.setState({ + overlayMenuActive: !this.state.overlayMenuActive + }); + } + else if (this.state.layoutMode === 'static') { + this.setState({ + staticMenuInactive: !this.state.staticMenuInactive + }); + } + } + else { + const mobileMenuActive = this.state.mobileMenuActive; + this.setState({ + mobileMenuActive: !mobileMenuActive + }); + } + event.preventDefault(); + } + + onSidebarClick(event) { + this.menuClick = true; + } + + onMenuItemClick(event) { + this.setState({currentMenu:event.item.label, currentPath: event.item.path}); + } + + isDesktop() { + return window.innerWidth > 1024; + } + render() { - return ( + const wrapperClass = classNames('layout-wrapper', { + 'layout-overlay': this.state.layoutMode === 'overlay', + 'layout-static': this.state.layoutMode === 'static', + 'layout-static-sidebar-inactive': this.state.staticMenuInactive && this.state.layoutMode === 'static', + 'layout-overlay-sidebar-active': this.state.overlayMenuActive && this.state.layoutMode === 'overlay', + 'layout-mobile-sidebar-active': this.state.mobileMenuActive + }); + const AppBreadCrumbWithRouter = withRouter(AppBreadcrumb); + + return ( <React.Fragment> - <div className="App"> - - <AppTopbar></AppTopbar> - <Router basename={ this.state.currentPath }> - <AppMenu model={this.menu} onMenuItemClick={this.onMenuItemClick} /> - <div className="layout-wrapper layout-static layout-static-sidebar-active"> + <div className="App"> + {/* <div className={wrapperClass} onClick={this.onWrapperClick}> */} + <div className={wrapperClass}> + <AppTopbar onToggleMenu={this.onToggleMenu}></AppTopbar> + <Router basename={ this.state.currentPath }> + <AppMenu model={this.menu} onMenuItemClick={this.onMenuItemClick} /> <div className="layout-main"> - - <RoutedContent /> - + <AppBreadCrumbWithRouter/> + <RoutedContent /> </div> + </Router> + <AppFooter></AppFooter> + </div> </div> - </Router> - <AppFooter></AppFooter> - - - </div> - </React.Fragment> + </React.Fragment> ); } } diff --git a/SAS/TMSS/frontend/tmss_webapp/src/App.scss b/SAS/TMSS/frontend/tmss_webapp/src/App.scss new file mode 100644 index 0000000000000000000000000000000000000000..93c4b1c7a72602ac2fa3e7d2a16fd445736e30e9 --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/App.scss @@ -0,0 +1 @@ +@import "~bootstrap/scss/bootstrap"; \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/__mocks__/cycle.service.data.js b/SAS/TMSS/frontend/tmss_webapp/src/__mocks__/cycle.service.data.js new file mode 100644 index 0000000000000000000000000000000000000000..f1542016c49e26279f873ee947f1e46ab89325cf --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/__mocks__/cycle.service.data.js @@ -0,0 +1,483 @@ + +const CycleServiceMock= { + project_categories: [{url: "Regular", value: 'Regular'}, {url: "User Shared Support", value: 'User Shared Support'}], + period_categories: [{url: "Single Cycle", value: 'Single Cycle'}, {url: "Long Term", value: 'Long Term'}], + resources: [{ + "name": "LOFAR Observing Time", + "url": "http://localhost:3000/api/resource_type/LOFAR%20Observing%20Time/", + "created_at": "2020-07-29T07:31:21.708296", + "description": "LOFAR Observing Time", + "resource_unit": "http://localhost:3000/api/resource_unit/second/", + "resource_unit_id": "second", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:21.708316", + "resourceUnit": { + "name": "second", + "url": "http://localhost:3000/api/resource_unit/second/", + "created_at": "2020-07-29T07:31:21.070088", + "description": "Unit of time or duration", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:21.070114" + } + }, + { + "name": "LOFAR Observing Time prio A", + "url": "http://localhost:3000/api/resource_type/LOFAR%20Observing%20Time%20prio%20A/", + "created_at": "2020-07-29T07:31:21.827537", + "description": "LOFAR Observing Time prio A", + "resource_unit": "http://localhost:3000/api/resource_unit/second/", + "resource_unit_id": "second", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:21.827675", + "resourceUnit": { + "name": "second", + "url": "http://localhost:3000/api/resource_unit/second/", + "created_at": "2020-07-29T07:31:21.070088", + "description": "Unit of time or duration", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:21.070114" + } + }, + { + "name": "LOFAR Observing Time prio B", + "url": "http://localhost:3000/api/resource_type/LOFAR%20Observing%20Time%20prio%20B/", + "created_at": "2020-07-29T07:31:21.950948", + "description": "LOFAR Observing Time prio B", + "resource_unit": "http://localhost:3000/api/resource_unit/second/", + "resource_unit_id": "second", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:21.950968", + "resourceUnit": { + "name": "second", + "url": "http://localhost:3000/api/resource_unit/second/", + "created_at": "2020-07-29T07:31:21.070088", + "description": "Unit of time or duration", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:21.070114" + } + }, + { + "name": "CEP Processing Time", + "url": "http://localhost:3000/api/resource_type/CEP%20Processing%20Time/", + "created_at": "2020-07-29T07:31:22.097916", + "description": "CEP Processing Time", + "resource_unit": "http://localhost:3000/api/resource_unit/second/", + "resource_unit_id": "second", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:22.097941", + "resourceUnit": { + "name": "second", + "url": "http://localhost:3000/api/resource_unit/second/", + "created_at": "2020-07-29T07:31:21.070088", + "description": "Unit of time or duration", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:21.070114" + } + }, + { + "name": "LTA Storage", + "url": "http://localhost:3000/api/resource_type/LTA%20Storage/", + "created_at": "2020-07-29T07:31:22.210071", + "description": "LTA Storage", + "resource_unit": "http://localhost:3000/api/resource_unit/byte/", + "resource_unit_id": "byte", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:22.210091", + "resourceUnit": { + "name": "byte", + "url": "http://localhost:3000/api/resource_unit/byte/", + "created_at": "2020-07-29T07:31:21.500997", + "description": "Unit of data storage", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:21.501028" + } + }, + { + "name": "Number of triggers", + "url": "http://localhost:3000/api/resource_type/Number%20of%20triggers/", + "created_at": "2020-07-29T07:31:22.317313", + "description": "Number of triggers", + "resource_unit": "http://localhost:3000/api/resource_unit/number/", + "resource_unit_id": "number", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:22.317341", + "resourceUnit": { + "name": "number", + "url": "http://localhost:3000/api/resource_unit/number/", + "created_at": "2020-07-29T07:31:21.596364", + "description": "Unit of count", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:21.596385" + } + }, + { + "name": "LOFAR Support Time", + "url": "http://localhost:3000/api/resource_type/LOFAR%20Support%20Time/", + "created_at": "2020-07-29T07:31:22.437945", + "description": "LOFAR Support Time", + "resource_unit": "http://localhost:3000/api/resource_unit/second/", + "resource_unit_id": "second", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:22.437964", + "resourceUnit": { + "name": "second", + "url": "http://localhost:3000/api/resource_unit/second/", + "created_at": "2020-07-29T07:31:21.070088", + "description": "Unit of time or duration", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:21.070114" + } + }, + { + "name": "LOFAR Support hours", + "url": "http://localhost:3000/api/resource_type/LOFAR%20Support%20hours/", + "created_at": "2020-07-29T07:31:22.571850", + "description": "LOFAR Support hours", + "resource_unit": "http://localhost:3000/api/resource_unit/second/", + "resource_unit_id": "second", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:22.571869", + "resourceUnit": { + "name": "second", + "url": "http://localhost:3000/api/resource_unit/second/", + "created_at": "2020-07-29T07:31:21.070088", + "description": "Unit of time or duration", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:21.070114" + } + }, + { + "name": "Support hours", + "url": "http://localhost:3000/api/resource_type/Support%20hours/", + "created_at": "2020-07-29T07:31:22.694438", + "description": "Support hours", + "resource_unit": "http://localhost:3000/api/resource_unit/second/", + "resource_unit_id": "second", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:22.694514", + "resourceUnit": { + "name": "second", + "url": "http://localhost:3000/api/resource_unit/second/", + "created_at": "2020-07-29T07:31:21.070088", + "description": "Unit of time or duration", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:21.070114" + } + } + ], + projectResourceDefaults: { + 'LOFAR Observing Time': 3600, + 'LOFAR Observing Time prio A': 3600, + 'LOFAR Observing Time prio B': 3600, + 'CEP Processing Time': 3600, + 'LTA Storage': 1024*1024*1024*1024, + 'Number of triggers': 1, + 'LOFAR Support Time': 3600 + }, + cycle: [{ + "name": "test7", + "url": "http://192.168.99.100:8008/api/cycle/test7/", + "created_at": "2020-08-10T11:50:15.427875", + "description": "test7", + "duration": 1778443.978, + "projects": [], + "projects_ids": [], + "quota": [ + "http://192.168.99.100:8008/api/cycle_quota/136/" + ], + "quota_ids": [ + 136 + ], + "start": "2020-08-10T14:49:11.405000", + "stop": "2020-08-31T04:49:55.383000", + "tags": [], + "updated_at": "2020-08-10T11:50:15.427895" + }], + cycleQuota: [ + { + "id": 1, + "url": "http://192.168.99.100:8008/api/cycle_quota/1/", + "cycle": "http://192.168.99.100:8008/api/cycle/Cycle%2000/", + "cycle_id": "Cycle 00", + "resource_type": "http://192.168.99.100:8008/api/resource_type/observing_time/", + "resource_type_id": "observing_time", + "value": 10575360 + }, + { + "id": 2, + "url": "http://192.168.99.100:8008/api/cycle_quota/2/", + "cycle": "http://192.168.99.100:8008/api/cycle/Cycle%2000/", + "cycle_id": "Cycle 00", + "resource_type": "http://192.168.99.100:8008/api/resource_type/cep_processing_time/", + "resource_type_id": "cep_processing_time", + "value": 10575360 + }, + { + "id": 3, + "url": "http://192.168.99.100:8008/api/cycle_quota/3/", + "cycle": "http://192.168.99.100:8008/api/cycle/Cycle%2000/", + "cycle_id": "Cycle 00", + "resource_type": "http://192.168.99.100:8008/api/resource_type/lta_storage/", + "resource_type_id": "lta_storage", + "value": 0 + }, + { + "id": 4, + "url": "http://192.168.99.100:8008/api/cycle_quota/4/", + "cycle": "http://192.168.99.100:8008/api/cycle/Cycle%2000/", + "cycle_id": "Cycle 00", + "resource_type": "http://192.168.99.100:8008/api/resource_type/support_time/", + "resource_type_id": "support_time", + "value": 0 + }, + { + "id": 5, + "url": "http://192.168.99.100:8008/api/cycle_quota/5/", + "cycle": "http://192.168.99.100:8008/api/cycle/Cycle%2000/", + "cycle_id": "Cycle 00", + "resource_type": "http://192.168.99.100:8008/api/resource_type/observing_time_commissioning/", + "resource_type_id": "observing_time_commissioning", + "value": 660960 + }, + { + "id": 6, + "url": "http://192.168.99.100:8008/api/cycle_quota/6/", + "cycle": "http://192.168.99.100:8008/api/cycle/Cycle%2000/", + "cycle_id": "Cycle 00", + "resource_type": "http://192.168.99.100:8008/api/resource_type/observing_time_prio_a/", + "resource_type_id": "observing_time_prio_a", + "value": 0 + }, + { + "id": 7, + "url": "http://192.168.99.100:8008/api/cycle_quota/7/", + "cycle": "http://192.168.99.100:8008/api/cycle/Cycle%2000/", + "cycle_id": "Cycle 00", + "resource_type": "http://192.168.99.100:8008/api/resource_type/observing_time_prio_b/", + "resource_type_id": "observing_time_prio_b", + "value": 0 + }, + { + "id": 8, + "url": "http://192.168.99.100:8008/api/cycle_quota/8/", + "cycle": "http://192.168.99.100:8008/api/cycle/Cycle%2001/", + "cycle_id": "Cycle 01", + "resource_type": "http://192.168.99.100:8008/api/resource_type/observing_time/", + "resource_type_id": "observing_time", + "value": 14653440 + }, + { + "id": 9, + "url": "http://192.168.99.100:8008/api/cycle_quota/9/", + "cycle": "http://192.168.99.100:8008/api/cycle/Cycle%2001/", + "cycle_id": "Cycle 01", + "resource_type": "http://192.168.99.100:8008/api/resource_type/cep_processing_time/", + "resource_type_id": "cep_processing_time", + "value": 14653440 + }, + { + "id": 10, + "url": "http://192.168.99.100:8008/api/cycle_quota/10/", + "cycle": "http://192.168.99.100:8008/api/cycle/Cycle%2001/", + "cycle_id": "Cycle 01", + "resource_type": "http://192.168.99.100:8008/api/resource_type/lta_storage/", + "resource_type_id": "lta_storage", + "value": 0 + }, + { + "id": 11, + "url": "http://192.168.99.100:8008/api/cycle_quota/11/", + "cycle": "http://192.168.99.100:8008/api/cycle/Cycle%2001/", + "cycle_id": "Cycle 01", + "resource_type": "http://192.168.99.100:8008/api/resource_type/support_time/", + "resource_type_id": "support_time", + "value": 0 + }, + { + "id": 12, + "url": "http://192.168.99.100:8008/api/cycle_quota/12/", + "cycle": "http://192.168.99.100:8008/api/cycle/Cycle%2001/", + "cycle_id": "Cycle 01", + "resource_type": "http://192.168.99.100:8008/api/resource_type/observing_time_commissioning/", + "resource_type_id": "observing_time_commissioning", + "value": 915840 + } + ], + getProjects: { + "results": [{ + "name": "TMSS-Commissioning", + "cycles_ids": ["Cycle 14"], + "private_data": true, + "project_category": null, + "project_category_value": null + }] + }, + getCycleQuota: { + "results": [{ + "id": 1, + "url": "http://localhost:3000/api/cycle_quota/1/", + "cycle": "http://localhost:3000/api/cycle/Cycle%2000/", + "cycle_id": "Cycle 00", + "resource_type": "http://localhost:3000/api/resource_type/observing_time/", + "resource_type_id": "observing_time", + "value": 10575360.0 + },{ + "cycle": "http://localhost:3000/api/cycle/Cycle%2000/", + "cycle_id": "Cycle 00", + "id": 5, + "resource_type": "http://localhost:3000/api/resource_type/observing_time_commissioning/", + "resource_type_id": "observing_time_commissioning", + "url": "http://localhost:3000/api/cycle_quota/5/", + "value": 660960 + }] + }, + getAllCycle: { + "results": [{ + "name": "Cycle 00", + "url": "http://localhost:3000/api/cycle/Cycle%2000/", + "created_at": "2020-08-06T12:06:09.074400", + "description": "Lofar Cycle 0", + "duration": 13219200.0, + "projects": [], + "projects_ids": [], + "quota": ["http://localhost:3000/api/cycle_quota/1/", "http://localhost:3000/api/cycle_quota/2/", "http://localhost:3000/api/cycle_quota/3/", "http://localhost:3000/api/cycle_quota/4/", "http://localhost:3000/api/cycle_quota/5/", "http://localhost:3000/api/cycle_quota/6/", "http://localhost:3000/api/cycle_quota/7/"], + "quota_ids": [1, 2, 3, 4, 5, 6, 7], + "start": "2013-06-01T00:00:00", + "stop": "2013-11-01T00:00:00", + "tags": [], + "updated_at": "2020-08-06T12:06:09.074437" + }, { + "name": "Cycle 01", + "url": "http://localhost:3000/api/cycle/Cycle%2001/", + "created_at": "2020-08-06T12:06:09.093253", + "description": "Lofar Cycle 1", + "duration": 18316800.0, + "projects": [], + "projects_ids": [], + "quota": ["http://localhost:3000/api/cycle_quota/8/", "http://localhost:3000/api/cycle_quota/9/", "http://localhost:3000/api/cycle_quota/10/", "http://localhost:3000/api/cycle_quota/11/", "http://localhost:3000/api/cycle_quota/12/", "http://localhost:3000/api/cycle_quota/13/", "http://localhost:3000/api/cycle_quota/14/"], + "quota_ids": [8, 9, 10, 11, 12, 13, 14], + "start": "2013-11-01T00:00:00", + "stop": "2014-06-01T00:00:00", + "tags": [], + "updated_at": "2020-08-06T12:06:09.093283" + }, { + "name": "Cycle 02", + "url": "http://localhost:3000/api/cycle/Cycle%2002/", + "created_at": "2020-08-06T12:06:09.107204", + "description": "Lofar Cycle 2", + "duration": 13219200.0, + "projects": [], + "projects_ids": [], + "quota": ["http://localhost:3000/api/cycle_quota/15/", "http://localhost:3000/api/cycle_quota/16/", "http://localhost:3000/api/cycle_quota/17/", "http://localhost:3000/api/cycle_quota/18/", "http://localhost:3000/api/cycle_quota/19/", "http://localhost:3000/api/cycle_quota/20/", "http://localhost:3000/api/cycle_quota/21/"], + "quota_ids": [15, 16, 17, 18, 19, 20, 21], + "start": "2014-06-01T00:00:00", + "stop": "2014-11-01T00:00:00", + "tags": [], + "updated_at": "2020-08-06T12:06:09.107234" + }] + }, + getresources: { + "results": [{ + "name": "lta_storage", + "url": "http://localhost:3000/api/resource_type/lta_storage/", + "created_at": "2020-08-10T11:33:27.742938", + "description": "Amount of storage in the LTA (in bytes)", + "quantity": "http://localhost:3000/api/quantity/bytes/", + "quantity_value": "bytes", + "tags": [], + "updated_at": "2020-08-10T11:33:27.742956" + }, { + "name": "cep_storage", + "url": "http://localhost:3000/api/resource_type/cep_storage/", + "created_at": "2020-08-10T11:33:27.747482", + "description": "Amount of storage on the CEP processing cluster (in bytes)", + "quantity": "http://localhost:3000/api/quantity/bytes/", + "quantity_value": "bytes", + "tags": [], + "updated_at": "2020-08-10T11:33:27.747498" + }, { + "name": "cep_processing_time", + "url": "http://localhost:3000/api/resource_type/cep_processing_time/", + "created_at": "2020-08-10T11:33:27.751195", + "description": "Processing time on the CEP processing cluster (in seconds)", + "quantity": "http://localhost:3000/api/quantity/time/", + "quantity_value": "time", + "tags": [], + "updated_at": "2020-08-10T11:33:27.751218" + }, { + "name": "observing_time", + "url": "http://localhost:3000/api/resource_type/observing_time/", + "created_at": "2020-08-10T11:33:27.754681", + "description": "Observing time (in seconds)", + "quantity": "http://localhost:3000/api/quantity/time/", + "quantity_value": "time", + "tags": [], + "updated_at": "2020-08-10T11:33:27.754705" + }, { + "name": "observing_time_prio_a", + "url": "http://localhost:3000/api/resource_type/observing_time_prio_a/", + "created_at": "2020-08-10T11:33:27.758486", + "description": "Observing time with priority A (in seconds)", + "quantity": "http://localhost:3000/api/quantity/time/", + "quantity_value": "time", + "tags": [], + "updated_at": "2020-08-10T11:33:27.758511" + }, { + "name": "observing_time_prio_b", + "url": "http://localhost:3000/api/resource_type/observing_time_prio_b/", + "created_at": "2020-08-10T11:33:27.762276", + "description": "Observing time with priority B (in seconds)", + "quantity": "http://localhost:3000/api/quantity/time/", + "quantity_value": "time", + "tags": [], + "updated_at": "2020-08-10T11:33:27.762296" + }, { + "name": "observing_time_commissioning", + "url": "http://localhost:3000/api/resource_type/observing_time_commissioning/", + "created_at": "2020-08-10T11:33:27.765809", + "description": "Observing time for Commissioning/DDT (in seconds)", + "quantity": "http://localhost:3000/api/quantity/time/", + "quantity_value": "time", + "tags": [], + "updated_at": "2020-08-10T11:33:27.765834" + }, { + "name": "support_time", + "url": "http://localhost:3000/api/resource_type/support_time/", + "created_at": "2020-08-10T11:33:27.769402", + "description": "Support time by human (in seconds)", + "quantity": "http://localhost:3000/api/quantity/time/", + "quantity_value": "time", + "tags": [], + "updated_at": "2020-08-10T11:33:27.769427" + }, { + "name": "number_of_triggers", + "url": "http://localhost:3000/api/resource_type/number_of_triggers/", + "created_at": "2020-08-10T11:33:27.773406", + "description": "Number of trigger events (as integer)", + "quantity": "http://localhost:3000/api/quantity/number/", + "quantity_value": "number", + "tags": [], + "updated_at": "2020-08-10T11:33:27.773434" + }] + } +} + +export default CycleServiceMock; \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/__mocks__/project.service.data.js b/SAS/TMSS/frontend/tmss_webapp/src/__mocks__/project.service.data.js new file mode 100644 index 0000000000000000000000000000000000000000..066fd339758c56e64cc51a2ae81142eb978a583d --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/__mocks__/project.service.data.js @@ -0,0 +1,315 @@ + +const ProjectServiceMock= { + project_categories: [{url: "Regular", value: 'Regular'}, {url: "User Shared Support", value: 'User Shared Support'}], + period_categories: [{url: "Single Cycle", value: 'Single Cycle'}, {url: "Long Term", value: 'Long Term'}], + resources: [{ + "name": "LOFAR Observing Time", + "url": "http://localhost:3000/api/resource_type/LOFAR%20Observing%20Time/", + "created_at": "2020-07-29T07:31:21.708296", + "description": "LOFAR Observing Time", + "resource_unit": "http://localhost:3000/api/resource_unit/second/", + "resource_unit_id": "second", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:21.708316", + "resourceUnit": { + "name": "second", + "url": "http://localhost:3000/api/resource_unit/second/", + "created_at": "2020-07-29T07:31:21.070088", + "description": "Unit of time or duration", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:21.070114" + } + }, + { + "name": "LOFAR Observing Time prio A", + "url": "http://localhost:3000/api/resource_type/LOFAR%20Observing%20Time%20prio%20A/", + "created_at": "2020-07-29T07:31:21.827537", + "description": "LOFAR Observing Time prio A", + "resource_unit": "http://localhost:3000/api/resource_unit/second/", + "resource_unit_id": "second", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:21.827675", + "resourceUnit": { + "name": "second", + "url": "http://localhost:3000/api/resource_unit/second/", + "created_at": "2020-07-29T07:31:21.070088", + "description": "Unit of time or duration", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:21.070114" + } + }, + { + "name": "LOFAR Observing Time prio B", + "url": "http://localhost:3000/api/resource_type/LOFAR%20Observing%20Time%20prio%20B/", + "created_at": "2020-07-29T07:31:21.950948", + "description": "LOFAR Observing Time prio B", + "resource_unit": "http://localhost:3000/api/resource_unit/second/", + "resource_unit_id": "second", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:21.950968", + "resourceUnit": { + "name": "second", + "url": "http://localhost:3000/api/resource_unit/second/", + "created_at": "2020-07-29T07:31:21.070088", + "description": "Unit of time or duration", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:21.070114" + } + }, + { + "name": "CEP Processing Time", + "url": "http://localhost:3000/api/resource_type/CEP%20Processing%20Time/", + "created_at": "2020-07-29T07:31:22.097916", + "description": "CEP Processing Time", + "resource_unit": "http://localhost:3000/api/resource_unit/second/", + "resource_unit_id": "second", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:22.097941", + "resourceUnit": { + "name": "second", + "url": "http://localhost:3000/api/resource_unit/second/", + "created_at": "2020-07-29T07:31:21.070088", + "description": "Unit of time or duration", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:21.070114" + } + }, + { + "name": "LTA Storage", + "url": "http://localhost:3000/api/resource_type/LTA%20Storage/", + "created_at": "2020-07-29T07:31:22.210071", + "description": "LTA Storage", + "resource_unit": "http://localhost:3000/api/resource_unit/byte/", + "resource_unit_id": "byte", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:22.210091", + "resourceUnit": { + "name": "byte", + "url": "http://localhost:3000/api/resource_unit/byte/", + "created_at": "2020-07-29T07:31:21.500997", + "description": "Unit of data storage", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:21.501028" + } + }, + { + "name": "Number of triggers", + "url": "http://localhost:3000/api/resource_type/Number%20of%20triggers/", + "created_at": "2020-07-29T07:31:22.317313", + "description": "Number of triggers", + "resource_unit": "http://localhost:3000/api/resource_unit/number/", + "resource_unit_id": "number", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:22.317341", + "resourceUnit": { + "name": "number", + "url": "http://localhost:3000/api/resource_unit/number/", + "created_at": "2020-07-29T07:31:21.596364", + "description": "Unit of count", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:21.596385" + } + }, + { + "name": "LOFAR Support Time", + "url": "http://localhost:3000/api/resource_type/LOFAR%20Support%20Time/", + "created_at": "2020-07-29T07:31:22.437945", + "description": "LOFAR Support Time", + "resource_unit": "http://localhost:3000/api/resource_unit/second/", + "resource_unit_id": "second", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:22.437964", + "resourceUnit": { + "name": "second", + "url": "http://localhost:3000/api/resource_unit/second/", + "created_at": "2020-07-29T07:31:21.070088", + "description": "Unit of time or duration", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:21.070114" + } + }, + { + "name": "LOFAR Support hours", + "url": "http://localhost:3000/api/resource_type/LOFAR%20Support%20hours/", + "created_at": "2020-07-29T07:31:22.571850", + "description": "LOFAR Support hours", + "resource_unit": "http://localhost:3000/api/resource_unit/second/", + "resource_unit_id": "second", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:22.571869", + "resourceUnit": { + "name": "second", + "url": "http://localhost:3000/api/resource_unit/second/", + "created_at": "2020-07-29T07:31:21.070088", + "description": "Unit of time or duration", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:21.070114" + } + }, + { + "name": "Support hours", + "url": "http://localhost:3000/api/resource_type/Support%20hours/", + "created_at": "2020-07-29T07:31:22.694438", + "description": "Support hours", + "resource_unit": "http://localhost:3000/api/resource_unit/second/", + "resource_unit_id": "second", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:22.694514", + "resourceUnit": { + "name": "second", + "url": "http://localhost:3000/api/resource_unit/second/", + "created_at": "2020-07-29T07:31:21.070088", + "description": "Unit of time or duration", + "tags": [ + ], + "updated_at": "2020-07-29T07:31:21.070114" + } + } + ], + projectResourceDefaults: { + 'LOFAR Observing Time': 3600, + 'LOFAR Observing Time prio A': 3600, + 'LOFAR Observing Time prio B': 3600, + 'CEP Processing Time': 3600, + 'LTA Storage': 1024*1024*1024*1024, + 'Number of triggers': 1, + 'LOFAR Support Time': 3600 + }, + project: [{ + "name": "OSR-11", + "url": "http://192.168.99.100:8008/api/project/OSR-11/", + "can_trigger": true, + "created_at": "2020-07-29T18:20:06.187276", + "cycles": [ + "http://192.168.99.100:8008/api/cycle/Cycle%200/" + ], + "cycles_ids": [ + "Cycle 0" + ], + "description": "OSR-11", + "expert": false, + "filler": false, + "period_category": "Single Cycle", + "period_category_value": "Single Cycle", + "priority_rank": 5, + "private_data": true, + "project_category": "Regular", + "project_category_value": "Regular", + "project_quota": [ + "http://192.168.99.100:8008/api/project_quota/70/", + "http://192.168.99.100:8008/api/project_quota/71/", + "http://192.168.99.100:8008/api/project_quota/72/", + "http://192.168.99.100:8008/api/project_quota/73/", + "http://192.168.99.100:8008/api/project_quota/74/", + "http://192.168.99.100:8008/api/project_quota/75/", + "http://192.168.99.100:8008/api/project_quota/76/", + "http://192.168.99.100:8008/api/project_quota/77/" + ], + "project_quota_ids": [ + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77 + ], + "tags": [], + "trigger_priority": 990, + "updated_at": "2020-07-29T18:20:06.187342" + }], + projectQuota: [ + { + "id": 70, + "url": "http://192.168.99.100:8008/api/project_quota/70/", + "project": "http://192.168.99.100:8008/api/project/OSR-11/", + "project_id": "OSR-11", + "resource_type": "http://192.168.99.100:8008/api/resource_type/CEP%20Processing%20Time/", + "resource_type_id": "CEP Processing Time", + "value": 36000 + }, + { + "id": 71, + "url": "http://192.168.99.100:8008/api/project_quota/71/", + "project": "http://192.168.99.100:8008/api/project/OSR-11/", + "project_id": "OSR-11", + "resource_type": "http://192.168.99.100:8008/api/resource_type/LOFAR%20Observing%20Time/", + "resource_type_id": "LOFAR Observing Time", + "value": 72000 + }, + { + "id": 72, + "url": "http://192.168.99.100:8008/api/project_quota/72/", + "project": "http://192.168.99.100:8008/api/project/OSR-11/", + "project_id": "OSR-11", + "resource_type": "http://192.168.99.100:8008/api/resource_type/LOFAR%20Observing%20Time%20prio%20A/", + "resource_type_id": "LOFAR Observing Time prio A", + "value": 108000 + }, + { + "id": 73, + "url": "http://192.168.99.100:8008/api/project_quota/73/", + "project": "http://192.168.99.100:8008/api/project/OSR-11/", + "project_id": "OSR-11", + "resource_type": "http://192.168.99.100:8008/api/resource_type/LOFAR%20Observing%20Time%20prio%20B/", + "resource_type_id": "LOFAR Observing Time prio B", + "value": 144000 + }, + { + "id": 74, + "url": "http://192.168.99.100:8008/api/project_quota/74/", + "project": "http://192.168.99.100:8008/api/project/OSR-11/", + "project_id": "OSR-11", + "resource_type": "http://192.168.99.100:8008/api/resource_type/LOFAR%20Support%20Time/", + "resource_type_id": "LOFAR Support Time", + "value": 180000 + }, + { + "id": 75, + "url": "http://192.168.99.100:8008/api/project_quota/75/", + "project": "http://192.168.99.100:8008/api/project/OSR-11/", + "project_id": "OSR-11", + "resource_type": "http://192.168.99.100:8008/api/resource_type/LTA%20Storage/", + "resource_type_id": "LTA Storage", + "value": 6597069766656 + }, + { + "id": 76, + "url": "http://192.168.99.100:8008/api/project_quota/76/", + "project": "http://192.168.99.100:8008/api/project/OSR-11/", + "project_id": "OSR-11", + "resource_type": "http://192.168.99.100:8008/api/resource_type/Number%20of%20triggers/", + "resource_type_id": "Number of triggers", + "value": 7 + }, + { + "id": 77, + "url": "http://192.168.99.100:8008/api/project_quota/77/", + "project": "http://192.168.99.100:8008/api/project/OSR-11/", + "project_id": "OSR-11", + "resource_type": "http://192.168.99.100:8008/api/resource_type/Support%20hours/", + "resource_type_id": "Support hours", + "value": 8 + } + ] +} + +export default ProjectServiceMock; \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/components/ActionComponents.js b/SAS/TMSS/frontend/tmss_webapp/src/components/ActionComponents.js new file mode 100644 index 0000000000000000000000000000000000000000..777784715bc34c41fd5cf29f0dfddafe3a365334 --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/components/ActionComponents.js @@ -0,0 +1,73 @@ +export { + Alert, + Badge, + Breadcrumb, + BreadcrumbItem, + Button, + ButtonDropdown, + ButtonGroup, + ButtonToolbar, + CardBody, + CardColumns, + CardDeck, + CardFooter, + CardGroup, + CardImg, + CardImgOverlay, + CardLink, + CardSubtitle, + CardText, + CardTitle, + Carousel, + CarouselCaption, + CarouselControl, + CarouselIndicators, + CarouselItem, + Col, + Collapse, + Container, + Dropdown, + DropdownItem, + DropdownMenu, + DropdownToggle, + Fade, + Form, + FormFeedback, + FormGroup, + FormText, + Input, + InputGroup, + InputGroupButtonDropdown, + InputGroupText, + Jumbotron, + Label, + ListGroup, + ListGroupItem, + ListGroupItemHeading, + ListGroupItemText, + Media, + Modal, + ModalBody, + ModalFooter, + ModalHeader, + NavbarBrand, + NavbarToggler, + NavItem, + NavLink, + Pagination, + PaginationItem, + PaginationLink, + Popover, + PopoverBody, + PopoverHeader, + Row, + TabContent, + Table, + TabPane, + Tooltip, + UncontrolledAlert, + UncontrolledButtonDropdown, + UncontrolledDropdown, + UncontrolledCollapse, + UncontrolledTooltip +} from 'reactstrap'; diff --git a/SAS/TMSS/frontend/tmss_webapp/src/components/JSONEditor/JEditor.js b/SAS/TMSS/frontend/tmss_webapp/src/components/JSONEditor/JEditor.js new file mode 100644 index 0000000000000000000000000000000000000000..80552d80e7059f28dee4491223c79ab6484e9bdc --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/components/JSONEditor/JEditor.js @@ -0,0 +1,530 @@ +/** + * This is the custom component to use "@json-editor/json-editor" + * to create form using JSON Schema and get JSON output + */ +import React, {useEffect, useRef} from 'react'; +import _ from 'lodash'; +import flatpickr from 'flatpickr'; + +import "@fortawesome/fontawesome-free/css/all.css"; +import "flatpickr/dist/flatpickr.css"; +const JSONEditor = require("@json-editor/json-editor").JSONEditor; + +function Jeditor(props) { + // console.log("In JEditor"); + const editorRef = useRef(null); + let pointingProps = useRef(null); + let editor = null; + useEffect(() => { + const element = document.getElementById('editor_holder'); + let schema = {}; + Object.assign(schema, props.schema?props.schema:{}); + pointingProps = []; + // Customize the pointing property to capture angle1 and angle2 to specified format + for (const definitionKey in schema.definitions) { + if (definitionKey === 'pointing') { + const defintion = schema.definitions[definitionKey]; + let defProperties = defintion.properties; + if (defProperties) { + for (const propName in defProperties) { + if (propName === 'angle1' || propName === 'angle2') { + let defProperty = getAngleProperty(defProperties[propName], propName === 'angle2'); + defProperties[propName] = defProperty; + } + if (defProperties[propName].options) { + defProperties[propName].options.grid_columns = 4; + } else { + defProperties[propName].options = {grid_columns: 4}; + } + } + } + } + } + + // Customize datatype of certain properties like subbands, duration, etc., + getCustomProperties(schema.properties); + schema.title = props.title; + const subbandValidator = validateSubbandOutput; + const timeValidator = validateTime; + const angleValidator = validateAngle; + JSONEditor.defaults.custom_validators.push((schema, value, path) => { + const errors = []; + if (schema.validationType === "subband_list") { + if (!subbandValidator(value)) { + errors.push({ + path: path, + property: 'validationType', + message: 'Not a valid input for Subband List' + }); + } + } else if (schema.validationType === "time") { + if (!timeValidator(value)) { + errors.push({ + path: path, + property: 'validationType', + message: 'Not a valid input. Mimimum: 00:00:00, Maximum:23:59:59' + }); + } + } else if (schema.validationType === "angle") { + if (!angleValidator(value)) { + errors.push({ + path: path, + property: 'validationType', + message: 'Not a valid input. Mimimum: 00:00:00, Maximum:90:00:00' + }); + } + } + return errors; + }); + schema.format = "grid" + const editorOptions = { + form_name_root: "specification", + schema: schema, + theme: 'bootstrap4', + iconlib: 'fontawesome5', + // theme: 'tailwind', + // iconlib: 'spectre', + display_required_only: false, + remove_button_labels: true, + disable_edit_json: true, + disable_properties: true, + disable_collapse: true, + show_errors: props.errorsOn?props.errorsOn:'change', // Can be 'interaction', 'change', 'always', 'never' + compact: true + }; + // Set Initial value to the editor + if (props.initValue) { + editorOptions.startval = updateInput(_.cloneDeep(props.initValue)); + } + editor = new JSONEditor(element, editorOptions); + // editor.getEditor('root').disable(); + if (props.disabled) { + editor.disable(); + } + if (props.parentFunction) { + props.parentFunction(editorFunction); + } + editorRef.current = editor; + editor.on('change', () => {setEditorOutput()}); + }, [props.schema]); + + /** + * Function to call on button click and send the output back to parent through callback + * + */ + function setEditorOutput(){ + const editorOutput = editorRef.current.getValue(); + const formattedOutput = updateOutput(_.cloneDeep(editorOutput)); + const editorValidationErrors = editorRef.current.validate(); + if (props.callback) { + props.callback(formattedOutput, editorValidationErrors); + } + } + + /** + * Function called by the parent component to perform certain action ib JEditor + */ + function editorFunction() { + editorRef.current.destroy(); + } + + /** + * Function to convert the angle fields in HH:mm:ss or DD:mm:ss format based on isDegree value. + * @param {Object} defProperty + * @param {Boolean} isDegree + */ + function getAngleProperty(defProperty, isDegree) { + /*let newProperty = { + "type": "object", + "additionalProperties": false, + "format": "grid", + // "title": defProperty.title, + // "description": defProperty.description}; + "title": "Duration", + "description": "Duration of the observation"}; + let subProperties = {}; + if (isDegree) { + subProperties["dd"] = { "type": "number", + "title": "DD", + "description": "Degrees", + "default": 0, + "minimum": 0, + "maximum": 90 }; + } else { + subProperties["hh"] = { "type": "number", + "title": "HH", + "description": "Hours", + "default": 0, + "minimum": 0, + "maximum": 23 }; + + } + subProperties["mm"] = { "type": "number", + "title": "MM", + "description": "Minutes", + "default": 0, + "minimum": 0, + "maximum": 59 }; + subProperties["ss"] = { "type": "number", + "title": "SS", + "description": "Seconds", + "default": 0, + "minimum": 0, + "maximum": 59 }; + + newProperty.properties = subProperties; + newProperty.required = isDegree?["dd", "mm", "ss"]:["hh", "mm", "ss"];*/ + let newProperty = { + type: "string", + title: defProperty.title, + description: (defProperty.description + (isDegree?'(Degrees:Minutes:Seconds)':'(Hours:Minutes:Seconds)')), + default: "00:00:00", + validationType: isDegree?'angle':'time', + options: { + "grid_columns": 4, + "inputAttributes": { + "placeholder": isDegree?"DD:mm:ss":"HH:mm:ss" + }, + "cleave": { + date: true, + datePattern: ['HH','mm','ss'], + delimiter: ':' + } + } + } + return newProperty; + } + + /** + * Function to get the schema change for specified properties like subbands, duration, column width, etc + * @param {Object} properties + */ + function getCustomProperties(properties) { + for (const propertyKey in properties) { + const propertyValue = properties[propertyKey]; + if (propertyKey === 'subbands') { + let newProperty = {}; + newProperty.additionalItems = false; + newProperty.title = propertyValue.title; + newProperty.type = 'string'; + newProperty.default = ''; + newProperty.description = "For Range enter Start and End seperated by 2 dots. Mulitple ranges can be separated by comma. Minimum should be 0 and maximum should be 511. For exmaple 11..20, 30..50"; + newProperty.validationType = 'subband_list'; + // newProperty.options = { + // grid_columns: 4 + // }; + properties[propertyKey] = newProperty; + } else if (propertyKey.toLowerCase() === 'duration') { + /*propertyValue.title = "Duration (minutes)"; + propertyValue.default = "1"; + propertyValue.description = "Duration of this observation. Enter in decimal for seconds. For example 0.5 for 30 seconds"; + propertyValue.minimum = 0.25; + propertyValue.options = { + grid_columns: 6 + };*/ + /*propertyValue.title = "Duration"; + propertyValue.default = "1H20M30S"; + propertyValue.type = "string"; + propertyValue.description = "Duration of the observation (H-hours,M-minutes,S-seconds & should be in the order of H, M and S respectively)"; + /*let newProperty = { + type: "string", + title: "Duration", + description: `${propertyValue.description} (Hours:Minutes:Seconds)`, + default: "00:00:00", + "options": { + "grid_columns": 5, + "inputAttributes": { + "placeholder": "HH:mm:ss" + }, + "cleave": { + date: true, + datePattern: ['HH','mm','ss'], + delimiter: ':' + } + } + }*/ + let newProperty = { + "type": "string", + "format": "time", + "title": "Duration", + "description": `${propertyValue.description} (Hours:Minutes:Seconds)`, + "options": { + "grid_columns": 3, + "inputAttributes": { + "placeholder": "Enter time" + }, + "flatpickr": { + "wrap": true, + "showClearButton": false, + "inlineHideInput": true, + "defaultHour": 0, + "defaultMinute": 1, + "enableSeconds": true, + "defaultSecond": 0, + "hourIncrement": 1, + "minuteIncrement": 1, + "secondIncrement": 5, + "time_24hr": true, + "allowInput": true + } + } + }; + + properties[propertyKey] = newProperty; + } else if (propertyValue instanceof Object) { + if (propertyKey !== 'properties' && propertyKey !== 'default') { + propertyValue.format = "grid"; + } + if (propertyKey === 'average' || propertyKey === 'calibrator' || propertyKey === 'stations') { + propertyValue.propertyOrder = 1; + } else if (propertyKey === 'demix') { + propertyValue.propertyOrder = 2; + } else if (propertyKey === 'QA' || propertyKey === 'beams') { + propertyValue.propertyOrder = 10000; + } + if (propertyKey === 'storage_cluster' || propertyKey === 'integration_time' || propertyKey === 'storage_manager') { + let options = propertyValue.options?propertyValue.options:{}; + options.grid_columns = 3; + propertyValue.options = options; + } else if (propertyKey === 'flag') { + let options = propertyValue.options?propertyValue.options:{}; + options.grid_columns = 9; + propertyValue.options = options; + } + if (propertyValue['$ref'] && propertyValue['$ref'].endsWith("/pointing")) { + pointingProps.push(propertyKey); + } + getCustomProperties(propertyValue); + } + } + } + + /** + * Function to format the input for custom fields when the editor receive the inital values from the parent component + * @param {*} editorInput + */ + function updateInput(editorInput) { + for (const inputKey in editorInput) { + const inputValue = editorInput[inputKey]; + if (inputValue instanceof Object) { + if (_.indexOf(pointingProps, inputKey) >= 0) { + inputValue.angle1 = getAngleInput(inputValue.angle1); + inputValue.angle2 = getAngleInput(inputValue.angle2, true); + } else if (inputKey === 'subbands') { + editorInput[inputKey] = getSubbandInput(inputValue); + } else { + updateInput(inputValue); + } + } else if (inputKey.toLowerCase() === 'duration') { + // editorInput[inputKey] = inputValue/60; + editorInput[inputKey] = getTimeInput(inputValue); + } + } + return editorInput; + } + + /** + * Function to format the output of the customized fields + * @param {*} editorOutput + */ + function updateOutput(editorOutput) { + for (const outputKey in editorOutput) { + let outputValue = editorOutput[outputKey]; + if (outputValue instanceof Object) { + if (_.indexOf(pointingProps, outputKey) >= 0) { + outputValue.angle1 = getAngleOutput(outputValue.angle1, false); + outputValue.angle2 = getAngleOutput(outputValue.angle2, true); + } else { + updateOutput(outputValue); + } + } else if (outputKey === 'subbands') { + editorOutput[outputKey] = getSubbandOutput(outputValue); + } else if (outputKey.toLowerCase() === 'duration') { + // editorOutput[outputKey] = outputValue * 60; + const splitOutput = outputValue.split(':'); + editorOutput[outputKey] = (splitOutput[0] * 3600 + splitOutput[1] * 60 + splitOutput[2]*1); + } + } + return editorOutput; + } + + /** + * Function to format angle values in the input of inital values + * @param {*} prpInput + * @param {Boolean} isDegree + */ + function getAngleInput(prpInput, isDegree) { + const degrees = prpInput * 180 / Math.PI; + if (isDegree) { + const dd = Math.floor(prpInput * 180 / Math.PI); + const mm = Math.floor((degrees-dd) * 60); + const ss = +((degrees-dd-(mm/60)) * 3600).toFixed(0); + return (dd<10?`0${dd}`:`${dd}`) + ':' + (mm<10?`0${mm}`:`${mm}`) + ':' + (ss<10?`0${ss}`:`${ss}`); + } else { + const hh = Math.floor(degrees/15); + const mm = Math.floor((degrees - (hh*15))/15 * 60 ); + const ss = +((degrees -(hh*15)-(mm*15/60))/15 * 3600).toFixed(0); + return (hh<10?`0${hh}`:`${hh}`) + ':' + (mm<10?`0${mm}`:`${mm}`) + ':' + (ss<10?`0${ss}`:`${ss}`); + } + } + + /** + * Function to format subband list inout arrived as Array to String + * @param {Array} prpInput + */ + function getSubbandInput(prpInput) { + let subbandString = ""; + for (let index=0; index < prpInput.length; index++) { + if (subbandString.length > 0) { + subbandString += ","; + } + let firstVal = prpInput[index] + let nextVal = prpInput[index]; + if (prpInput[index+1] - nextVal === 1) { + subbandString += firstVal + ".."; + while( prpInput[index+1] - nextVal === 1) { + index++; + nextVal = prpInput[index]; + } + subbandString += nextVal; + } else { + subbandString += firstVal; + } + } + return subbandString; + } + + /** + * Convert time value in seconds to string format of HH:mm:ss + * @param {Number} seconds + */ + function getTimeInput(seconds) { + const hh = Math.floor(seconds/3600); + const mm = Math.floor((seconds - hh*3600) / 60 ); + const ss = +((seconds -(hh*3600)-(mm*60)) / 1); + return (hh<10?`0${hh}`:`${hh}`) + ':' + (mm<10?`0${mm}`:`${mm}`) + ':' + (ss<10?`0${ss}`:`${ss}`); + } + + /** + * Converts the angle input to radians + * @param {String} prpOutput + * @param {Boolean} isDegree + */ + function getAngleOutput(prpOutput, isDegree) { + /*if ('dd' in prpOutput) { + return ((prpOutput.dd + prpOutput.mm/60 + prpOutput.ss/3600)*Math.PI/180); + } else { + return ((prpOutput.hh*15 + prpOutput.mm/4 + prpOutput.ss/240)*Math.PI/180); + }*/ + const splitOutput = prpOutput.split(':'); + if (isDegree) { + return ((splitOutput[0]*1 + splitOutput[1]/60 + splitOutput[2]/3600)*Math.PI/180); + } else { + return ((splitOutput[0]*15 + splitOutput[1]/4 + splitOutput[2]/240)*Math.PI/180); + } + } + + /** + * Validate time entered as string in HH:mm:ss format + * @param {String} prpOutput + */ + function validateTime(prpOutput) { + const splitOutput = prpOutput.split(':'); + if (splitOutput.length < 3) { + return false; + } else { + if (parseInt(splitOutput[0]) > 23 || parseInt(splitOutput[1])>59 || parseInt(splitOutput[2])>59) { + return false; + } + const timeValue = parseInt(splitOutput[0]*60*60) + parseInt(splitOutput[1]*60) + parseInt(splitOutput[2]); + if (timeValue >= 86400) { + return false; + } + } + return true; + } + + /** + * Validate angle input to not exceed 90 degrees + * @param {String} prpOutput + */ + function validateAngle(prpOutput) { + const splitOutput = prpOutput.split(':'); + if (splitOutput.length < 3) { + return false; + } else { + if (parseInt(splitOutput[0]) > 90 || parseInt(splitOutput[1])>59 || parseInt(splitOutput[2])>59) { + return false; + } + const timeValue = parseInt(splitOutput[0]*60*60) + parseInt(splitOutput[1]*60) + parseInt(splitOutput[2]); + if (timeValue > 324000) { + return false; + } + } + return true; + } + + /** + * Validates if the subband list custom field + * @param {String} prpOutput + */ + function validateSubbandOutput(prpOutput){ + try { + if (prpOutput) { + const subbandArray = prpOutput.split(","); + for (const subband of subbandArray ) { + const subbandRange = subband.split('..'); + if (subbandRange.length > 1) { + const firstVal = parseInt(subbandRange[0]); + const nextVal = parseInt(subbandRange[1]) + 1; + if (isNaN(firstVal * nextVal) || firstVal < 0 || firstVal > 510 + || nextVal < 0 || nextVal > 511 + || firstVal >nextVal) { + return false; + } + } else { + if (isNaN(parseInt(subbandRange[0]))) { + return false; + } + if (parseInt(subbandRange[0]) < 0 || parseInt(subbandRange[0]) > 511) { + return false; + } + } + } + } else { + return false + } + } catch(exception) { + return false; + } + return true; + } + + /** + * Convert the string input for subband list to Array + * @param {String} prpOutput + */ + function getSubbandOutput(prpOutput) { + const subbandArray = prpOutput.split(","); + let subbandList = []; + for (const subband of subbandArray ) { + const subbandRange = subband.split('..'); + if (subbandRange.length > 1) { + subbandList = subbandList.concat( _.range(subbandRange[0], (parseInt(subbandRange[1])+1))); + } else { + subbandList = subbandList.concat(parseInt(subbandRange[0])); + } + } + prpOutput = subbandList; + return prpOutput; + } + + return ( + <React.Fragment> + <div id='editor_holder'></div> + {/* <div><input type="button" onClick={setEditorOutput} value="Show Output" /></div> */} + </React.Fragment> + ); +}; + +export default Jeditor; \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/components/JSONEditor/JViewer.js b/SAS/TMSS/frontend/tmss_webapp/src/components/JSONEditor/JViewer.js new file mode 100644 index 0000000000000000000000000000000000000000..220a6cfa73cf42d7dc933eb253cb382ebba4acfb --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/components/JSONEditor/JViewer.js @@ -0,0 +1,31 @@ +/** + * Component to view the JSON data using 'react-json-view' package + */ +import React, {Component} from 'react'; +import ReactJson from 'react-json-view'; + +export default class JViewer extends Component { + constructor(props) { + super(props); + this.state = { + outputJSON: props.outputJSON + } + this.updateOutput = this.updateOutput.bind(this); + } + + /** + * Function to be called by the parent to update the JSON content of the viewer + * @param {JSON} outputJSON + */ + updateOutput(outputJSON) { + this.state.outputJSON = outputJSON; + } + + render() { + return ( + <React.Fragment> + <ReactJson src={this.state.outputJSON} /> + </React.Fragment> + ); + } +} \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/components/JSONEditor/index.js b/SAS/TMSS/frontend/tmss_webapp/src/components/JSONEditor/index.js new file mode 100644 index 0000000000000000000000000000000000000000..60bb36fd1b4c5645a2dead54172db7fc3c9f0e1f --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/components/JSONEditor/index.js @@ -0,0 +1,3 @@ +import { JSONEditor } from './jsonEditor'; + +export default JSONEditor; \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/components/UncontrolledModal/UncontrolledModal.js b/SAS/TMSS/frontend/tmss_webapp/src/components/UncontrolledModal/UncontrolledModal.js new file mode 100644 index 0000000000000000000000000000000000000000..1b812de2765a0338083b3264f17709e21b98eeb3 --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/components/UncontrolledModal/UncontrolledModal.js @@ -0,0 +1,63 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import _ from 'lodash'; +import { Modal } from 'reactstrap'; + +import { Provider } from './context'; + +class UncontrolledModal extends React.Component { + static propTypes = { + target: PropTypes.string.isRequired + } + + constructor(props) { + super(props); + + this.state = { + isOpen: false + }; + + this.boundClickEventHandler = this.clickEventHandler.bind(this); + } + + componentDidMount() { + if (typeof document !== 'undefined') { + this.triggerElement = document.querySelector(`#${this.props.target}`); + + if (!this.triggerElement) { + // eslint-disable-next-line no-console + console.error('UncontrolledModal: \'target\' element has not been found in the DOM via querySelector'); + return; + } + + this.triggerElement.addEventListener('click', this.boundClickEventHandler); + } + } + + componentWillUnmount() { + if (this.triggerElement) { + this.triggerElement.removeEventListener('click', this.boundClickEventHandler); + } + } + + clickEventHandler() { + this.setState({ isOpen: true }); + } + + render() { + const modalProps = _.omit(this.props, ['target']); + const toggleModal = () => { this.setState({ isOpen: !this.state.isOpen }) }; + + return ( + <Provider value={{ toggleModal }}> + <Modal + { ...modalProps } + isOpen={ this.state.isOpen } + toggle={ toggleModal } + /> + </Provider> + ); + } +} + +export { UncontrolledModal }; diff --git a/SAS/TMSS/frontend/tmss_webapp/src/components/UncontrolledModal/UncontrolledModalClose.js b/SAS/TMSS/frontend/tmss_webapp/src/components/UncontrolledModal/UncontrolledModalClose.js new file mode 100644 index 0000000000000000000000000000000000000000..5f8ad29fa4ca192549c55a7c0693d10be84e359c --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/components/UncontrolledModal/UncontrolledModalClose.js @@ -0,0 +1,34 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { Button } from 'reactstrap'; + +import { Consumer } from './context'; + +const UncontrolledModalClose = (props) => { + const { tag, ...otherProps } = props; + const Tag = tag; + + return ( + <Consumer> + { + (value) => ( + <Tag + { ...otherProps } + onClick={ () => value.toggleModal() } + /> + ) + } + </Consumer> + ) +}; +UncontrolledModalClose.propTypes = { + tag: PropTypes.oneOfType([ + PropTypes.func, + PropTypes.string + ]) +}; +UncontrolledModalClose.defaultProps = { + tag: Button +}; + +export { UncontrolledModalClose }; diff --git a/SAS/TMSS/frontend/tmss_webapp/src/components/UncontrolledModal/context.js b/SAS/TMSS/frontend/tmss_webapp/src/components/UncontrolledModal/context.js new file mode 100644 index 0000000000000000000000000000000000000000..bf325a1a345d72ce78840f32a8ac29301530120b --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/components/UncontrolledModal/context.js @@ -0,0 +1,8 @@ +import React from 'react'; + +const { Provider, Consumer } = React.createContext(); + +export { + Provider, + Consumer +} diff --git a/SAS/TMSS/frontend/tmss_webapp/src/components/UncontrolledModal/index.js b/SAS/TMSS/frontend/tmss_webapp/src/components/UncontrolledModal/index.js new file mode 100644 index 0000000000000000000000000000000000000000..3927d23c324d2b7d6a3538dd9edcfd41aea5f7ec --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/components/UncontrolledModal/index.js @@ -0,0 +1,6 @@ +import { UncontrolledModal } from './UncontrolledModal'; +import { UncontrolledModalClose } from './UncontrolledModalClose'; + +UncontrolledModal.Close = UncontrolledModalClose; + +export default UncontrolledModal; \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/components/ViewTable.js b/SAS/TMSS/frontend/tmss_webapp/src/components/ViewTable.js new file mode 100644 index 0000000000000000000000000000000000000000..8f91d1af24340e33563606c455036335d8a25def --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/components/ViewTable.js @@ -0,0 +1,522 @@ +import React, {useRef, useState } from "react"; +import { useSortBy, useTable, useFilters, useGlobalFilter, useAsyncDebounce, usePagination } from 'react-table' +import matchSorter from 'match-sorter' +import _ from 'lodash'; +import moment from 'moment'; +import { useHistory } from "react-router-dom"; +import {OverlayPanel} from 'primereact/overlaypanel'; +import {InputSwitch} from 'primereact/inputswitch'; +import { Calendar } from 'primereact/calendar'; +import {Paginator} from 'primereact/paginator'; + +let tbldata =[]; +let isunittest = false; +let columnclassname =[]; +// Define a default UI for filtering +function GlobalFilter({ + preGlobalFilteredRows, + globalFilter, + setGlobalFilter, + }) { + const [value, setValue] = React.useState(globalFilter) + const onChange = useAsyncDebounce(value => {setGlobalFilter(value || undefined)}, 200) + return ( + <span> + <input + value={value || ""} + onChange={e => { + setValue(e.target.value); + onChange(e.target.value); + }} + /> {" "}<i className="fa fa-search"></i> + </span> + ) +} + +// Define a default UI for filtering +function DefaultColumnFilter({ + column: { filterValue, preFilteredRows, setFilter }, +}) { + return ( + <input + value={filterValue || ''} + onChange={e => { + setFilter(e.target.value || undefined) // Set undefined to remove the filter entirely + }} + /> + ) +} + + +// This is a custom filter UI for selecting +// a unique option from a list +function SelectColumnFilter({ + column: { filterValue, setFilter, preFilteredRows, id }, +}) { + // Calculate the options for filtering + // using the preFilteredRows + const options = React.useMemo(() => { + const options = new Set() + preFilteredRows.forEach(row => { + options.add(row.values[id]) + }) + return [...options.values()] + }, [id, preFilteredRows]) + + // Render a multi-select box + return ( + <select + value={filterValue} + onChange={e => { + setFilter(e.target.value || undefined) + }} + > + <option value="">All</option> + {options.map((option, i) => ( + <option key={i} value={option}> + {option} + </option> + ))} + </select> + ) +} + +// This is a custom filter UI that uses a +// slider to set the filter value between a column's +// min and max values +function SliderColumnFilter({ + column: { filterValue, setFilter, preFilteredRows, id }, +}) { + // Calculate the min and max + // using the preFilteredRows + + const [min, max] = React.useMemo(() => { + let min = preFilteredRows.length ? preFilteredRows[0].values[id] : 0 + let max = preFilteredRows.length ? preFilteredRows[0].values[id] : 0 + preFilteredRows.forEach(row => { + min = Math.min(row.values[id], min) + max = Math.max(row.values[id], max) + }) + return [min, max] + }, [id, preFilteredRows]) + + return ( + <> + <input + type="range" + min={min} + max={max} + value={filterValue || min} + onChange={e => { + setFilter(parseInt(e.target.value, 10)) + }} + /> + <button onClick={() => setFilter(undefined)}>Off</button> + </> + ) +} + +// This is a custom filter UI that uses a +// switch to set the value +function BooleanColumnFilter({ + column: { setFilter}, +}) { + const [value, setValue] = useState(true); + return ( + <> + <InputSwitch checked={value} onChange={() => { setValue(!value); setFilter(!value); }} /> + <button onClick={() => setFilter(undefined)}>Off</button> + </> + ) +} + +// This is a custom filter UI that uses a +// calendar to set the value +function CalendarColumnFilter({ + column: { setFilter}, +}) { + const [value, setValue] = useState(''); + return ( + <> + <Calendar value={value} onChange={(e) => { + const value = moment(e.value, moment.ISO_8601).format("YYYY-MMM-DD") + setValue(value); setFilter(value); + }} showIcon></Calendar> + <button onClick={() => setFilter(undefined)}>Off</button> + </> + ) +} + + +// This is a custom UI for our 'between' or number range +// filter. It uses two number boxes and filters rows to +// ones that have values between the two +function NumberRangeColumnFilter({ + column: { filterValue = [], preFilteredRows, setFilter, id }, +}) { + const [min, max] = React.useMemo(() => { + let min = preFilteredRows.length ? preFilteredRows[0].values[id] : 0 + let max = preFilteredRows.length ? preFilteredRows[0].values[id] : 0 + preFilteredRows.forEach(row => { + min = Math.min(row.values[id], min) + max = Math.max(row.values[id], max) + }) + return [min, max] + }, [id, preFilteredRows]) + + return ( + <div + style={{ + display: 'flex', + }} + > + <input + value={filterValue[0] || ''} + type="number" + onChange={e => { + const val = e.target.value + setFilter((old = []) => [val ? parseInt(val, 10) : undefined, old[1]]) + }} + placeholder={`Min (${min})`} + style={{ + width: '70px', + marginRight: '0.5rem', + }} + /> + to + <input + value={filterValue[1] || ''} + type="number" + onChange={e => { + const val = e.target.value + setFilter((old = []) => [old[0], val ? parseInt(val, 10) : undefined]) + }} + placeholder={`Max (${max})`} + style={{ + width: '70px', + marginLeft: '0.5rem', + }} + /> + </div> + ) +} + + +function fuzzyTextFilterFn(rows, id, filterValue) { + return matchSorter(rows, filterValue, { keys: [row => row.values[id]] }) +} + +const filterTypes = { + 'select': SelectColumnFilter, + 'switch': BooleanColumnFilter, + 'slider': SliderColumnFilter, + 'date': CalendarColumnFilter, + 'range': NumberRangeColumnFilter +}; + +// Let the table remove the filter if the string is empty +fuzzyTextFilterFn.autoRemove = val => !val + +const IndeterminateCheckbox = React.forwardRef( + ({ indeterminate, ...rest }, ref) => { + const defaultRef = React.useRef() + const resolvedRef = ref || defaultRef + React.useEffect(() => { + resolvedRef.current.indeterminate = indeterminate + }, [resolvedRef, indeterminate]) + return <input type="checkbox" ref={resolvedRef} {...rest} /> + } +) + +// Our table component +function Table({ columns, data, defaultheader, optionalheader, defaultSortColumn }) { + const filterTypes = React.useMemo( + () => ({ + // Add a new fuzzyTextFilterFn filter type. + fuzzyText: fuzzyTextFilterFn, + // Or, override the default text filter to use + // "startWith" + text: (rows, id, filterValue) => { + return rows.filter(row => { + const rowValue = row.values[id] + return rowValue !== undefined + ? String(rowValue) + .toLowerCase() + .startsWith(String(filterValue).toLowerCase()) + : true + }) + }, + }), + [] + ) + + const defaultColumn = React.useMemo( + () => ({ + // Let's set up our default Filter UI + Filter: DefaultColumnFilter, + }), + [] + ) + + const { + getTableProps, + getTableBodyProps, + headerGroups, + rows, + prepareRow, + allColumns, + getToggleHideAllColumnsProps, + state, + page, + preGlobalFilteredRows, + setGlobalFilter, + setHiddenColumns, + gotoPage, + setPageSize, + + } = useTable( + { + columns, + data, + defaultColumn, + filterTypes, + initialState: { pageIndex: 0, + sortBy: defaultSortColumn } + }, + useFilters, + useGlobalFilter, + useSortBy, + usePagination + ) + + React.useEffect(() => { + setHiddenColumns( + columns.filter(column => !column.isVisible).map(column => column.accessor) + ); + }, [setHiddenColumns, columns]); + + let op = useRef(null); + + const [currentpage, setcurrentPage] = React.useState(0); + const [currentrows, setcurrentRows] = React.useState(10); + + const onPagination = (e) => { + gotoPage(e.page); + setcurrentPage(e.first); + setcurrentRows(e.rows); + setPageSize(e.rows) + }; + + return ( + <> + <div id="block_container"> + <div style={{textAlign:'left', marginRight:'30px'}}> + <i className="fa fa-columns col-filter-btn" label="Toggle Columns" onClick={(e) => op.current.toggle(e)} /> + <OverlayPanel ref={op} id="overlay_panel" showCloseIcon={false} > + <div> + <div style={{textAlign: 'center'}}> + <label>Select column(s) to view</label> + </div> + <div style={{float: 'left', backgroundColor: '#d1cdd936', width: '250px', height: '400px', overflow: 'auto', marginBottom:'10px', padding:'5px'}}> + <div id="tagleid" > + <div > + <div style={{marginBottom:'5px'}}> + <IndeterminateCheckbox {...getToggleHideAllColumnsProps()} /> Select All + </div> + {allColumns.map(column => ( + <div key={column.id} style={{'display':column.id !== 'actionpath'?'block':'none'}}> + <input type="checkbox" {...column.getToggleHiddenProps()} /> { + (defaultheader[column.id]) ? defaultheader[column.id] : (optionalheader[column.id] ? optionalheader[column.id] : column.id)} + </div> + ))} + <br /> + </div> + </div> + </div> + </div> + </OverlayPanel> + </div> + + <div style={{textAlign:'right'}}> + {tbldata.length>0 && !isunittest && + <GlobalFilter + preGlobalFilteredRows={preGlobalFilteredRows} + globalFilter={state.globalFilter} + setGlobalFilter={setGlobalFilter} + /> + } + </div> +</div> + + <div className="table_container"> + <table {...getTableProps()} data-testid="viewtable" className="viewtable" > + <thead> + {headerGroups.map(headerGroup => ( + <tr {...headerGroup.getHeaderGroupProps()}> + {headerGroup.headers.map(column => ( + <th> + <div {...column.getHeaderProps(column.getSortByToggleProps())}> + {column.Header !== 'actionpath' && column.render('Header')} + {column.Header !== 'Action'? + column.isSorted ? (column.isSortedDesc ? <i className="pi pi-sort-down" aria-hidden="true"></i> : <i className="pi pi-sort-up" aria-hidden="true"></i>) : "" + : "" + } + </div> + + {/* Render the columns filter UI */} + {column.Header !== 'actionpath' && + <div className={columnclassname[0][column.Header]} > + {column.canFilter && column.Header !== 'Action' ? column.render('Filter') : null} + + </div> + } + </th> + ))} + </tr> + ))} + + </thead> + <tbody {...getTableBodyProps()}> + {page.map((row, i) => { + prepareRow(row) + return ( + <tr {...row.getRowProps()}> + {row.cells.map(cell => { + return <td {...cell.getCellProps()}>{cell.render('Cell')}</td> + })} + </tr> + ) + })} + </tbody> + </table> + </div> + <div className="pagination"> + <Paginator rowsPerPageOptions={[10,25,50,100]} first={currentpage} rows={currentrows} totalRecords={rows.length} onPageChange={onPagination}></Paginator> + </div> + </> + ) +} + + +// Define a custom filter filter function! +function filterGreaterThan(rows, id, filterValue) { + return rows.filter(row => { + const rowValue = row.values[id] + return rowValue >= filterValue + }) +} + +// This is an autoRemove method on the filter function that +// when given the new filter value and returns true, the filter +// will be automatically removed. Normally this is just an undefined +// check, but here, we want to remove the filter if it's not a number +filterGreaterThan.autoRemove = val => typeof val !== 'number' + +function ViewTable(props) { + const history = useHistory(); + // Data to show in table + tbldata = props.data; + isunittest = props.unittest; + columnclassname = props.columnclassname; + + // Default Header to show in table and other columns header will not show until user action on UI + let defaultheader = props.defaultcolumns; + let optionalheader = props.optionalcolumns; + let defaultSortColumn = props.defaultSortColumn; + if(!defaultSortColumn){ + defaultSortColumn =[{}]; + } + + let columns = []; + let defaultdataheader = Object.keys(defaultheader[0]); + let optionaldataheader = Object.keys(optionalheader[0]); + + if(props.showaction === 'true') { + columns.push({ + Header: 'Action', + id:'Action', + accessor: props.keyaccessor, + Cell: props => <button className='p-link' onClick={navigateTo(props)} ><i className="fa fa-edit" style={{cursor: 'pointer'}}></i></button>, + disableFilters: true, + disableSortBy: true, + isVisible: defaultdataheader.includes(props.keyaccessor), + }) + } + + const navigateTo = (props) => () => { + if(props.cell.row.values['actionpath']){ + return history.push({ + pathname: props.cell.row.values['actionpath'], + state: { + "id": props.value, + } + }) + } + // Object.entries(props.paths[0]).map(([key,value]) =>{}) + } + + //Default Columns + defaultdataheader.forEach(header => { + const isString = typeof defaultheader[0][header] === 'string'; + columns.push({ + Header: isString ? defaultheader[0][header] : defaultheader[0][header].name, + id: isString ? defaultheader[0][header] : defaultheader[0][header].name, + accessor: header, + filter: (!isString && defaultheader[0][header].filter=== 'date') ? 'includes' : 'fuzzyText', + Filter: isString ? DefaultColumnFilter : (filterTypes[defaultheader[0][header].filter] ? filterTypes[defaultheader[0][header].filter] : DefaultColumnFilter), + isVisible: true, + Cell: props => <div> {updatedCellvalue(header, props.value)} </div>, + }) + }) + + //Optional Columns + optionaldataheader.forEach(header => { + const isString = typeof optionalheader[0][header] === 'string'; + columns.push({ + Header: isString ? optionalheader[0][header] : optionalheader[0][header].name, + id: isString ? optionalheader[0][header] : optionalheader[0][header].name, + accessor: header, + filter: (!isString && optionalheader[0][header].filter=== 'date') ? 'includes' : 'fuzzyText', + Filter: isString ? DefaultColumnFilter : (filterTypes[optionalheader[0][header].filter] ? filterTypes[optionalheader[0][header].filter] : DefaultColumnFilter), + isVisible: false, + Cell: props => <div> {updatedCellvalue(header, props.value)} </div>, + }) + }); + + function updatedCellvalue(key, value){ + try{ + if(key === 'blueprint_draft' && _.includes(value,'/task_draft/')){ + // 'task_draft/' -> len = 12 + var taskid = _.replace(value.substring((value.indexOf('/task_draft/')+12), value.length),'/',''); + return <a href={'/task/view/draft/'+taskid}>{' '+taskid+' '}</a> + }else if(key === 'blueprint_draft'){ + var retval= []; + value.forEach((link, index) =>{ + // 'task_blueprint/' -> len = 16 + if(_.includes(link,'/task_blueprint/')){ + var bpid = _.replace(link.substring((link.indexOf('/task_blueprint/')+16), link.length),'/',''); + retval.push( <a href={'/task/view/blueprint/'+bpid} key={bpid+index} >{' '+bpid+' '}</a> ) + } + }) + return retval; + }else if(typeof value == "string"){ + const dateval = moment(value, moment.ISO_8601).format("YYYY-MMM-DD HH:mm:ss"); + if(dateval !== 'Invalid date'){ + return dateval; + } + } + }catch(err){ + console.error('Error',err) + } + return value; + } + + return ( + <div> + <Table columns={columns} data={tbldata} defaultheader={defaultheader[0]} optionalheader={optionalheader[0]} + defaultSortColumn={defaultSortColumn} /> + </div> + ) +} + +export default ViewTable diff --git a/SAS/TMSS/frontend/tmss_webapp/src/index.js b/SAS/TMSS/frontend/tmss_webapp/src/index.js index f5185c1ec7a5dccf30b55a8e3f89afc3eca764a1..f24975207fdc2c2496b95f2652ab096544a01a5e 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/index.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/index.js @@ -1,13 +1,15 @@ +import 'react-app-polyfill/ie11'; import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; import * as serviceWorker from './serviceWorker'; +import 'cleave.js/dist/cleave'; ReactDOM.render( - <React.StrictMode> - <App /> - </React.StrictMode>, + // <React.StrictMode> + <App />, + // </React.StrictMode>, document.getElementById('root') ); diff --git a/SAS/TMSS/frontend/tmss_webapp/src/layout/_overrides.scss b/SAS/TMSS/frontend/tmss_webapp/src/layout/_overrides.scss index 850b92b170e5957de7638ac69233197a155174af..ddf77d3e4b228914fd7fc97e74cb11820d821755 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/layout/_overrides.scss +++ b/SAS/TMSS/frontend/tmss_webapp/src/layout/_overrides.scss @@ -1 +1,25 @@ -//Suggested location to add your overrides so that migration would be easy by just updating the SASS folder in the future \ No newline at end of file +//Suggested location to add your overrides so that migration would be easy by just updating the SASS folder in the future +.layout-wrapper.layout-static.layout-static-sidebar-inactive ul li a span{ + display: none; + height: 0px; +} + +.layout-wrapper.layout-static.layout-static-sidebar-inactive ul li a { + height: auto; +} +.layout-wrapper.layout-static.layout-static-sidebar-inactive { + .layout-profile img{ + width: 30px; + margin: 0px; + } + .layout-profile p{ + display: none; + } + .layout-logo{ + display: none; + } + + .layout-sidebar-dark .layout-menu li a { + border-top: none; + } +} \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/layout/components/AppBreadcrumb.js b/SAS/TMSS/frontend/tmss_webapp/src/layout/components/AppBreadcrumb.js new file mode 100644 index 0000000000000000000000000000000000000000..0abba394b1c1190aa1c84bf7ec20af19f97c720c --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/layout/components/AppBreadcrumb.js @@ -0,0 +1,70 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import {Link, matchPath} from 'react-router-dom'; +import { routes } from '../../routes'; +export class AppBreadcrumb extends Component { + + static propTypes = { + match: PropTypes.object, + } + + constructor(props) { + super(props); + this.state = { + breadcrumbs: [] + } + } + + componentDidUpdate(prev) { + if (prev.location.pathname !== this.props.location.pathname) { + this.onRoute(); + } + } + + componentDidMount() { + this.onRoute(); + } + + onRoute() { + const { breadcrumbs } = this.state; + const currentRoute = routes.find(route => matchPath(this.props.location.pathname, {path: route.path, exact: true, strict: true})); + //for intial route ,there wont be any route object so it failed + if(!currentRoute){ + return; + } + if (!breadcrumbs.length) { + this.setState({ breadcrumbs: [{...this.props.location, name: currentRoute.name}] }); + return; + } + const index = breadcrumbs.map(i => i.name).indexOf(currentRoute.name); + if (index === -1) { + this.setState({ breadcrumbs: [...breadcrumbs, {...this.props.location, name: currentRoute.name}] }); + return; + } + this.setState({ breadcrumbs: breadcrumbs.slice(0, index+1) }); + } + + onNavigate(item) { + this.props.history.push({ + pathname: item.pathname, + state: item.state + }); + } + + render() { + const { breadcrumbs } = this.state; + return ( + <div className="p-breadcrumb" > + <span className="pi b-home"><Link className="b-link pi pi-home" to="/"/></span> + {breadcrumbs.map((item, index) => ( + <span key={"bc_" + index} > + <li className="pi pi-chevron-right b-separator"></li> + {index !== breadcrumbs.length - 1 ? + <span className="b-link" onClick={() => this.onNavigate(item)}>{item.name}</span> + : <span className="b-text">{item.name}</span>} + </span> + ))} + </div> + ); + } +} \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/layout/components/AppFooter.js b/SAS/TMSS/frontend/tmss_webapp/src/layout/components/AppFooter.js index 27edea6d5758942eaf4582237ed240d18b554082..6453a2d30d49d4d43ea767294d466d195a1eaa37 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/layout/components/AppFooter.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/layout/components/AppFooter.js @@ -5,7 +5,7 @@ export class AppFooter extends Component { render() { return ( <div className="layout-footer"> - <span className="footer-text" style={{'marginRight': '5px'}}><strong>TMSS</strong> by <strong>ASTRON</strong></span> + <span className="footer-text" style={{'marginRight': '5px', color:'#0066CC'}}><strong>TMSS</strong> by <strong>ASTRON</strong></span> </div> ); } diff --git a/SAS/TMSS/frontend/tmss_webapp/src/layout/components/AppLoader.js b/SAS/TMSS/frontend/tmss_webapp/src/layout/components/AppLoader.js new file mode 100644 index 0000000000000000000000000000000000000000..04ed40995e0b586879ec6cd0f37582bee761371a --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/layout/components/AppLoader.js @@ -0,0 +1,21 @@ +import Loader from 'react-loader-spinner'; +import React, { Component } from 'react' + +export class AppLoader extends Component{ + + render() { + const load = { + width: "100%", + height: "100", + display: "flex", + justifyContent: "center" + } + + return ( + <div style={load}> + <Loader type="ThreeDots" color="#004B93" height={80} width={80} /> + </div> + ); + } +} +export default AppLoader \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/layout/components/AppMenu.js b/SAS/TMSS/frontend/tmss_webapp/src/layout/components/AppMenu.js index 7f0e4e18c1ee09448b7ed7f2330702f7b3d875dc..c46698462cfea5aff95a48cbf167c56a0dfd736e 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/layout/components/AppMenu.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/layout/components/AppMenu.js @@ -1,4 +1,4 @@ -import React, { Component } from 'react'; + import React, { Component } from 'react'; import {NavLink} from 'react-router-dom' import PropTypes from 'prop-types'; import classNames from 'classnames'; @@ -52,6 +52,7 @@ class AppSubmenu extends Component { } } + renderLinkContent(item) { let submenuIcon = item.items && <i className="pi pi-fw pi-angle-down menuitem-toggle-icon"></i>; let badge = item.badge && <span className="menuitem-badge">{item.badge}</span>; @@ -92,11 +93,6 @@ class AppSubmenu extends Component { let active = this.state.activeIndex === i; // let styleClass = classNames(item.badgeStyleClass, {'active-menuitem': active && !item.to}); let styleClass = classNames(item.badgeStyleClass, {'active-menuitem': active && item.to}); - console.log(item.badgeStyleClass); - console.log(i); - console.log(this.state.activeIndex); - console.log(active); - console.log(styleClass); return ( <li className={styleClass} key={i}> {item.items && this.props.root===true && <div className='arrow'></div>} @@ -124,7 +120,6 @@ export class AppMenu extends Component { } render() { - // console.log(authenticationService.currentUserValue); return ( <div className={'layout-sidebar layout-sidebar-light'} > <div className="layout-menu-container"> diff --git a/SAS/TMSS/frontend/tmss_webapp/src/layout/components/AppTopbar.js b/SAS/TMSS/frontend/tmss_webapp/src/layout/components/AppTopbar.js index ccd16881c0a2f108516bd1fc3a40e723cb6da71f..e45be034ce26e4db68ac6446a00f3517bc5f9184 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/layout/components/AppTopbar.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/layout/components/AppTopbar.js @@ -4,8 +4,7 @@ import 'primeicons/primeicons.css'; import 'primereact/resources/themes/nova-light/theme.css'; import 'primereact/resources/primereact.css'; import 'primeflex/primeflex.css'; - -// import { PropTypes } from 'prop-types'; + import { PropTypes } from 'prop-types'; export class AppTopbar extends Component { @@ -15,21 +14,22 @@ import 'primeflex/primeflex.css'; // } - // static defaultProps = { - // onToggleMenu: null - // } + static defaultProps = { + onToggleMenu: null + } - // static propTypes = { - // onToggleMenu: PropTypes.func - // } + static propTypes = { + onToggleMenu: PropTypes.func.isRequired + } render() { return ( <React.Fragment> <div className="layout-wrapper layout-static layout-static-sidebar-inactive"> <div className="layout-topbar clearfix"> - <button className="p-link layout-menu-button"><i className="pi pi-bars"></i></button> + <button className="p-link layout-menu-button" onClick={this.props.onToggleMenu}> + <i className="pi pi-bars"></i></button> <span className="header-title">TMSS</span> </div> </div> diff --git a/SAS/TMSS/frontend/tmss_webapp/src/layout/components/NotFound.js b/SAS/TMSS/frontend/tmss_webapp/src/layout/components/NotFound.js new file mode 100644 index 0000000000000000000000000000000000000000..2d8784ebd74e08ef716c94b6763f6dcecb28c651 --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/layout/components/NotFound.js @@ -0,0 +1,12 @@ +import React, { Component } from 'react'; + +export class NotFound extends Component { + + render() { + return ( + <h1>Not Found</h1> + ); + } +} + +export default NotFound; \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/layout/sass/_breadcrumb.scss b/SAS/TMSS/frontend/tmss_webapp/src/layout/sass/_breadcrumb.scss new file mode 100644 index 0000000000000000000000000000000000000000..8c27dd9432d5d7d0bb79b84ec2e6694b0aa9d95e --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/layout/sass/_breadcrumb.scss @@ -0,0 +1,37 @@ + +body .p-breadcrumb{ + background-color: #F1F1F1; + padding: 0em; + padding-left: 5px; + padding-top: 5px; + margin-bottom: 5px; + box-shadow: 2px 2px #d6d9d9; + border: none; +} +.p-breadcrumb .pi{ + color: #535252; + font-size : large; +} + +.b-link { + font-size: 14px; + color:#007bff; + cursor: pointer; + &:hover { + text-decoration: underline; + } +} + +.b-text { + font-size: 14px; + columns: #464748; +} + +.b-separator { + font-size: 0.9rem !important; + margin: 0 5px; +} +.b-home { + position: relative; + top: 2px; +} diff --git a/SAS/TMSS/frontend/tmss_webapp/src/layout/sass/_content.scss b/SAS/TMSS/frontend/tmss_webapp/src/layout/sass/_content.scss index 693a30ddbfb3214511538caff487fcd8bb9c1a8f..5c49ad86c0d840f2b6876fd5662d5ca981e34331 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/layout/sass/_content.scss +++ b/SAS/TMSS/frontend/tmss_webapp/src/layout/sass/_content.scss @@ -1,6 +1,6 @@ .layout-main { @include transition(margin-left $transitionDuration); - padding: 60px 16px 16px 16px; + padding: 60px 16px 16px 25px; min-height: 95vh; background-color: white; } \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/layout/sass/_layout.scss b/SAS/TMSS/frontend/tmss_webapp/src/layout/sass/_layout.scss index b5182b1c58420ad500fc0cb48e1b85d4ef2ae393..79f22ea107106c4e26e10b2cc375414ea77b293d 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/layout/sass/_layout.scss +++ b/SAS/TMSS/frontend/tmss_webapp/src/layout/sass/_layout.scss @@ -9,4 +9,6 @@ @import "./_footer"; @import "./_responsive"; @import "./_utils"; -@import "./_dashboard"; \ No newline at end of file +@import "./_dashboard"; +@import "./_breadcrumb"; +@import "./_viewtable"; diff --git a/SAS/TMSS/frontend/tmss_webapp/src/layout/sass/_responsive.scss b/SAS/TMSS/frontend/tmss_webapp/src/layout/sass/_responsive.scss index 97ab84ce038e66fe3bfdf4a5a2de512d491709ec..9d189af7911bfad260e5819ed197ae303ff55569 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/layout/sass/_responsive.scss +++ b/SAS/TMSS/frontend/tmss_webapp/src/layout/sass/_responsive.scss @@ -38,18 +38,22 @@ } &.layout-static-sidebar-inactive { + .layout-sidebar { - left: -250px; + left: 0; + width: 50px; + } .layout-topbar { - left: 0; + left: -10px; } .layout-main, .layout-footer { - margin-left: 0; + margin-left: 50px; } } + } } } diff --git a/SAS/TMSS/frontend/tmss_webapp/src/layout/sass/_sidebar.scss b/SAS/TMSS/frontend/tmss_webapp/src/layout/sass/_sidebar.scss index cca2a830c7f57a18ff9687d8d98de016709c7aa5..13e9d4bbdb3517142b813f570ca387f59a8b1aeb 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/layout/sass/_sidebar.scss +++ b/SAS/TMSS/frontend/tmss_webapp/src/layout/sass/_sidebar.scss @@ -3,7 +3,6 @@ position: fixed; width: 250px; height: 100%; - // z-index: 999; overflow-y: auto; user-select: none; -moz-user-select: none; @@ -11,11 +10,6 @@ @include transition(left $transitionDuration); @include shadow(0 0 6px 0 rgba(0, 0, 0, 0.16)); - .layout-logo { - text-align: center; - margin-top: 24px; - } - .menuitem-badge { display: inline-block; margin-left: 4px; @@ -28,4 +22,5 @@ background-color: $menuitemBadgeBgColor; @include border-radius(50%); } + } \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/layout/sass/_viewtable.scss b/SAS/TMSS/frontend/tmss_webapp/src/layout/sass/_viewtable.scss new file mode 100644 index 0000000000000000000000000000000000000000..1d8e0e084971ed7a554ed2b8511dbcc30f07cf41 --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/layout/sass/_viewtable.scss @@ -0,0 +1,120 @@ +#block_container { + display: flex; + vertical-align: middle; + margin-top: 20px +} + +.table_container { + overflow: auto; + padding: 0.75em 0; +} + +.viewtable{ + overflow: auto !important; + padding: 0.75em; + width: 100%; +} + +.viewtable th { + color: #7e8286; + font-size: 14px; + border-bottom: 1px solid lightgray; + border-top: 1px solid lightgray; + padding: .65rem; + vertical-align:bottom; + } + +.viewtable th>div { + vertical-align: text-bottom; +} + +.viewtable td { + font-size: 14px; + padding: .65rem; + border-bottom: 1px solid lightgray; + overflow-wrap: anywhere; +} + +.pagination { + display: block !important; +} + +body .p-paginator { + background-color: #ebeaea; + border: none; + border-bottom: 1px solid lightgray; + border-top: 1px solid lightgray; +} + +.p-paginator .p-paginator-icon { + display: block; + position: absolute; + left: 50%; + top: 50%; + width: 1em; + height: 1em; + margin-top: -.5em; + margin-left: -.5em; + border-color: black; + color: #007ad9; +} + +.p-dropdown .p-dropdown-trigger .p-dropdown-trigger-icon { + top: 50%; + left: 50%; + margin-top: -.5em; + margin-left: -.5em; + position: absolute; + border-color: black; + border: black; +} + +.filter-input input{ + max-width: 175px; +} + +.filter-input-50 input{ + width: 50px; +} + +.filter-input-75 input{ + width: 75px; +} + +.filter-input-100 input{ + width: 100px; +} + +.filter-input-125 input{ + width: 125px; +} + +.filter-input-150 input{ + width: 150px; +} + +.filter-input-175 input{ + width: 175px; +} + +.table_container .pi { + padding-left: 3px; +} + +/* }.pagination button { + margin-left: 3px; + background-color: #005b9f; + border: 1px solid #005b9f; + border-radius: 4px; + color: white; + font-weight: 900; +} + +.pagination button:disabled { + margin-left: 3px; + background-color: #c8c9c9; + border: 1px solid #c8c9c9; + border-radius: 4px; + color: white; +} */ + diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/ResourceDisplayList.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/ResourceDisplayList.js new file mode 100644 index 0000000000000000000000000000000000000000..c1a00381eeb63e93e97479edecf8a7e33988fd03 --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/ResourceDisplayList.js @@ -0,0 +1,31 @@ +import React, {Component} from 'react'; + +/** + * Component to get input for Resource allocation while creating and editing Cycle + */ +class ResourceDisplayList extends Component { + constructor(props) { + super(props); + this.state = { + cycleQuota: props.cycleQuota + } + } + + render(){ + return ( + <> + {this.props.cycleQuota.length>0 && this.props.cycleQuota.map((item, index) => ( + <React.Fragment key={index+10}> + <label key={'label1-'+ index} className="col-lg-3 col-md-3 col-sm-12">{item.resource.name}</label> + <span key={'div1-'+ index} className="col-lg-3 col-md-3 col-sm-12"> + {item.value/(this.props.unitMap[item.resource.quantity_value]?this.props.unitMap[item.resource.quantity_value].conversionFactor:1)} + {` ${this.props.unitMap[item.resource.quantity_value]?this.props.unitMap[item.resource.quantity_value].display:''}`} + </span> + </React.Fragment> + ))} + </> + ); + } +} + +export default ResourceDisplayList; \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/ResourceInputList.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/ResourceInputList.js new file mode 100644 index 0000000000000000000000000000000000000000..a188d348b297f4e601f82792923ce561fcd8ae6d --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/ResourceInputList.js @@ -0,0 +1,58 @@ +import React, {Component} from 'react'; +import {InputNumber} from 'primereact/inputnumber'; + +/** + * Component to get input for Resource allocation while creating and editing Cycle + */ +export class ResourceInputList extends Component { + constructor(props) { + super(props); + this.state = { + list: props.list, + cycleQuota: props.cycleQuota + } + this.updateEnabled = this.props.list.length===0?true:false; + this.onInputChange = this.onInputChange.bind(this); + } + + shouldComponentUpdate() { + return true; + } + + onInputChange(field, event) { + if (this.props.callback) { + this.props.callback(field, event); + } + } + + removeInput(field) { + if (this.props.removeInputCallback) { + this.props.removeInputCallback(field); + } + } + + render(){ + return ( + <> + {this.props.list.length>0 && this.props.list.map((item, index) => ( + <React.Fragment key={index+10}> + <label key={'label1-'+ index} className="col-lg-2 col-md-2 col-sm-12">{item.name}</label> + <div key={'div1-'+ index} className="col-lg-3 col-md-3 col-sm-12"> + <InputNumber key={'item1-'+ index} id={'item1-'+ index} name={'item1-'+ index} + suffix={` ${this.props.unitMap[item.quantity_value]?this.props.unitMap[item.quantity_value].display:''}`} + placeholder={` ${this.props.unitMap[item.quantity_value]?this.props.unitMap[item.quantity_value].display:item.name}`} min={0} useGrouping={false} + value={this.props.cycleQuota[item.name]} + onChange={(e) => this.onInputChange(item.name, e)} + onBlur={(e) => this.onInputChange(item.name, e)} + style={{width:"90%", marginRight: "5px"}} + /> + <button className="p-link" data-testid={`${item.name}-btn`} onClick={(e) => this.removeInput(item.name)}> + <i className="fa fa-trash pi-error"></i></button> + </div> + <div className="col-lg-1 col-md-1 col-sm-12"></div> + </React.Fragment> + ))} + </> + ); + } +} \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/create.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/create.js new file mode 100644 index 0000000000000000000000000000000000000000..79ddd60b6b80b15e064ae8a60df296ff6b51674b --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/create.js @@ -0,0 +1,475 @@ +import React, {Component} from 'react'; +import { Link, Redirect } from 'react-router-dom'; +import {InputText} from 'primereact/inputtext'; +import {Calendar} from 'primereact/calendar'; +import {InputTextarea} from 'primereact/inputtextarea'; +import {Dropdown} from 'primereact/dropdown'; +import {Button} from 'primereact/button'; +import {Dialog} from 'primereact/components/dialog/Dialog'; +import {Growl} from 'primereact/components/growl/Growl'; +import {ResourceInputList} from './ResourceInputList'; +import moment from 'moment' +import _ from 'lodash'; + +import AppLoader from '../../layout/components/AppLoader'; +import CycleService from '../../services/cycle.service'; +import UnitConverter from '../../utils/unit.converter'; +import UIConstants from '../../utils/ui.constants'; + +/** + * Component to create a new Cycle + */ +export class CycleCreate extends Component { + constructor(props) { + super(props); + this.state = { + isLoading: true, + dialog: { header: '', detail: ''}, + cycle: { + projects: [], + quota: [], + start: "", + stop: "", + }, + cycleQuota: {}, // Resource Allocations + validFields: {}, // For Validation + validForm: false, // To enable Save Button + errors: {}, // Validation Errors + resources: [], // Selected Resources for Allocation + resourceList: [], // Available Resources for Allocation + } + // Validateion Rules + this.formRules = { + name: {required: true, message: "Name can not be empty"}, + description: {required: true, message: "Description can not be empty"}, + start: {required: true, message: "Start Date can not be empty"}, + stop: {required: true, message: "Stop Date can not be empty"} + }; + this.defaultResourcesEnabled = true; // This property and functionality to be concluded based on PO input + this.defaultResources = [ + {name:'LOFAR Observing Time'}, + {name:'LOFAR Observing Time prio A'}, + {name:'LOFAR Observing Time prio B'}, + {name:'CEP Processing Time'}, + {name:'LTA Storage'}, + {name:'LOFAR LTA resources SARA'}, + {name:'LOFAR LTA resources Jülich'}, + {name:'LOFAR LTA resources Poznan'}, + {name:'LOFAR Observing time DDT/Commissioning'}, + {name:'LOFAR Support Time'}]; + this.cycleResourceDefaults = {}; // Default values for default resources + this.resourceUnitMap = UnitConverter.resourceUnitMap; // Resource unit conversion factor and constraints + this.tooltipOptions = UIConstants.tooltipOptions; + this.setCycleQuotaDefaults = this.setCycleQuotaDefaults.bind(this); + this.addNewResource = this.addNewResource.bind(this); + this.removeResource = this.removeResource.bind(this); + this.setCycleQuotaParams = this.setCycleQuotaParams.bind(this); + this.saveCycle = this.saveCycle.bind(this); + this.cancelCreate = this.cancelCreate.bind(this); + this.reset = this.reset.bind(this); + } + + componentDidMount() { + CycleService.getResources() + .then(resourceList => { + const defaultResources = this.defaultResources; + resourceList = _.sortBy(resourceList, "name"); + const resources = _.remove(resourceList, function(resource) { return _.find(defaultResources, {'name': resource.name})!=null }); + const cycleQuota = this.setCycleQuotaDefaults(resources); + this.setState({resourceList: resourceList, resources: resources, cycleQuota: cycleQuota, isLoading: false}); + }); + } + + /** + * Cycle option sub-component with cycle object + */ + cycleOptionTemplate(option) { + return ( + <div className="p-clearfix"> + <span style={{fontSize:'1em',float:'right',margin:'1em .5em 0 0'}}>{option.name}</span> + </div> + ); + } + + /** + * Function to set cycle resource allocation + * @param {Array} resources + */ + setCycleQuotaDefaults(resources) { + let cycleQuota = this.state.cycleQuota; + for (const resource of resources) { + // const conversionFactor = this.resourceUnitMap[resource.quantity_value]?this.resourceUnitMap[resource.quantity_value].conversionFactor:1; + // cycleQuota[resource['name']] = this.cycleResourceDefaults[resource.name]/conversionFactor; + cycleQuota[resource['name']] = 0; + } + return cycleQuota; + } + + /** + * Function to add new resource to Cycle + */ + addNewResource(){ + if (this.state.newResource) { + let resourceList = this.state.resourceList; + const newResource = _.remove(resourceList, {'name': this.state.newResource}); + let resources = this.state.resources; + resources.push(newResource[0]); + this.setState({resources: resources, resourceList: resourceList, newResource: null}); + } + } + + /** + * Callback function to be called from ResourceInpulList when a resource is removed from it + * @param {string} name - resource_type_id + */ + removeResource(name) { + let resources = this.state.resources; + let resourceList = this.state.resourceList; + let cycleQuota = this.state.cycleQuota; + const removedResource = _.remove(resources, (resource) => { return resource.name === name }); + resourceList.push(removedResource[0]); + resourceList = _.sortBy(resourceList, 'name'); + delete cycleQuota[name]; + this.setState({resourceList: resourceList, resources: resources, cycleQuota: cycleQuota}); + } + + /** + * Function to call on change and blur events from input components + * @param {string} key + * @param {any} value + */ + setCycleParams(key, value, type) { + let cycle = this.state.cycle; + switch(type) { + case 'NUMBER': { + cycle[key] = value?parseInt(value):0; + break; + } + default: { + cycle[key] = value; + break; + } + + } + this.setState({cycle: cycle, validForm: this.validateForm(key)}); + } + + /** + * Callback Function to call from ResourceInputList on change and blur events + * @param {string} key + * @param {InputEvent} event + */ + setCycleQuotaParams(key, event) { + let cycleQuota = this.state.cycleQuota; + if (event.target.value) { + let resource = _.find(this.state.resources, {'name': key}); + + let newValue = 0; + if (this.resourceUnitMap[resource.quantity_value] && + event.target.value.toString().indexOf(this.resourceUnitMap[resource.quantity_value].display)>=0) { + newValue = event.target.value.replace(this.resourceUnitMap[resource.quantity_value].display,''); + } else { + newValue = event.target.value; + } + cycleQuota[key] = (newValue==="NaN" || isNaN(newValue))?0:newValue; + } else { + let cycleQuota = this.state.cycleQuota; + cycleQuota[key] = 0; + } + this.setState({cycleQuota: cycleQuota}); + } + + /** + * Validation function to validate the form or field based on the form rules. + * If no argument passed for fieldName, validates all fields in the form. + * @param {string} fieldName + */ + validateForm(fieldName) { + let validForm = false; + let errors = this.state.errors; + let validFields = this.state.validFields; + if (fieldName) { + delete errors[fieldName]; + delete validFields[fieldName]; + if (this.formRules[fieldName]) { + const rule = this.formRules[fieldName]; + const fieldValue = this.state.cycle[fieldName]; + if (rule.required) { + if (!fieldValue) { + errors[fieldName] = rule.message?rule.message:`${fieldName} is required`; + } else { + validFields[fieldName] = true; + } + } + } + } else { + errors = {}; + validFields = {}; + for (const fieldName in this.formRules) { + const rule = this.formRules[fieldName]; + const fieldValue = this.state.cycle[fieldName]; + if (rule.required) { + if (!fieldValue) { + errors[fieldName] = rule.message?rule.message:`${fieldName} is required`; + } else { + validFields[fieldName] = true; + } + } + } + } + + this.setState({errors: errors, validFields: validFields}); + if (Object.keys(validFields).length === Object.keys(this.formRules).length) { + validForm = true; + } + + if(this.state.cycle['start'] && this.state.cycle['stop']){ + var isSameOrAfter = moment(this.state.cycle['stop']).isSameOrAfter(this.state.cycle['start']); + if(!isSameOrAfter){ + errors['stop'] = ` Stop date can not be before Start date`; + validForm = false; + }else{ + validForm = true; + } + } + return validForm; + } + + /** + * Function to call when 'Save' button is clicked to save the Cycle. + */ + saveCycle() { + if (this.validateForm) { + let cycleQuota = []; + let cycle = this.state.cycle; + let stoptime = _.replace(this.state.cycle['stop'],'00:00:00', '23:59:59'); + cycle['start'] = moment(cycle['start']).format("YYYY-MM-DDTHH:mm:ss"); + cycle['stop'] = moment(stoptime).format("YYYY-MM-DDTHH:mm:ss"); + this.setState({cycle: cycle}); + for (const resource in this.state.cycleQuota) { + let resourceType = _.find(this.state.resources, {'name': resource}); + if(resourceType){ + let quota = { cycle: this.state.cycle.name, + resource_type: resourceType['url'], + value: this.state.cycleQuota[resource] * (this.resourceUnitMap[resourceType.quantity_value]?this.resourceUnitMap[resourceType.quantity_value].conversionFactor:1)}; + cycleQuota.push(quota); + } + + } + + CycleService.saveCycle(this.state.cycle, this.defaultResourcesEnabled?cycleQuota:[]) + .then(cycle => { + if (cycle.url) { + let dialog = {}; + if (this.defaultResourcesEnabled) { + dialog = {header: 'Success', detail: 'Cycle saved successfully. Do you want to create another Cycle?'}; + } else { + dialog = {header: 'Success', detail: 'Cycle saved successfully with default Resource allocations. Do you want to view and edit them?'}; + } + this.setState({cycle:cycle, dialogVisible: true, dialog: dialog}) + } else { + this.growl.show({severity: 'error', summary: 'Error Occured', detail: 'Unable to save Cycle'}); + this.setState({errors: cycle}); + } + }); + } + } + + /** + * Function to cancel form creation and navigate to other page/component + */ + cancelCreate() { + this.setState({redirect: '/cycle'}); + } + + /** + * Reset function to be called to reset the form fields + */ + reset() { + if (this.defaultResourcesEnabled) { + let prevResources = this.state.resources; + let resourceList = []; + let resources = []; + if (resources) { + const defaultResources = this.defaultResources; + resourceList = _.sortBy(prevResources.concat(this.state.resourceList), "name"); + resources = _.remove(resourceList, function(resource) { return _.find(defaultResources, {'name': resource.name})!=null }); + } + const cycleQuota = this.setCycleQuotaDefaults(resources); + this.setState({ + dialog: { header: '', detail: ''}, + cycle: { + name: '', + description: '', + start: '', + stop: '', + projects: [], + quota: [], + }, + cycleQuota: cycleQuota, + validFields: {}, + validForm: false, + errors: {}, + dialogVisible: false, + resources: resources, + resourceList: resourceList + }); + } else { + this.setState({redirect: `/cycle/edit/${this.state.cycle.name}`}) + } + } + + render() { + if (this.state.redirect) { + return <Redirect to={ {pathname: this.state.redirect} }></Redirect> + } + + return ( + <React.Fragment> + <div className="p-grid"> + <Growl ref={(el) => this.growl = el} /> + + <div className="p-col-10 p-lg-10 p-md-10"> + <h2>Cycle - Add</h2> + </div> + <div className="p-col-2 p-lg-2 p-md-2"> + <Link to={{ pathname: '/cycle'}} tite="Close Edit" style={{float: "right"}}> + <i className="fa fa-window-close" style={{marginTop: "10px"}}></i> + </Link> + </div> + </div> + { this.state.isLoading ? <AppLoader /> : + <> + <div> + <div className="p-fluid"> + <div className="p-field p-grid" style={{display: 'none'}}> + <label htmlFor="cycleId" className="col-lg-2 col-md-2 col-sm-12">URL </label> + <div className="col-lg-4 col-md-4 col-sm-12"> + <input id="cycleId" data-testid="cycleId" value={this.state.cycle.url} /> + </div> + </div> + <div className="p-field p-grid"> + <label htmlFor="cycleName" className="col-lg-2 col-md-2 col-sm-12">Name <span style={{color:'red'}}>*</span></label> + <div className="col-lg-3 col-md-3 col-sm-12"> + <InputText className={this.state.errors.name ?'input-error':''} id="cycleName" data-testid="name" + tooltip="Enter name of the cycle" tooltipOptions={this.tooltipOptions} maxLength="128" + value={this.state.cycle.name} + onChange={(e) => this.setCycleParams('name', e.target.value)} + onBlur={(e) => this.setCycleParams('name', e.target.value)}/> + <label className={this.state.errors.name?"error":"info"}> + {this.state.errors.name ? this.state.errors.name : "Max 128 characters"} + </label> + </div> + <div className="col-lg-1 col-md-1 col-sm-12"></div> + <label htmlFor="description" className="col-lg-2 col-md-2 col-sm-12">Description <span style={{color:'red'}}>*</span></label> + <div className="col-lg-3 col-md-3 col-sm-12"> + <InputTextarea className={this.state.errors.description ?'input-error':''} rows={3} cols={30} + tooltip="Short description of the cycle" tooltipOptions={this.tooltipOptions} maxLength="128" + data-testid="description" value={this.state.cycle.description} + onChange={(e) => this.setCycleParams('description', e.target.value)} + onBlur={(e) => this.setCycleParams('description', e.target.value)}/> + <label className={this.state.errors.description ?"error":"info"}> + {this.state.errors.description ? this.state.errors.description : "Max 255 characters"} + </label> + </div> + </div> + + <div className="p-field p-grid"> + <label htmlFor="cycleName" className="col-lg-2 col-md-2 col-sm-12">Start Date <span style={{color:'red'}}>*</span></label> + <div className="col-lg-3 col-md-3 col-sm-12"> + <Calendar + d dateFormat="dd-M-yy" + value= {this.state.cycle.start} + onChange= {e => this.setCycleParams('start',e.value)} + onBlur= {e => this.setCycleParams('start',e.value)} + data-testid="start" + tooltip="Moment at which the cycle starts, that is, when its projects can run." tooltipOptions={this.tooltipOptions} + showIcon={true} + /> + + <label className={this.state.errors.start?"error":"info"}> + {this.state.errors.start ? this.state.errors.start : ""} + </label> + </div> + <div className="col-lg-1 col-md-1 col-sm-12"></div> + <label htmlFor="cycleName" className="col-lg-2 col-md-2 col-sm-12">Stop Date <span style={{color:'red'}}>*</span></label> + <div className="col-lg-3 col-md-3 col-sm-12"> + <Calendar + d dateFormat="dd-M-yy" + value= {this.state.cycle.stop} + onChange= {e => this.setCycleParams('stop', e.value)} + onBlur= {e => this.setCycleParams('stop',e.value)} + data-testid="stop" + tooltip="Moment at which the cycle officially ends." tooltipOptions={this.tooltipOptions} + showIcon={true} + /> + + <label className={this.state.errors.stop?"error":"info"}> + {this.state.errors.stop ? this.state.errors.stop : ""} + </label> + </div> + </div> + + {this.defaultResourcesEnabled && this.state.resourceList && + <div className="p-fluid"> + <div className="p-field p-grid"> + <div className="col-lg-2 col-md-2 col-sm-12"> + <h5 data-testid="resource_alloc">Resource Allocations</h5> + </div> + <div className="col-lg-3 col-md-3 col-sm-10"> + <Dropdown optionLabel="name" optionValue="name" + tooltip="Resources to be allotted for the cycle" + tooltipOptions={this.tooltipOptions} + value={this.state.newResource} + options={this.state.resourceList} + onChange={(e) => {this.setState({'newResource': e.value})}} + placeholder="Add Resources" /> + </div> + <div className="col-lg-2 col-md-2 col-sm-2"> + <Button label="" className="p-button-primary" icon="pi pi-plus" onClick={this.addNewResource} data-testid="add_res_btn" /> + </div> + </div> + <div className="p-field p-grid resource-input-grid"> + <ResourceInputList list={this.state.resources} unitMap={this.resourceUnitMap} + cycleQuota={this.state.cycleQuota} callback={this.setCycleQuotaParams} + removeInputCallback={this.removeResource} /> + </div> + </div> + } + </div> + </div> + <div className="p-grid p-justify-start act-btn-grp"> + <div className="p-col-1"> + <Button label="Save" className="p-button-primary" id="save-btn" data-testid="save-btn" icon="pi pi-check" onClick={this.saveCycle} disabled={!this.state.validForm} /> + </div> + <div className="p-col-1"> + <Button label="Cancel" className="p-button-danger" icon="pi pi-times" onClick={this.cancelCreate} /> + </div> + </div> + </> + } + + {/* Dialog component to show messages and get input */} + <div className="p-grid" data-testid="confirm_dialog"> + <Dialog header={this.state.dialog.header} visible={this.state.dialogVisible} style={{width: '25vw'}} inputId="confirm_dialog" + modal={true} onHide={() => {this.setState({dialogVisible: false})}} + footer={<div> + <Button key="back" onClick={() => {this.setState({dialogVisible: false}); this.cancelCreate();}} label="No" /> + <Button key="submit" type="primary" onClick={this.reset} label="Yes" /> + </div> + } > + <div className="p-grid"> + <div className="col-lg-2 col-md-2 col-sm-2"> + <i className="pi pi-check-circle pi-large pi-success"></i> + </div> + <div className="col-lg-10 col-md-10 col-sm-10"> + <span style={{marginTop:"5px"}}>{this.state.dialog.detail}</span> + </div> + </div> + </Dialog> + </div> + + </React.Fragment> + ); + } +} \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/create.test.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/create.test.js new file mode 100644 index 0000000000000000000000000000000000000000..d738a4a909a0efe7fa9079432fb34aa161fb84e3 --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/create.test.js @@ -0,0 +1,346 @@ +import React from 'react'; +import { BrowserRouter as Router } from 'react-router-dom'; +import { act } from "react-dom/test-utils"; +import { render, cleanup, fireEvent } from '@testing-library/react'; +import '@testing-library/jest-dom/extend-expect'; + +import {CycleCreate} from './create'; +import CycleService from '../../services/cycle.service'; + +import CycleServiceMock from '../../__mocks__/cycle.service.data'; + +let saveCycleSpy, resourcesSpy, cycleResourceDefaultsSpy; + +beforeEach(() => { + setMockSpy(); +}); + +afterEach(() => { + // cleanup on exiting + clearMockSpy(); + cleanup(); +}); + +/** + * To set mock spy for Services that have API calls to the back end to fetch data + */ +const setMockSpy = (() => { + + resourcesSpy = jest.spyOn(CycleService, 'getResources'); + resourcesSpy.mockImplementation(() => { + return Promise.resolve(CycleServiceMock.resources); + }); + + + saveCycleSpy = jest.spyOn(CycleService, 'saveCycle'); + saveCycleSpy.mockImplementation((cycle, cycleQuota) => { + cycle.url = `http://localhost:3000/api/cycle/${cycle.name}`; + return Promise.resolve(cycle) + }); +}); + +const clearMockSpy = (() => { + saveCycleSpy.mockRestore(); +}); + +it("renders without crashing with all back-end data loaded", async () => { + console.log("renders without crashing with all back-end data loaded ------------------------"); + + let content; + await act(async () => { + content = render(<Router><CycleCreate /></Router>); + }); + + expect(content.queryByText('Cycle - Add')).not.toBe(null); // Page loaded successfully + expect(content.queryAllByText('Add Resources').length).toBe(2); // Resource Dropdown loaded successfully + expect(content.queryByText('Support hours')).toBeInTheDocument(); // Resources other than Default Resources listed in dropdown + expect(content.queryByPlaceholderText('Support Hours')).toBe(null); // No resources other than Default Resources listed to get input + expect(content.queryByPlaceholderText('LOFAR Observing Time').value).toBe('1 Hours'); // Default Resource Listed with default value +}); + +it("Save button disabled initially when no data entered", async () => { + console.log("Save button disabled initially when no data entered -----------------------"); + let content; + await act(async () => { + content = render(<Router><CycleCreate /></Router>); + }); + expect(content.queryByTestId('save-btn')).toHaveAttribute("disabled"); +}); + +it("Save button enabled when mandatory data entered", async () => { + console.log("Save button enabled when mandatory data entered -----------------------"); + let content; + await act(async () => { + content = render(<Router><CycleCreate /></Router>); + }); + const nameInput = content.queryByTestId('name'); + const descInput = content.queryByTestId('description'); + const startInput = content.queryByTestId('start'); + const stopInput = content.queryByTestId('stop'); + + fireEvent.change(nameInput, { target: { value: 'Cycle-12' } }); + expect(nameInput.value).toBe("Cycle-12"); + + fireEvent.change(descInput, { target: { value: 'Cycle-12' } }); + expect(descInput.value).toBe("Cycle-12"); + + fireEvent.change(startInput, { target: { value: '2020-07-29 11:12:15' } }); + expect(startInput.value).toBe("2020-07-29 11:12:15"); + + fireEvent.change(stopInput, { target: { value: '2020-07-30 11:12:15' } }); + expect(stopInput.value).toBe("2020-07-30 11:12:15"); + expect(content.queryByTestId('save-btn').hasAttribute("disabled")).toBeFalsy(); +}); + +it("renders Save button enabled when all data entered", async () => { + console.log("renders Save button enabled when all data entered -----------------------"); + let content; + await act(async () => { + content = render(<Router><CycleCreate /></Router>); + }); + + const nameInput = content.queryByTestId('name'); + const descInput = content.queryByTestId('description'); + const startInput = content.queryByTestId('start'); + const stopInput = content.queryByTestId('stop'); + + fireEvent.change(nameInput, { target: { value: 'Cycle-12' } }); + expect(nameInput.value).toBe("Cycle-12"); + + fireEvent.change(descInput, { target: { value: 'Cycle-12' } }); + expect(descInput.value).toBe("Cycle-12"); + + fireEvent.change(startInput, { target: { value: '2020-07-29 11:12:15' } }); + expect(startInput.value).toBe("2020-07-29 11:12:15"); + + fireEvent.change(stopInput, { target: { value: '2020-07-30 11:12:15' } }); + expect(stopInput.value).toBe("2020-07-30 11:12:15"); + + expect(content.queryByTestId('save-btn').hasAttribute("disabled")).toBeFalsy(); + +}); + +it("save cycle with mandatory fields", async () => { + console.log("save cycle -----------------------"); + let content; + await act(async () => { + content = render(<Router><CycleCreate /></Router>); + }); + + const nameInput = content.queryByTestId('name'); + const descInput = content.queryByTestId('description'); + const startInput = content.queryByTestId('start'); + const stopInput = content.queryByTestId('stop'); + + fireEvent.change(nameInput, { target: { value: 'Cycle-12' } }); + expect(nameInput.value).toBe("Cycle-12"); + fireEvent.change(descInput, { target: { value: 'Cycle-12' } }); + expect(descInput.value).toBe("Cycle-12"); + + fireEvent.change(startInput, { target: { value: '2020-07-29 11:12:15' } }); + expect(startInput.value).toBe("2020-07-29 11:12:15"); + + fireEvent.change(stopInput, { target: { value: '2020-07-30 11:12:15' } }); + expect(stopInput.value).toBe("2020-07-30 11:12:15"); + + expect(content.queryByTestId('save-btn').hasAttribute("disabled")).toBeFalsy(); + expect(content.queryByTestId('cycleId').value).toBe(""); + expect(content.queryByText("Success")).toBe(null); + + await act(async () => { + fireEvent.click(content.queryByTestId('save-btn')); + }); + + // After saving cycle, URL should be available and Success dialog should be displayed + expect(content.queryByTestId('cycleId').value).toBe("http://localhost:3000/api/cycle/Cycle-12"); + expect(content.queryByText("Success")).not.toBe(null); +}); + +it("save cycle with default resources", async () => { + console.log("save cycle with default resources -----------------------"); + let content; + await act(async () => { + content = render(<Router><CycleCreate /></Router>); + }); + + const nameInput = content.queryByTestId('name'); + const descInput = content.queryByTestId('description'); + const startInput = content.queryByTestId('start'); + const stopInput = content.queryByTestId('stop'); + + fireEvent.change(nameInput, { target: { value: 'Cycle-12' } }); + expect(nameInput.value).toBe("Cycle-12"); + fireEvent.change(descInput, { target: { value: 'Cycle-12' } }); + expect(descInput.value).toBe("Cycle-12"); + + fireEvent.change(startInput, { target: { value: '2020-07-29 11:12:15' } }); + expect(startInput.value).toBe("2020-07-29 11:12:15"); + + fireEvent.change(stopInput, { target: { value: '2020-07-30 11:12:15' } }); + expect(stopInput.value).toBe("2020-07-30 11:12:15"); + + expect(content.queryByTestId('save-btn').hasAttribute("disabled")).toBeFalsy(); + expect(content.queryByTestId('cycleId').value).toBe(""); + expect(content.queryByText("Success")).toBe(null); + + const lofarObsTimeInput = content.queryByPlaceholderText('LOFAR Observing Time'); + fireEvent.change(lofarObsTimeInput, { target: { value: 10 } }); + expect(lofarObsTimeInput.value).toBe('10'); + + const lofarObsTimeAInput = content.queryByPlaceholderText('LOFAR Observing Time prio A'); + fireEvent.change(lofarObsTimeAInput, { target: { value: 15 } }); + expect(lofarObsTimeAInput.value).toBe('15'); + + const lofarObsTimeBInput = content.queryByPlaceholderText('LOFAR Observing Time prio B'); + fireEvent.change(lofarObsTimeBInput, { target: { value: 20 } }); + expect(lofarObsTimeBInput.value).toBe('20'); + + const cepProcTimeInput = content.queryByPlaceholderText('CEP Processing Time'); + fireEvent.change(cepProcTimeInput, { target: { value: 5 } }); + expect(cepProcTimeInput.value).toBe('5'); + + const ltaStorageInput = content.queryByPlaceholderText('LTA Storage'); + fireEvent.change(ltaStorageInput, { target: { value: 2 } }); + expect(ltaStorageInput.value).toBe('2'); + + const noOfTriggerInput = content.queryByPlaceholderText('Number of triggers'); + fireEvent.change(noOfTriggerInput, { target: { value: 3 } }); + expect(noOfTriggerInput.value).toBe('3'); + + const lofarSupTimeInput = content.queryByPlaceholderText('LOFAR Support Time'); + fireEvent.change(lofarSupTimeInput, { target: { value: 25 } }); + expect(lofarSupTimeInput.value).toBe('25'); + + await act(async () => { + fireEvent.click(content.queryByTestId('save-btn')); + }); + + // After saving cycle, URL should be available and Success dialog should be displayed + expect(content.queryByTestId('cycleId').value).toBe("http://localhost:3000/api/cycle/Cycle-12"); + expect(content.queryByText("Success")).not.toBe(null); +}); + +it("save cycle with added resources", async () => { + console.log("save cycle with added resources -----------------------"); + let content; + await act(async () => { + content = render(<Router><CycleCreate /></Router>); + }); + + const nameInput = content.queryByTestId('name'); + const descInput = content.queryByTestId('description'); + const startInput = content.queryByTestId('start'); + const stopInput = content.queryByTestId('stop'); + + fireEvent.change(nameInput, { target: { value: 'Cycle-12' } }); + expect(nameInput.value).toBe("Cycle-12"); + fireEvent.change(descInput, { target: { value: 'Cycle-12' } }); + expect(descInput.value).toBe("Cycle-12"); + + fireEvent.change(startInput, { target: { value: '2020-07-29 11:12:15' } }); + expect(startInput.value).toBe("2020-07-29 11:12:15"); + + fireEvent.change(stopInput, { target: { value: '2020-07-30 11:12:15' } }); + expect(stopInput.value).toBe("2020-07-30 11:12:15"); + + expect(content.queryByTestId('save-btn').hasAttribute("disabled")).toBeFalsy(); + expect(content.queryByTestId('cycleId').value).toBe(""); + expect(content.queryByText("Success")).toBe(null); + + const lofarObsTimeInput = content.queryByPlaceholderText('LOFAR Observing Time'); + fireEvent.change(lofarObsTimeInput, { target: { value: 10 } }); + expect(lofarObsTimeInput.value).toBe('10'); + + const lofarObsTimeAInput = content.queryByPlaceholderText('LOFAR Observing Time prio A'); + fireEvent.change(lofarObsTimeAInput, { target: { value: 15 } }); + expect(lofarObsTimeAInput.value).toBe('15'); + + const lofarObsTimeBInput = content.queryByPlaceholderText('LOFAR Observing Time prio B'); + fireEvent.change(lofarObsTimeBInput, { target: { value: 20 } }); + expect(lofarObsTimeBInput.value).toBe('20'); + + const cepProcTimeInput = content.queryByPlaceholderText('CEP Processing Time'); + fireEvent.change(cepProcTimeInput, { target: { value: 5 } }); + expect(cepProcTimeInput.value).toBe('5'); + + const ltaStorageInput = content.queryByPlaceholderText('LTA Storage'); + fireEvent.change(ltaStorageInput, { target: { value: 2 } }); + expect(ltaStorageInput.value).toBe('2'); + + const noOfTriggerInput = content.queryByPlaceholderText('Number of triggers'); + fireEvent.change(noOfTriggerInput, { target: { value: 3 } }); + expect(noOfTriggerInput.value).toBe('3'); + + const lofarSupTimeInput = content.queryByPlaceholderText('LOFAR Support Time'); + fireEvent.change(lofarSupTimeInput, { target: { value: 25 } }); + expect(lofarSupTimeInput.value).toBe('25'); + + // Before selecting New Resource + expect(content.queryAllByText('Add Resources').length).toBe(2); + expect(content.queryAllByText('Support hours').length).toBe(1); + expect(content.getAllByRole("listbox")[3].children.length).toBe(2); + expect(content.queryByPlaceholderText('Support hours')).toBe(null); + const addResourceInput = content.getAllByRole("listbox")[3].children[1] ; + fireEvent.click(addResourceInput); + // After selecting New Resource + expect(content.queryAllByText('Add Resources').length).toBe(1); + expect(content.queryAllByText('Support hours').length).toBe(3); + + const addResourceBtn = content.queryByTestId('add_res_btn'); + fireEvent.click(addResourceBtn); + expect(content.queryAllByText('Add Resources').length).toBe(2); + expect(content.queryByPlaceholderText('Support hours')).not.toBe(null); + + const newResourceInput = content.queryByPlaceholderText('Support hours'); + fireEvent.change(newResourceInput, { target: { value: 30 } }); + expect(newResourceInput.value).toBe('30'); + + + await act(async () => { + fireEvent.click(content.queryByTestId('save-btn')); + }); + + // After saving cycle, URL should be available and Success dialog should be displayed + expect(content.queryByTestId('cycleId').value).toBe("http://localhost:3000/api/cycle/Cycle-12"); + expect(content.queryByText("Success")).not.toBe(null); +}); + +it("remove default resource and added resource", async () => { + console.log("remove default resource and added resource -----------------------"); + let content; + await act(async () => { + content = render(<Router><CycleCreate /></Router>); + }); + + // Before selecting New Resource + expect(content.queryAllByText('Add Resources').length).toBe(2); + expect(content.queryAllByText('Support hours').length).toBe(1); + expect(content.getAllByRole("listbox")[3].children.length).toBe(2); + expect(content.queryByPlaceholderText('Support hours')).toBe(null); + const addResourceInput = content.getAllByRole("listbox")[3].children[1] ; + fireEvent.click(addResourceInput); + // After selecting New Resource + expect(content.queryAllByText('Add Resources').length).toBe(1); + expect(content.queryAllByText('Support hours').length).toBe(3); + + const addResourceBtn = content.queryByTestId('add_res_btn'); + fireEvent.click(addResourceBtn); + expect(content.queryAllByText('Add Resources').length).toBe(2); + expect(content.queryByPlaceholderText('Support hours')).not.toBe(null); + + expect(content.queryByPlaceholderText('CEP Processing Time')).not.toBe(null); + expect(content.queryByTestId('CEP Processing Time-btn')).not.toBe(null); + const removeDefResBtn = content.queryByTestId('CEP Processing Time-btn'); + await act(async () => { + fireEvent.click(content.queryByTestId('CEP Processing Time-btn')); + }); + expect(content.queryByPlaceholderText('CEP Processing Time')).toBe(null); + expect(content.queryByTestId('CEP Processing Time-btn')).toBe(null); + + const removeResourceBtn = content.queryByTestId('Support hours-btn'); + fireEvent.click(removeResourceBtn); + expect(content.queryAllByText('Add Resources').length).toBe(2); + expect(content.queryAllByText('Support hours').length).toBe(1); + expect(content.getAllByRole("listbox")[3].children.length).toBe(3); + +}); \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/edit.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/edit.js new file mode 100644 index 0000000000000000000000000000000000000000..4d599c33ef64cd790084b5f0012a3c2ad3fde1e4 --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/edit.js @@ -0,0 +1,505 @@ +import React, {Component} from 'react'; +import { Link, Redirect } from 'react-router-dom'; +import _ from 'lodash'; +import moment from 'moment' + +import {InputText} from 'primereact/inputtext'; +import {Calendar} from 'primereact/calendar'; +import {InputTextarea} from 'primereact/inputtextarea'; +import {Dropdown} from 'primereact/dropdown'; +import { Button } from 'primereact/button'; +import {Dialog} from 'primereact/components/dialog/Dialog'; +import {Growl} from 'primereact/components/growl/Growl'; + +import {ResourceInputList} from './ResourceInputList'; + +import AppLoader from '../../layout/components/AppLoader'; +import CycleService from '../../services/cycle.service'; +import UnitConverter from '../../utils/unit.converter'; +import UIConstants from '../../utils/ui.constants'; + +export class CycleEdit extends Component { + constructor(props) { + super(props); + this.state = { + isLoading: true, + dialog: { header: '', detail: ''}, + cycle: { + projects: [], + quota: [], // Mandatory Field in the back end + }, + cycleQuota: {}, // Holds the value of resources selected with resource_type_id as key + validFields: {}, // Holds the list of valid fields based on the form rules + validForm: false, // To enable Save Button + errors: {}, + resources: [], // Selected resources for the cycle + resourceList: [], // Available resources to select for the cycle + redirect: this.props.match.params.id?"":'/cycle/list' //If no cycle name passed redirect to Cycle list page + } + this.cycleQuota = [] // Holds the old list of cycle_quota saved for the cycle + // Validation Rules + this.formRules = { + name: {required: true, message: "Name can not be empty"}, + description: {required: true, message: "Description can not be empty"}, + start: {required: true, message: "Start Date can not be empty"}, + stop: {required: true, message: "Stop Date can not be empty"}, + }; + this.defaultResources = [ + {name:'LOFAR Observing Time'}, + {name:'LOFAR Observing Time prio A'}, + {name:'LOFAR Observing Time prio B'}, + {name:'LOFAR Processing time '}, + {name:'LOFAR LTA resources'}, + {name:'LOFAR LTA resources SARA'}, + {name:'LOFAR LTA resources Jülich'}, + {name:'LOFAR LTA resources Poznan'}, + {name:'LOFAR Observing time DDT/Commissioning'}, + {name:'LOFAR Support'}]; + this.cycleResourceDefaults = {}; + this.resourceUnitMap = UnitConverter.resourceUnitMap; + this.tooltipOptions = UIConstants.tooltipOptions; + + this.getCycleDetails = this.getCycleDetails.bind(this); + this.cycleOptionTemplate = this.cycleOptionTemplate.bind(this); + this.setCycleQuotaDefaults = this.setCycleQuotaDefaults.bind(this); + this.setCycleParams = this.setCycleParams.bind(this); + this.addNewResource = this.addNewResource.bind(this); + this.removeResource = this.removeResource.bind(this); + this.setCycleQuotaParams = this.setCycleQuotaParams.bind(this); + this.saveCycle = this.saveCycle.bind(this); + this.saveCycleQuota = this.saveCycleQuota.bind(this); + this.cancelEdit = this.cancelEdit.bind(this); + } + + componentDidMount() { + CycleService.getCycle(this.props.match.params.id) + .then(result =>{ + this.setState({ + cycle: result.data, + isLoading : false, + }) + }) + .then(()=>{ + CycleService.getResources() + .then(resourceList => { + this.setState({resourceList: resourceList}); + }) + .then((resourceList, resources) => { + this.getCycleDetails(); + }); + }) + } + + /** + * Function retrieve cycle details and resource allocations(cycle_quota) and assign to appropriate varaibles + */ + async getCycleDetails() { + let cycle = this.state.cycle; + let resourceList = this.state.resourceList; + let cycleQuota = {}; + if (cycle) { + // Get cycle_quota for the cycle and asssign to the component variable + for (const id of cycle.quota_ids) { + let quota = await CycleService.getCycleQuota(id); + let resource = _.find(resourceList, ['name', quota.resource_type_id]); + quota.resource = resource; + this.cycleQuota.push(quota); + const conversionFactor = this.resourceUnitMap[resource.quantity_value]?this.resourceUnitMap[resource.quantity_value].conversionFactor:1; + cycleQuota[quota.resource_type_id] = quota.value / conversionFactor; + }; + // Remove the already assigned resources from the resoureList + const resources = _.remove(resourceList, (resource) => { return _.find(this.cycleQuota, {'resource_type_id': resource.name})!=null }); + this.setState({cycle: cycle, resourceList: resourceList, resources: resources, + cycleQuota: cycleQuota, isLoading: false}); + + // Validate form if all values are as per the form rules and enable Save button + this.validateForm(); + } else { + this.setState({redirect: '../../not-found'}); + } + } + + /** + * Cycle option sub-component with cycle object + */ + cycleOptionTemplate(option) { + return ( + <div className="p-clearfix"> + <span style={{fontSize:'1em',float:'right',margin:'1em .5em 0 0'}}>{option.name}</span> + </div> + ); + } + + /** + * Function to set cycle resource allocation + * @param {Array} resources + */ + setCycleQuotaDefaults(resources) { + let cycleQuota = this.state.cycleQuota; + for (const resource of resources) { + const conversionFactor = this.resourceUnitMap[resource.quantity_value]?this.resourceUnitMap[resource.quantity_value].conversionFactor:1; + cycleQuota[resource['name']] = this.cycleResourceDefaults[resource.name]/conversionFactor; + } + return cycleQuota; + } + + /** + * Function to add new resource to cycle + */ + addNewResource(){ + if (this.state.newResource) { + let resourceList = this.state.resourceList; + const newResource = _.remove(resourceList, {'name': this.state.newResource}); + let resources = this.state.resources?this.state.resources:[]; + resources.push(newResource[0]); + this.setState({resources: resources, resourceList: resourceList, newResource: null}); + } + } + + /** + * Callback function to be called from ResourceInpulList when a resource is removed from it + * @param {string} name - resource_type_id + */ + removeResource(name) { + let resources = this.state.resources; + let resourceList = this.state.resourceList; + let cycleQuota = this.state.cycleQuota; + const removedResource = _.remove(resources, (resource) => { return resource.name === name }); + resourceList.push(removedResource[0]); + delete cycleQuota[name]; + this.setState({resourceList: resourceList, resources: resources, cycleQuota: cycleQuota}); + } + + /** + * Function to call on change and blur events from input components + * @param {string} key + * @param {any} value + */ + setCycleParams(key, value, type) { + let cycle = this.state.cycle; + switch(type) { + case 'NUMBER': { + cycle[key] = value?parseInt(value):0; + break; + } + default: { + cycle[key] = value; + break; + } + } + this.setState({cycle: cycle, validForm: this.validateForm(key)}); + } + + /** + * Callback Function to call from ResourceInputList on change and blur events + * @param {string} key + * @param {InputEvent} event + */ + setCycleQuotaParams(key, event) { + let cycleQuota = this.state.cycleQuota; + if (event.target.value) { + let resource = _.find(this.state.resources, {'name': key}); + let newValue = 0; + if (this.resourceUnitMap[resource.quantity_value] && + event.target.value.toString().indexOf(this.resourceUnitMap[resource.quantity_value].display)>=0) { + newValue = event.target.value.replace(this.resourceUnitMap[resource.quantity_value].display,''); + } else { + newValue = event.target.value; + } + cycleQuota[key] = (newValue==="NaN" || isNaN(newValue))?0:newValue; + } else { + let cycleQuota = this.state.cycleQuota; + cycleQuota[key] = 0; + } + this.setState({cycleQuota: cycleQuota}); + } + + /** + * Validation function to validate the form or field based on the form rules. + * If no argument passed for fieldName, validates all fields in the form. + * @param {string} fieldName + */ + validateForm(fieldName) { + let validForm = false; + let errors = this.state.errors; + let validFields = this.state.validFields; + if (fieldName) { + delete errors[fieldName]; + delete validFields[fieldName]; + if (this.formRules[fieldName]) { + const rule = this.formRules[fieldName]; + const fieldValue = this.state.cycle[fieldName]; + if (rule.required) { + if (!fieldValue) { + errors[fieldName] = rule.message?rule.message:`${fieldName} is required`; + } else { + validFields[fieldName] = true; + } + } + } + } else { + errors = {}; + validFields = {}; + for (const fieldName in this.formRules) { + const rule = this.formRules[fieldName]; + const fieldValue = this.state.cycle[fieldName]; + if (rule.required) { + if (!fieldValue) { + errors[fieldName] = rule.message?rule.message:`${fieldName} is required`; + } else { + validFields[fieldName] = true; + } + } + } + } + + if (Object.keys(validFields).length === Object.keys(this.formRules).length) { + validForm = true; + } + + if(this.state.cycle['start'] && this.state.cycle['stop']){ + var isSameOrAfter = moment(this.state.cycle['stop']).isSameOrAfter(this.state.cycle['start']); + if(!isSameOrAfter){ + errors['stop'] = ` Stop date should be after Start date`; + validForm = false; + }else{ + validForm = true; + } + } + + this.setState({errors: errors, validFields: validFields, validForm: validForm}); + return validForm; + } + + /** + * Function to call when 'Save' button is clicked to update the cycle. + */ + saveCycle() { + if (this.validateForm) { + let cycle = this.state.cycle; + let stoptime = _.replace(this.state.cycle['stop'],'00:00:00', '23:59:59'); + cycle['start'] = moment(this.state.cycle['start']).format("YYYY-MM-DDTHH:mm:ss"); + cycle['stop'] = moment(stoptime).format("YYYY-MM-DDTHH:mm:ss"); + this.setState({cycle: cycle}); + CycleService.updateCycle(this.props.match.params.id, this.state.cycle) + .then(async (cycle) => { + if (cycle && this.state.cycle.updated_at !== cycle.updated_at) { + this.saveCycleQuota(cycle); + } else { + this.growl.show({severity: 'error', summary: 'Error Occured', detail: 'Unable to update Cycle'}); + this.setState({errors: cycle}); + } + }); + } + } + + /** + * Function to Create, Update & Delete cycle_quota for the cycle + */ + async saveCycleQuota(cycle) { + let dialog = {}; + let quotaError = {}; + let updatingCycleQuota = []; + let newCycleQuota = []; + let deletingCycleQuota = []; + for (const resource in this.state.cycleQuota) { + const resourceType = _.find(this.state.resources, {'name': resource}); + const conversionFactor = this.resourceUnitMap[resourceType.quantity_value]?this.resourceUnitMap[resourceType.quantity_value].conversionFactor:1 + let quotaValue = this.state.cycleQuota[resource] * conversionFactor; + let existingQuota = _.find(this.cycleQuota, {'resource_type_id': resource}); + if (!existingQuota) { + let quota = { cycle: cycle.url, + resource_type: resourceType['url'], + value: quotaValue }; + newCycleQuota.push(quota); + } else if (existingQuota && existingQuota.value !== quotaValue) { + existingQuota.cycle = cycle.url; + existingQuota.value = quotaValue; + updatingCycleQuota.push(existingQuota); + } + } + let cycleQuota = this.state.cycleQuota; + deletingCycleQuota = _.filter(this.cycleQuota, function(quota) { return !cycleQuota[quota.resource_type_id]}); + + for (const cycleQuota of deletingCycleQuota) { + const deletedCycleQuota = await CycleService.deleteCycleQuota(cycleQuota); + if (!deletedCycleQuota) { + quotaError[cycleQuota.resource_type_id] = true; + } + } + for (const cycleQuota of updatingCycleQuota) { + const updatedCycleQuota = await CycleService.updateCycleQuota(cycleQuota); + if (!updatedCycleQuota) { + quotaError[cycleQuota.resource_type_id] = true; + } + } + for (const cycleQuota of newCycleQuota) { + const createdCycleQuota = await CycleService.saveCycleQuota(cycleQuota); + if (!createdCycleQuota) { + quotaError[cycleQuota.resource_type_id] = true; + } + } + if (_.keys(quotaError).length === 0) { + dialog = {header: 'Success', detail: 'Cycle updated successfully.'}; + } else { + dialog = {header: 'Error', detail: 'Cycle updated successfully but resource allocation not updated properly. Try again!'}; + } + this.setState({dialogVisible: true, dialog: dialog}); + } + + /** + * Cancel edit and redirect to Cycle View page + */ + cancelEdit() { + this.setState({redirect: `/cycle/view/${this.state.cycle.name}`}); + } + + render() { + if (this.state.redirect) { + return <Redirect to={ {pathname: this.state.redirect} }></Redirect> + } + return ( + <React.Fragment> + <div className="p-grid"> + <Growl ref={(el) => this.growl = el} /> + + <div className="p-col-10 p-lg-10 p-md-10"> + <h2>Cycle - Edit</h2> + </div> + <div className="p-col-2 p-lg-2 p-md-2"> + <Link to={{ pathname: `/cycle/view/${this.state.cycle.name}`}} title="Close Edit" style={{float: "right"}}> + <i className="fa fa-window-close" style={{marginTop: "10px"}}></i> + </Link> + </div> + </div> + + { this.state.isLoading ? <AppLoader/> : + <> + <div> + <div className="p-fluid"> + <div className="p-field p-grid"> + <label htmlFor="cycleName" className="col-lg-2 col-md-2 col-sm-12">Name <span style={{color:'red'}}>*</span></label> + <div className="col-lg-3 col-md-3 col-sm-12"> + <InputText className={this.state.errors.name ?'input-error':''} id="cycleName" data-testid="name" + tooltip="Enter name of the cycle" tooltipOptions={this.tooltipOptions} maxLength="128" + value={this.state.cycle.name} + onChange={(e) => this.setCycleParams('name', e.target.value)} + onBlur={(e) => this.setCycleParams('name', e.target.value)}/> + <label className={this.state.errors.name?"error":"info"}> + {this.state.errors.name ? this.state.errors.name : "Max 128 characters"} + </label> + </div> + <div className="col-lg-1 col-md-1 col-sm-12"></div> + <label htmlFor="description" className="col-lg-2 col-md-2 col-sm-12">Description <span style={{color:'red'}}>*</span></label> + <div className="col-lg-3 col-md-3 col-sm-12"> + <InputTextarea className={this.state.errors.description ?'input-error':''} rows={3} cols={30} + tooltip="Short description of the cycle" tooltipOptions={this.tooltipOptions} maxLength="128" + data-testid="description" value={this.state.cycle.description} + onChange={(e) => this.setCycleParams('description', e.target.value)} + onBlur={(e) => this.setCycleParams('description', e.target.value)}/> + <label className={this.state.errors.description ?"error":"info"}> + {this.state.errors.description ? this.state.errors.description : "Max 255 characters"} + </label> + </div> + </div> + + <div className="p-field p-grid"> + <label htmlFor="cycleName" className="col-lg-2 col-md-2 col-sm-12">Start Date <span style={{color:'red'}}>*</span></label> + <div className="col-lg-3 col-md-3 col-sm-12"> + <Calendar + d dateFormat="dd-M-yy" + inputId="start" + value= {new Date(this.state.cycle.start)} + onChange= {e => this.setCycleParams('start',e.value)} + onBlur= {e => this.setCycleParams('start',e.value)} + data-testid="start" + tooltip="Moment at which the cycle starts, that is, when its projects can run." tooltipOptions={this.tooltipOptions} + showIcon={true} + /> + <label className={this.state.errors.start?"error":"info"}> + {this.state.errors.start ? this.state.errors.start : ""} + </label> + </div> + <div className="col-lg-1 col-md-1 col-sm-12"></div> + <label htmlFor="cycleName" className="col-lg-2 col-md-2 col-sm-12">Stop Date <span style={{color:'red'}}>*</span></label> + <div className="col-lg-3 col-md-3 col-sm-12"> + <Calendar + d dateFormat="dd-M-yy" + value= {new Date(this.state.cycle.stop)} + onChange= {e => this.setCycleParams('stop', e.value)} + onBlur= {e => this.setCycleParams('stop',e.value)} + inputId="stop" + data-testid="stop" + tooltip="Moment at which the cycle officially ends." tooltipOptions={this.tooltipOptions} + showIcon={true} + /> + <label className={this.state.errors.stop?"error":"info"}> + {this.state.errors.stop ? this.state.errors.stop : ""} + </label> + </div> + </div> + + {this.state.resourceList && + <div className="p-fluid"> + <div className="p-field p-grid"> + <div className="col-lg-2 col-md-2 col-sm-12"> + <h5>Resource Allocations:</h5> + </div> + <div className="col-lg-3 col-md-3 col-sm-10"> + <Dropdown optionLabel="name" optionValue="name" + tooltip="Resources to be allotted for the cycle" + tooltipOptions={this.tooltipOptions} + value={this.state.newResource} + options={_.sortBy(this.state.resourceList, ['name'])} + onChange={(e) => {this.setState({'newResource': e.value})}} + placeholder="Add Resources" /> + </div> + <div className="col-lg-2 col-md-2 col-sm-2"> + <Button label="" className="p-button-primary" icon="pi pi-plus" onClick={this.addNewResource} disabled={!this.state.newResource} data-testid="add_res_btn" /> + </div> + </div> + {/* {_.keys(this.state.cycleQuota).length>0 && */} + <div className="p-field p-grid resource-input-grid"> + <ResourceInputList list={this.state.resources} unitMap={this.resourceUnitMap} + cycleQuota={this.state.cycleQuota} callback={this.setCycleQuotaParams} + removeInputCallback={this.removeResource} /> + </div> + {/* } */} + </div> + } + </div> + </div> + <div className="p-grid p-justify-start act-btn-grp"> + <div className="p-col-1"> + <Button label="Save" className="p-button-primary" id="save-btn" data-testid="save-btn" icon="pi pi-check" onClick={this.saveCycle} disabled={!this.state.validForm} /> + </div> + <div className="p-col-1"> + <Button label="Cancel" className="p-button-danger" icon="pi pi-times" onClick={this.cancelEdit} /> + </div> + </div> + + </> + } + {/* Dialog component to show messages and get input */} + <div className="p-grid" data-testid="confirm_dialog"> + <Dialog header={this.state.dialog.header} visible={this.state.dialogVisible} style={{width: '30vw'}} inputId="confirm_dialog" + modal={true} onHide={() => {this.setState({dialogVisible: false})}} + footer={<div> + <Button key="back" onClick={() => {this.setState({dialogVisible: false}); this.cancelEdit();}} label="Ok" /> + {/* <Button key="submit" type="primary" onClick={this.reset} label="Yes" /> */} + </div> + } > + <div className="p-grid"> + <div className="col-lg-2 col-md-2 col-sm-2"> + <i className="pi pi-check-circle pi-large pi-success"></i> + </div> + <div className="col-lg-10 col-md-10 col-sm-10"> + <span style={{marginTop:"5px"}}>{this.state.dialog.detail}</span> + </div> + </div> + </Dialog> + </div> + </React.Fragment> + ); + } +} \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/index.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/index.js new file mode 100644 index 0000000000000000000000000000000000000000..a52436177a762d8b91a368fa6e9394ca77ee6f2c --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/index.js @@ -0,0 +1,6 @@ +import CycleList from './list'; +import {CycleCreate} from './create'; +import {CycleView} from './view'; +import {CycleEdit} from './edit'; + +export {CycleList, CycleCreate, CycleView, CycleEdit}; diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/list.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/list.js new file mode 100644 index 0000000000000000000000000000000000000000..6fe6f2cb46c4cd10e7e64362b08ad553f6e64b2e --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/list.js @@ -0,0 +1,153 @@ +import React, { Component } from 'react' +import 'primeflex/primeflex.css'; +import { Link } from 'react-router-dom/cjs/react-router-dom.min'; +import _ from 'lodash'; + +import ViewTable from '../../components/ViewTable'; +import CycleService from '../../services/cycle.service'; +import UnitConversion from '../../utils/unit.converter'; +import AppLoader from '../../layout/components/AppLoader'; + +class CycleList extends Component{ + constructor(props){ + super(props) + this.state = { + cyclelist: [], + paths: [{ + "View": "/cycle/view", + }], + isLoading: true + } + this.projectCategory = ['regular', 'user_shared_support']; + this.periodCategory = ['long_term']; + this.defaultcolumns = [ { id:"Cycle Code", + start:"Start Date", + stop: "End Date", + duration: "Duration (Days)", + totalProjects: 'No.of Projects', + observingTime: 'Lofar Observing Time (Hrs)', + processingTime: 'Lofar Processing Time (Hrs)', + ltaResources: 'Lofar LTA Resources(TB)', + support: 'Lofar Support (Hrs)', + longterm : 'Long Term Projects' } ]; + this.optionalcolumns = [{ regularProjects: 'No.of Regular Projects', + observingTimeDDT: 'Lofar Observing Time Commissioning (Hrs)', + observingTimePrioA: 'Lofar Observing Time Prio A (Hrs)', + observingTimePrioB: 'Lofar Observing Time Prio B (Hrs)', + actionpath: "actionpath", }]; + + this.columnclassname = [{ "Cycle Code":"filter-input-75", + "Duration (Days)" : "filter-input-50", + "No.of Projects" : "filter-input-50", + "Lofar Observing Time (Hrs)" : "filter-input-75", + "Lofar Processing Time (Hrs)" : "filter-input-75", + "Lofar LTA Resources(TB)" : "filter-input-75", + "Lofar Support (Hrs)" : "filter-input-50", + "Long Term Projects" : "filter-input-50", + "No.of Regular Projects" : "filter-input-50", + "Lofar Observing Time Commissioning (Hrs)" : "filter-input-75", + "Lofar Observing Time Prio A (Hrs)" : "filter-input-75", + "Lofar Observing Time Prio B (Hrs)" : "filter-input-75" }]; + + this.defaultSortColumn = [{id: "Cycle Code", desc: false}]; + } + + getUnitConvertedQuotaValue(cycle, cycleQuota, resourceName) { + const quota = _.find(cycleQuota, {'cycle_id': cycle.name, 'resource_type_id': resourceName}); + const unitQuantity = this.state.resources.find(i => i.name === resourceName).quantity_value; + return UnitConversion.getUIResourceUnit(unitQuantity, quota?quota.value:0); + } + + getCycles(cycles = [], cycleQuota) { + const promises = []; + cycles.map(cycle => promises.push(CycleService.getCycleById(cycle.name))); + Promise.all(promises).then(responses => { + const results = cycles; + results.map(async (cycle, index) => { + const projects = responses[index]; + const regularProjects = projects.filter(project => this.projectCategory.includes(project.project_category_value)); + const longterm = projects.filter(project => this.periodCategory.includes(project.period_category_value)); + cycle.duration = UnitConversion.getUIResourceUnit('days', cycle.duration); + cycle.totalProjects = cycle.projects ? cycle.projects.length : 0; + cycle.id = cycle.name ; + cycle.regularProjects = regularProjects.length; + cycle.longterm = longterm.length; + // cycle.observingTime = this.getUnitConvertedQuotaValue(cycle, cycleQuota, 'observing_time'); + // cycle.processingTime = this.getUnitConvertedQuotaValue(cycle, cycleQuota, 'cep_processing_time'); + // cycle.ltaResources = this.getUnitConvertedQuotaValue(cycle, cycleQuota, 'lta_storage'); + // cycle.support = this.getUnitConvertedQuotaValue(cycle, cycleQuota, 'support_time'); + // cycle.observingTimeDDT = this.getUnitConvertedQuotaValue(cycle, cycleQuota, 'observing_time_commissioning'); + // cycle.observingTimePrioA = this.getUnitConvertedQuotaValue(cycle, cycleQuota, 'observing_time_prio_a'); + // cycle.observingTimePrioB = this.getUnitConvertedQuotaValue(cycle, cycleQuota, 'observing_time_prio_b'); + cycle.observingTime = this.getUnitConvertedQuotaValue(cycle, cycleQuota, 'LOFAR Observing Time'); + cycle.processingTime = this.getUnitConvertedQuotaValue(cycle, cycleQuota, 'CEP Processing Time'); + cycle.ltaResources = this.getUnitConvertedQuotaValue(cycle, cycleQuota, 'LTA Storage'); + cycle.support = this.getUnitConvertedQuotaValue(cycle, cycleQuota, 'LOFAR Support Time'); + cycle.observingTimeDDT = this.getUnitConvertedQuotaValue(cycle, cycleQuota, 'LOFAR Observing Time Commissioning'); + cycle.observingTimePrioA = this.getUnitConvertedQuotaValue(cycle, cycleQuota, 'LOFAR Observing Time prio A'); + cycle.observingTimePrioB = this.getUnitConvertedQuotaValue(cycle, cycleQuota, 'LOFAR Observing Time prio B'); + + cycle['actionpath'] = `/cycle/view/${cycle.id}`; + return cycle; + }); + this.setState({ + cyclelist : results, + isLoading: false + }); + }); + } + + componentDidMount(){ + const promises = [CycleService.getAllCycleQuotas(), CycleService.getResources()] + Promise.all(promises).then(responses => { + const cycleQuota = responses[0]; + this.setState({ resources: responses[1] }); + CycleService.getAllCycles().then(cyclelist => { + this.getCycles(cyclelist, cycleQuota) + }); + }); + } + + render(){ + return ( + <> + <div className="p-grid"> + <div className="p-col-10 p-lg-10 p-md-10"> + <h2>Cycle - List </h2> + </div> + <div className="p-col-2 p-lg-2 p-md-2"> + <Link to={{ pathname: '/cycle/create'}} title="Add New Cycle" style={{float: "right"}}> + <i className="fa fa-plus-square" style={{marginTop: "10px"}}></i> + </Link> + </div> + </div> + {/* + * Call View table to show table data, the parameters are, + data - Pass API data + defaultcolumns - This colum will be populate by default in table with header mentioned + showaction - {true/false} -> to show the action column + paths - specify the path for navigation - Table will set "id" value for each row in action button + */} + + {this.state.isLoading? <AppLoader /> : (this.state.cyclelist && this.state.cyclelist.length) ? + + <ViewTable + data={this.state.cyclelist} + defaultcolumns={this.defaultcolumns} + optionalcolumns={this.optionalcolumns} + columnclassname = {this.columnclassname} + defaultSortColumn= {this.defaultSortColumn} + showaction="true" + paths={this.state.paths} + /> : <></> + } + + + + </> + ) + } +} + +export default CycleList + diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/list.test.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/list.test.js new file mode 100644 index 0000000000000000000000000000000000000000..36858e8cacfeeae8a71778ffac061b4f7dea55b1 --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/list.test.js @@ -0,0 +1,69 @@ +import "babel-polyfill"; +import React from 'react'; +import { MemoryRouter } from 'react-router-dom'; +import { render, fireEvent } from '@testing-library/react'; +import CycleList from './list'; +import UnitConversion from '../../utils/unit.converter'; +import CycleServiceMock from '../../__mocks__/cycle.service.data'; + +jest.mock('../../services/cycle.service', () => { + return { + getProjects: () => Promise.resolve({ data: CycleServiceMock.getProjects }), + getCycleQuota: () => Promise.resolve({ data: CycleServiceMock.getCycleQuota }), + getAllCycles: () => Promise.resolve(CycleServiceMock.getAllCycle.results ), + getResources: () => Promise.resolve({ data: CycleServiceMock.getresources }) + } +}); + +const flushPromises = () => new Promise(setImmediate); + +describe('<CycleList />', () => { + test('render table in the cycle list', async () => { + const { container } = render(<MemoryRouter><CycleList /></MemoryRouter>); + await flushPromises(); + expect(container.querySelector('table')).toBeInTheDocument(); + }); + + test('render cycle list in row', async () => { + const { container } = render(<MemoryRouter><CycleList /></MemoryRouter>); + await flushPromises(); + expect(container.querySelectorAll('tr').length).toBe(4); + }); + + test('render columns in the cycle list', async () => { + const { container } = render(<MemoryRouter><CycleList /></MemoryRouter>); + await flushPromises(); + expect(container.querySelectorAll('th').length).toBe(11); + }); + + test('render cycleId - cycle name conversion', async () => { + const { container } = render(<MemoryRouter><CycleList /></MemoryRouter>); + await flushPromises(); + expect(container.querySelectorAll('tr')[1].innerHTML.includes('Cycle00')).toBeTruthy(); + }); + + test('render observing time in hours', async () => { + const { container } = render(<MemoryRouter><CycleList /></MemoryRouter>); + await flushPromises(); + const observing_time = Math.floor(Number(CycleServiceMock.getCycleQuota.results[0].value) / 3600); + expect(container.querySelectorAll('tr')[1].innerHTML.includes(observing_time)).toBeTruthy(); + }); + + test('render commissioning time in hours', async () => { + const { container } = render(<MemoryRouter><CycleList /></MemoryRouter>); + await flushPromises(); + const commissioning_time = UnitConversion.getUIResourceUnit('bytes',Number(CycleServiceMock.getCycleQuota.results[1].value)); + expect(container.querySelectorAll('tr')[1].innerHTML.includes(commissioning_time)).toBeTruthy(); + }); + + test('toggle columns in table', async () => { + const { container } = render(<MemoryRouter><CycleList /></MemoryRouter>); + await flushPromises(); + const panel = container.querySelector('#overlay_panel'); + expect(panel).toHaveStyle('display: block'); + fireEvent.click(container.querySelector('.col-filter-btn')); + await flushPromises(); + expect(panel).toHaveStyle('display: none'); + expect(container.querySelectorAll("input[type=checkbox]:checked").length).toBe(container.querySelectorAll('th').length) + }); +}); \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/view.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/view.js new file mode 100644 index 0000000000000000000000000000000000000000..55430cc1fd440589988e30d2a1e13aa1e91c4d51 --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Cycle/view.js @@ -0,0 +1,140 @@ +import React, {Component} from 'react'; +import {Link, Redirect} from 'react-router-dom' +import moment from 'moment'; +import _ from 'lodash'; + +import { Chips } from 'primereact/chips'; + +import ResourceDisplayList from './ResourceDisplayList'; + +import AppLoader from '../../layout/components/AppLoader'; +import CycleService from '../../services/cycle.service'; +import UnitConverter from '../../utils/unit.converter'; + +/** + * Component to view the details of a cycle + */ +export class CycleView extends Component { + DATE_FORMAT = 'YYYY-MMM-DD HH:mm:ss'; + constructor(props) { + super(props); + this.state = { + isLoading: true, + }; + if (this.props.match.params.id) { + this.state.cycleId = this.props.match.params.id; + } else if (this.props.location.state && this.props.location.state.id) { + this.state.cycleId = this.props.location.state.id; + } + this.state.redirect = this.state.cycleId?"":'/cycle' // If no cycle id is passed, redirect to cycle list page + this.resourceUnitMap = UnitConverter.resourceUnitMap; // Resource unit conversion factor and constraints + } + + componentDidMount() { + const cycleId = this.state.cycleId; + if (cycleId) { + this.getCycleDetails(); + } else { + this.setState({redirect: "/not-found"}); + } + } + + /** + * To get the cycle details from the backend using the service + * + */ + async getCycleDetails() { + let cycle = await CycleService.getCycleDetails(this.state.cycleId); + let cycleQuota = []; + let resources = []; + + if (cycle) { + // If resources are allocated for the cycle quota fetch the resources master from the API + if (cycle.quota) { + resources = await CycleService.getResources(); + } + + // For every cycle quota, get the resource type & assign to the resource variable of the quota object + for (const id of cycle.quota_ids) { + let quota = await CycleService.getCycleQuota(id); + let resource = _.find(resources, ['name', quota.resource_type_id]); + quota.resource = resource; + cycleQuota.push(quota); + }; + this.setState({cycle: cycle, cycleQuota: cycleQuota, isLoading: false}); + } else { + this.setState({redirect: "../../not-found"}) + } + + } + + render() { + if (this.state.redirect) { + return <Redirect to={ {pathname: this.state.redirect} }></Redirect> + } + + return ( + <React.Fragment> + <div className="p-grid"> + <div className="p-col-10 p-lg-10 p-md-10"> + <h2>Cycle - Details </h2> + </div> + { this.state.cycle && + <div className="p-col-2 p-lg-2 p-md-2"> + <Link to={{ pathname: `/cycle`}} title="Close View" style={{float: "right"}}> + <i className="fa fa-times" style={{marginTop: "10px", marginLeft: "5px"}}></i> + </Link> + <Link to={{ pathname: `/cycle/edit/${this.state.cycle.name}`, state: {id: this.state.cycle?this.state.cycle.name:''}}} title="Edit Cycle" + style={{float: "right"}}> + <i className="fa fa-edit" style={{marginTop: "10px"}}></i> + </Link> + </div> + } + </div> + { this.state.isLoading && <AppLoader /> } + { this.state.cycle && + <React.Fragment> + <div className="main-content"> + <div className="p-grid"> + <label className="col-lg-2 col-md-2 col-sm-12">Name</label> + <span className="col-lg-4 col-md-4 col-sm-12">{this.state.cycle.name}</span> + <label className="col-lg-2 col-md-2 col-sm-12">Description</label> + <span className="col-lg-4 col-md-4 col-sm-12">{this.state.cycle.description}</span> + </div> + <div className="p-grid"> + <label className="col-lg-2 col-md-2 col-sm-12">Created At</label> + <span className="col-lg-4 col-md-4 col-sm-12">{moment.utc(this.state.cycle.created_at).format(this.DATE_FORMAT)}</span> + <label className="col-lg-2 col-md-2 col-sm-12">Updated At</label> + <span className="col-lg-4 col-md-4 col-sm-12">{moment.utc(this.state.cycle.updated_at).format(this.DATE_FORMAT)}</span> + </div> + + <div className="p-grid"> + <label className="col-lg-2 col-md-2 col-sm-12">Projects</label> + <Chips className="col-lg-4 col-md-4 col-sm-12 chips-readonly" disabled value={this.state.cycle.projects_ids}></Chips> + </div> + <div className="p-fluid"> + <div className="p-field p-grid"> + <div className="col-lg-3 col-md-3 col-sm-12"> + <h5 data-testid="resource_alloc">Resource Allocations</h5> + </div> + </div> + </div> + {this.state.cycleQuota.length===0 && + <div className="p-field p-grid"> + <div className="col-lg-12 col-md-12 col-sm-12"> + <span>Reosurces not yet allocated. + <Link to={{ pathname: `/cycle/edit/${this.state.cycle.name}`, state: {id: this.state.cycle?this.state.cycle.name:''}}} title="Edit Cycle" > Click</Link> to add. + </span> + </div> + </div> + } + <div className="p-field p-grid resource-input-grid"> + <ResourceDisplayList cycleQuota={this.state.cycleQuota} unitMap={this.resourceUnitMap} /> + </div> + </div> + </React.Fragment> + } + </React.Fragment> + ); + } +} \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Dashboard/index.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Dashboard/index.js index dd52fdf11774d21f1e002716cf9804f1ac581d8d..a0a798161d65edf83901902a88e3957569741bd8 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/routes/Dashboard/index.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Dashboard/index.js @@ -1,7 +1,12 @@ import React, {Component} from 'react'; + export class Dashboard extends Component { + constructor(props){ + super(props) + console.log(this.props) + } render() { return ( <h1>Dashboard</h1> diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/ResourceDisplayList.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/ResourceDisplayList.js new file mode 100644 index 0000000000000000000000000000000000000000..f7f959b7feb1a125588d07ebcb3d586c1ceca889 --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/ResourceDisplayList.js @@ -0,0 +1,31 @@ +import React, {Component} from 'react'; + +/** + * Component to get input for Resource allocation while creating and editing Project + */ +class ResourceDisplayList extends Component { + constructor(props) { + super(props); + this.state = { + projectQuota: props.projectQuota + } + } + + render(){ + return ( + <> + {this.props.projectQuota.length>0 && this.props.projectQuota.map((item, index) => ( + <React.Fragment key={index+10}> + <label key={'label1-'+ index} className="col-lg-3 col-md-3 col-sm-12">{item.resource.name}</label> + <span key={'div1-'+ index} className="col-lg-3 col-md-3 col-sm-12"> + {item.value/(this.props.unitMap[item.resource.quantity_value]?this.props.unitMap[item.resource.quantity_value].conversionFactor:1)} + {` ${this.props.unitMap[item.resource.quantity_value]?this.props.unitMap[item.resource.quantity_value].display:''}`} + </span> + </React.Fragment> + ))} + </> + ); + } +} + +export default ResourceDisplayList; \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/ResourceInputList.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/ResourceInputList.js new file mode 100644 index 0000000000000000000000000000000000000000..c1d9019421ff16c5570e3371e8ff338342b404f7 --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/ResourceInputList.js @@ -0,0 +1,58 @@ +import React, {Component} from 'react'; +import {InputNumber} from 'primereact/inputnumber'; + +/** + * Component to get input for Resource allocation while creating and editing Project + */ +export class ResourceInputList extends Component { + constructor(props) { + super(props); + this.state = { + list: props.list, + projectQuota: props.projectQuota + } + this.updateEnabled = this.props.list.length===0?true:false; + this.onInputChange = this.onInputChange.bind(this); + } + + shouldComponentUpdate() { + return true; + } + + onInputChange(field, event) { + if (this.props.callback) { + this.props.callback(field, event); + } + } + + removeInput(field) { + if (this.props.removeInputCallback) { + this.props.removeInputCallback(field); + } + } + + render(){ + return ( + <> + {this.props.list.length>0 && this.props.list.map((item, index) => ( + <React.Fragment key={index+10}> + <label key={'label1-'+ index} className="col-lg-2 col-md-2 col-sm-12">{item.name}</label> + <div key={'div1-'+ index} className="col-lg-3 col-md-3 col-sm-12"> + <InputNumber key={'item1-'+ index} id={'item1-'+ index} name={'item1-'+ index} + suffix={` ${this.props.unitMap[item.quantity_value]?this.props.unitMap[item.quantity_value].display:''}`} + placeholder={` ${this.props.unitMap[item.quantity_value]?this.props.unitMap[item.quantity_value].display:item.name}`} min={0} useGrouping={false} + value={this.state.projectQuota[item.name]} + onChange={(e) => this.onInputChange(item.name, e)} + onBlur={(e) => this.onInputChange(item.name, e)} + style={{width:"90%", marginRight: "5px"}} + /> + <button className="p-link" data-testid={`${item.name}-btn`} onClick={(e) => this.removeInput(item.name)}> + <i className="fa fa-trash pi-error"></i></button> + </div> + <div className="col-lg-1 col-md-1 col-sm-12"></div> + </React.Fragment> + ))} + </> + ); + } +} \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/create.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/create.js new file mode 100644 index 0000000000000000000000000000000000000000..64a96b3f0a9b6ba7ff8a99cf52d416e0e49a23a0 --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/create.js @@ -0,0 +1,516 @@ +import React, {Component} from 'react'; +import { Link, Redirect } from 'react-router-dom'; +import _ from 'lodash'; + +import {InputText} from 'primereact/inputtext'; +import {InputNumber} from 'primereact/inputnumber'; +import {InputTextarea} from 'primereact/inputtextarea'; +import {Checkbox} from 'primereact/checkbox'; +import {Dropdown} from 'primereact/dropdown'; +import {MultiSelect} from 'primereact/multiselect'; +import { Button } from 'primereact/button'; +import {Dialog} from 'primereact/components/dialog/Dialog'; +import {Growl} from 'primereact/components/growl/Growl'; + +import {ResourceInputList} from './ResourceInputList'; + +import AppLoader from '../../layout/components/AppLoader'; +import CycleService from '../../services/cycle.service'; +import ProjectService from '../../services/project.service'; +import UnitConverter from '../../utils/unit.converter'; +import UIConstants from '../../utils/ui.constants'; + +/** + * Component to create a new Project + */ +export class ProjectCreate extends Component { + constructor(props) { + super(props); + this.state = { + isLoading: true, + dialog: { header: '', detail: ''}, + project: { + trigger_priority: 1000, + priority_rank: null, + quota: [], // Mandatory Field in the back end, so an empty array is passed + can_trigger: false + }, + projectQuota: {}, // Resource Allocations + validFields: {}, // For Validation + validForm: false, // To enable Save Button + errors: {}, // Validation Errors + periodCategories: [], + projectCategories: [], + resources: [], // Selected Resources for Allocation + resourceList: [], // Available Resources for Allocation + cycles: [] + } + // Validateion Rules + this.formRules = { + name: {required: true, message: "Name can not be empty"}, + description: {required: true, message: "Description can not be empty"}, + priority_rank: {required: true, message: "Enter Project Rank"} + }; + this.defaultResourcesEnabled = true; // This property and functionality to be concluded based on PO input + this.defaultResources = [{name:'LOFAR Observing Time'}, + {name:'LOFAR Observing Time prio A'}, + {name:'LOFAR Observing Time prio B'}, + {name:'CEP Processing Time'}, + {name:'LTA Storage'}, + {name:'Number of triggers'}, + {name:'LOFAR Support Time'} ]; + this.projectResourceDefaults = {}; // Default values for default resources + this.resourceUnitMap = UnitConverter.resourceUnitMap; // Resource unit conversion factor and constraints + this.cycleOptionTemplate = this.cycleOptionTemplate.bind(this); // Template for cycle multiselect + this.tooltipOptions = UIConstants.tooltipOptions; + + this.setProjectQuotaDefaults = this.setProjectQuotaDefaults.bind(this); + this.setProjectParams = this.setProjectParams.bind(this); + this.addNewResource = this.addNewResource.bind(this); + this.removeResource = this.removeResource.bind(this); + this.setProjectQuotaParams = this.setProjectQuotaParams.bind(this); + this.saveProject = this.saveProject.bind(this); + this.cancelCreate = this.cancelCreate.bind(this); + this.reset = this.reset.bind(this); + } + + componentDidMount() { + ProjectService.getDefaultProjectResources() + .then(defaults => { + this.projectResourceDefaults = defaults; + }); + CycleService.getAllCycles() + .then(cycles => { + this.setState({cycles: cycles}); + }); + ProjectService.getProjectCategories() + .then(categories => { + this.setState({projectCategories: categories}); + }); + ProjectService.getPeriodCategories() + .then(categories => { + this.setState({periodCategories: categories}); + }); + ProjectService.getResources() + .then(resourceList => { + const defaultResources = this.defaultResources; + resourceList = _.sortBy(resourceList, "name"); + const resources = _.remove(resourceList, function(resource) { return _.find(defaultResources, {'name': resource.name})!=null }); + const projectQuota = this.setProjectQuotaDefaults(resources); + this.setState({resourceList: resourceList, resources: resources, projectQuota: projectQuota, isLoading: false}); + }); + // ProjectService.getProjects().then(projects => { + // console.log(projects); + // }); + } + + /** + * Cycle option sub-component with cycle object + */ + cycleOptionTemplate(option) { + return ( + <div className="p-clearfix"> + <span style={{fontSize:'1em',float:'right',margin:'1em .5em 0 0'}}>{option.name}</span> + </div> + ); + } + + /** + * Function to set project resource allocation + * @param {Array} resources + */ + setProjectQuotaDefaults(resources) { + let projectQuota = this.state.projectQuota; + for (const resource of resources) { + const conversionFactor = this.resourceUnitMap[resource.quantity_value]?this.resourceUnitMap[resource.quantity_value].conversionFactor:1; + projectQuota[resource['name']] = this.projectResourceDefaults[resource.name]/conversionFactor; + } + return projectQuota; + } + + /** + * Function to add new resource to project + */ + addNewResource(){ + if (this.state.newResource) { + let resourceList = this.state.resourceList; + const newResource = _.remove(resourceList, {'name': this.state.newResource}); + let resources = this.state.resources; + resources.push(newResource[0]); + this.setState({resources: resources, resourceList: resourceList, newResource: null}); + } + } + + /** + * Callback function to be called from ResourceInpulList when a resource is removed from it + * @param {string} name - resource_type_id + */ + removeResource(name) { + let resources = this.state.resources; + let resourceList = this.state.resourceList; + let projectQuota = this.state.projectQuota; + const removedResource = _.remove(resources, (resource) => { return resource.name === name }); + resourceList.push(removedResource[0]); + resourceList = _.sortBy(resourceList, 'name'); + delete projectQuota[name]; + this.setState({resourceList: resourceList, resources: resources, projectQuota: projectQuota}); + } + + /** + * Function to call on change and blur events from input components + * @param {string} key + * @param {any} value + */ + setProjectParams(key, value, type) { + let project = this.state.project; + switch(type) { + case 'NUMBER': { + console.log("Parsing Number"); + project[key] = value?parseInt(value):0; + break; + } + default: { + project[key] = value; + break; + } + } + this.setState({project: project, validForm: this.validateForm(key)}); + } + + /** + * Callback Function to call from ResourceInputList on change and blur events + * @param {string} key + * @param {InputEvent} event + */ + setProjectQuotaParams(key, event) { + let projectQuota = this.state.projectQuota; + if (event.target.value) { + let resource = _.find(this.state.resources, {'name': key}); + + let newValue = 0; + if (this.resourceUnitMap[resource.quantity_value] && + event.target.value.toString().indexOf(this.resourceUnitMap[resource.quantity_value].display)>=0) { + newValue = event.target.value.replace(this.resourceUnitMap[resource.quantity_value].display,''); + } else { + newValue = event.target.value; + } + projectQuota[key] = (newValue==="NaN" || isNaN(newValue))?0:newValue; + } else { + let projectQuota = this.state.projectQuota; + projectQuota[key] = 0; + } + this.setState({projectQuota: projectQuota}); + } + + /** + * Validation function to validate the form or field based on the form rules. + * If no argument passed for fieldName, validates all fields in the form. + * @param {string} fieldName + */ + validateForm(fieldName) { + let validForm = false; + let errors = this.state.errors; + let validFields = this.state.validFields; + if (fieldName) { + delete errors[fieldName]; + delete validFields[fieldName]; + if (this.formRules[fieldName]) { + const rule = this.formRules[fieldName]; + const fieldValue = this.state.project[fieldName]; + if (rule.required) { + if (!fieldValue) { + errors[fieldName] = rule.message?rule.message:`${fieldName} is required`; + } else { + validFields[fieldName] = true; + } + } + } + } else { + errors = {}; + validFields = {}; + for (const fieldName in this.formRules) { + const rule = this.formRules[fieldName]; + const fieldValue = this.state.project[fieldName]; + if (rule.required) { + if (!fieldValue) { + errors[fieldName] = rule.message?rule.message:`${fieldName} is required`; + } else { + validFields[fieldName] = true; + } + } + } + } + this.setState({errors: errors, validFields: validFields}); + if (Object.keys(validFields).length === Object.keys(this.formRules).length) { + validForm = true; + } + return validForm; + } + + /** + * Function to call when 'Save' button is clicked to save the project. + */ + saveProject() { + if (this.validateForm) { + let projectQuota = []; + for (const resource in this.state.projectQuota) { + let resourceType = _.find(this.state.resources, {'name': resource}); + if(resourceType){ + let quota = { project: this.state.project.name, + resource_type: resourceType['url'], + value: this.state.projectQuota[resource] * (this.resourceUnitMap[resourceType.quantity_value]?this.resourceUnitMap[resourceType.quantity_value].conversionFactor:1)}; + projectQuota.push(quota); + } + } + ProjectService.saveProject(this.state.project, this.defaultResourcesEnabled?projectQuota:[]) + .then(project => { + if (project.url) { + let dialog = {}; + if (this.defaultResourcesEnabled) { + dialog = {header: 'Success', detail: 'Project saved successfully. Do you want to create another project?'}; + } else { + dialog = {header: 'Success', detail: 'Project saved successfully with default Resource allocations. Do you want to view and edit them?'}; + } + this.setState({project:project, dialogVisible: true, dialog: dialog}) + } else { + this.growl.show({severity: 'error', summary: 'Error Occured', detail: 'Unable to save Project'}); + this.setState({errors: project}); + } + }); + } + } + + /** + * Function to cancel form creation and navigate to other page/component + */ + cancelCreate() { + this.setState({redirect: '/project'}); + } + + /** + * Reset function to be called to reset the form fields + */ + reset() { + if (this.defaultResourcesEnabled) { + let prevResources = this.state.resources; + let resourceList = []; + let resources = []; + if (resources) { + // const nonDefaultResources = _.remove(resources, function(resource) { return _.find(defaultResources, {'name': resource.name})==null }); + // resourceList = nonDefaultResources.concat(this.state.resourceList); + const defaultResources = this.defaultResources; + resourceList = _.sortBy(prevResources.concat(this.state.resourceList), "name"); + resources = _.remove(resourceList, function(resource) { return _.find(defaultResources, {'name': resource.name})!=null }); + // const projectQuota = this.setProjectQuotaDefaults(resources); + // this.setState({resourceList: resourceList, resources: resources, projectQuota: projectQuota}); + } + const projectQuota = this.setProjectQuotaDefaults(resources); + this.setState({ + dialog: { header: '', detail: ''}, + project: { + url: '', + name: '', + description: '', + trigger_priority: 1000, + priority_rank: null, + quota: [] + }, + projectQuota: projectQuota, + validFields: {}, + validForm: false, + errors: {}, + dialogVisible: false, + resources: resources, + resourceList: resourceList + }); + } else { + this.setState({redirect: `/project/edit/${this.state.project.name}`}) + } + } + + render() { + if (this.state.redirect) { + return <Redirect to={ {pathname: this.state.redirect} }></Redirect> + } + + return ( + <React.Fragment> + <div className="p-grid"> + <Growl ref={(el) => this.growl = el} /> + + <div className="p-col-10 p-lg-10 p-md-10"> + <h2>Project - Add</h2> + </div> + <div className="p-col-2 p-lg-2 p-md-2"> + <Link to={{ pathname: '/project'}} tite="Close Edit" style={{float: "right"}}> + <i className="fa fa-window-close" style={{marginTop: "10px"}}></i> + </Link> + </div> + </div> + { this.state.isLoading ? <AppLoader /> : + <> + <div> + <div className="p-fluid"> + <div className="p-field p-grid" style={{display: 'none'}}> + <label htmlFor="projectId" className="col-lg-2 col-md-2 col-sm-12">URL </label> + <div className="col-lg-3 col-md-3 col-sm-12"> + <input id="projectId" data-testid="projectId" value={this.state.project.url} /> + </div> + </div> + <div className="p-field p-grid"> + <label htmlFor="projectName" className="col-lg-2 col-md-2 col-sm-12">Name <span style={{color:'red'}}>*</span></label> + <div className="col-lg-3 col-md-3 col-sm-12"> + <InputText className={this.state.errors.name ?'input-error':''} id="projectName" data-testid="name" + tooltip="Enter name of the project" tooltipOptions={this.tooltipOptions} maxLength="128" + value={this.state.project.name} + onChange={(e) => this.setProjectParams('name', e.target.value)} + onBlur={(e) => this.setProjectParams('name', e.target.value)}/> + <label className={this.state.errors.name?"error":"info"}> + {this.state.errors.name ? this.state.errors.name : "Max 128 characters"} + </label> + </div> + <div className="col-lg-1 col-md-1 col-sm-12"></div> + <label htmlFor="description" className="col-lg-2 col-md-2 col-sm-12">Description <span style={{color:'red'}}>*</span></label> + <div className="col-lg-3 col-md-3 col-sm-12"> + <InputTextarea className={this.state.errors.description ?'input-error':''} rows={3} cols={30} + tooltip="Short description of the project" tooltipOptions={this.tooltipOptions} maxLength="128" + data-testid="description" value={this.state.project.description} + onChange={(e) => this.setProjectParams('description', e.target.value)} + onBlur={(e) => this.setProjectParams('description', e.target.value)}/> + <label className={this.state.errors.description ?"error":"info"}> + {this.state.errors.description ? this.state.errors.description : "Max 255 characters"} + </label> + </div> + </div> + <div className="p-field p-grid"> + <label htmlFor="triggerPriority" className="col-lg-2 col-md-2 col-sm-12">Trigger Priority </label> + <div className="col-lg-3 col-md-3 col-sm-12" data-testid="trig_prio"> + <InputNumber inputId="trig_prio" name="trig_prio" value={this.state.project.trigger_priority} + tooltip="Priority of this project with respect to triggers" tooltipOptions={this.tooltipOptions} + mode="decimal" showButtons min={0} max={1001} step={10} useGrouping={false} + onChange={(e) => this.setProjectParams('trigger_priority', e.value)} + onBlur={(e) => this.setProjectParams('trigger_priority', e.target.value, 'NUMBER')} /> + + <label className="error"> + {this.state.errors.trigger_priority ? this.state.errors.trigger_priority : ""} + </label> + </div> + <div className="col-lg-1 col-md-1 col-sm-12"></div> + <label htmlFor="trigger" className="col-lg-2 col-md-2 col-sm-12">Allows Trigger Submission</label> + <div className="col-lg-3 col-md-3 col-sm-12" data-testid="trigger"> + <Checkbox inputId="trigger" role="trigger" + tooltip="Is this project allowed to supply observation requests on the fly, possibly interrupting currently running observations (responsive telescope)?" + tooltipOptions={this.tooltipOptions} + checked={this.state.project.can_trigger} onChange={e => this.setProjectParams('can_trigger', e.target.checked)}></Checkbox> + </div> + </div> + <div className="p-field p-grid"> + <label htmlFor="projCat" className="col-lg-2 col-md-2 col-sm-12">Project Category </label> + <div className="col-lg-3 col-md-3 col-sm-12" data-testid="projCat" > + <Dropdown inputId="projCat" optionLabel="value" optionValue="url" + tooltip="Project Category" tooltipOptions={this.tooltipOptions} + value={this.state.project.project_category} + options={this.state.projectCategories} + onChange={(e) => {this.setProjectParams('project_category', e.value)}} + placeholder="Select Project Category" /> + </div> + <div className="col-lg-1 col-md-1 col-sm-12"></div> + <label htmlFor="periodCategory" className="col-lg-2 col-md-2 col-sm-12">Period Category</label> + <div className="col-lg-3 col-md-3 col-sm-12"> + <Dropdown data-testid="period-cat" id="period-cat" optionLabel="value" optionValue="url" + tooltip="Period Category" tooltipOptions={this.tooltipOptions} + value={this.state.project.period_category} + options={this.state.periodCategories} + onChange={(e) => {this.setProjectParams('period_category',e.value)}} + placeholder="Select Period Category" /> + </div> + </div> + <div className="p-field p-grid"> + <label htmlFor="triggerPriority" className="col-lg-2 col-md-2 col-sm-12">Cycle(s)</label> + <div className="col-lg-3 col-md-3 col-sm-12"> + <MultiSelect data-testid="cycle" id="cycle" optionLabel="name" optionValue="url" filter={true} + tooltip="Cycle(s) to which this project belongs" tooltipOptions={this.tooltipOptions} + value={this.state.project.cycles} + options={this.state.cycles} + onChange={(e) => {this.setProjectParams('cycles',e.value)}} + + /> + </div> + <div className="col-lg-1 col-md-1 col-sm-12"></div> + <label htmlFor="projRank" className="col-lg-2 col-md-2 col-sm-12">Project Rank <span style={{color:'red'}}>*</span></label> + <div className="col-lg-3 col-md-3 col-sm-12" data-testid="proj-rank" > + <InputNumber inputId="proj-rank" name="rank" data-testid="rank" value={this.state.project.priority_rank} + tooltip="Priority of this project with respect to other projects. Projects can interrupt observations of lower-priority projects." + tooltipOptions={this.tooltipOptions} + mode="decimal" showButtons min={0} max={100} + onChange={(e) => this.setProjectParams('priority_rank', e.value)} + onBlur={(e) => this.setProjectParams('priority_rank', e.target.value, 'NUMBER')} /> + <label className="error"> + {this.state.errors.priority_rank ? this.state.errors.priority_rank : ""} + </label> + </div> + </div> + + {this.defaultResourcesEnabled && this.state.resourceList && + <div className="p-fluid"> + <div className="p-field p-grid"> + <div className="col-lg-2 col-md-2 col-sm-112"> + <h5 data-testid="resource_alloc">Resource Allocations</h5> + </div> + <div className="col-lg-3 col-md-3 col-sm-10"> + <Dropdown optionLabel="name" optionValue="name" + tooltip="Resources to be allotted for the project" + tooltipOptions={this.tooltipOptions} + value={this.state.newResource} + options={this.state.resourceList} + onChange={(e) => {this.setState({'newResource': e.value})}} + placeholder="Add Resources" /> + </div> + <div className="col-lg-2 col-md-2 col-sm-2"> + <Button label="" className="p-button-primary" icon="pi pi-plus" onClick={this.addNewResource} disabled={!this.state.newResource} data-testid="add_res_btn" /> + </div> + </div> + <div className="p-field p-grid resource-input-grid"> + <ResourceInputList list={this.state.resources} unitMap={this.resourceUnitMap} + projectQuota={this.state.projectQuota} callback={this.setProjectQuotaParams} + removeInputCallback={this.removeResource} /> + </div> + </div> + } + </div> + </div> + <div className="p-grid p-justify-start act-btn-grp"> + <div className="col-lg-1 col-md-2 col-sm-6"> + <Button label="Save" className="p-button-primary" id="save-btn" data-testid="save-btn" icon="pi pi-check" onClick={this.saveProject} disabled={!this.state.validForm} /> + </div> + <div className="col-lg-1 col-md-2 col-sm-6"> + <Button label="Cancel" className="p-button-danger" icon="pi pi-times" onClick={this.cancelCreate} /> + </div> + </div> + </> + } + + {/* Dialog component to show messages and get input */} + <div className="p-grid" data-testid="confirm_dialog"> + <Dialog header={this.state.dialog.header} visible={this.state.dialogVisible} style={{width: '25vw'}} inputId="confirm_dialog" + modal={true} onHide={() => {this.setState({dialogVisible: false})}} + footer={<div> + <Button key="back" onClick={() => {this.setState({dialogVisible: false}); this.cancelCreate();}} label="No" /> + <Button key="submit" type="primary" onClick={this.reset} label="Yes" /> + </div> + } > + <div className="p-grid"> + <div className="col-lg-2 col-md-2 col-sm-2"> + <i className="pi pi-check-circle pi-large pi-success"></i> + </div> + <div className="col-lg-10 col-md-10 col-sm-10"> + {this.state.dialog.detail} + </div> + </div> + </Dialog> + </div> + + </React.Fragment> + ); + } +} \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/create.test.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/create.test.js new file mode 100644 index 0000000000000000000000000000000000000000..84c2b338449d107059e43fa4396dead622a042fe --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/create.test.js @@ -0,0 +1,380 @@ +import React from 'react'; +import { BrowserRouter as Router } from 'react-router-dom'; +import { act } from "react-dom/test-utils"; +import { render, cleanup, fireEvent } from '@testing-library/react'; +import '@testing-library/jest-dom/extend-expect'; + +import {ProjectCreate} from './create'; +import ProjectService from '../../services/project.service'; +import CycleService from '../../services/cycle.service'; + +import ProjectServiceMock from '../../__mocks__/project.service.data'; + +let projectCategoriesSpy, allCycleSpy, periodCategoriesSpy, saveProjectSpy, resourcesSpy, projectResourceDefaultsSpy; + +beforeEach(() => { + setMockSpy(); +}); + +afterEach(() => { + // cleanup on exiting + clearMockSpy(); + cleanup(); +}); + +/** + * To set mock spy for Services that have API calls to the back end to fetch data + */ +const setMockSpy = (() => { + projectCategoriesSpy = jest.spyOn(ProjectService, 'getProjectCategories'); + projectCategoriesSpy.mockImplementation(() => { return Promise.resolve(ProjectServiceMock.project_categories)}); + periodCategoriesSpy = jest.spyOn(ProjectService, 'getPeriodCategories'); + periodCategoriesSpy.mockImplementation(() => { return Promise.resolve(ProjectServiceMock.period_categories)}); + allCycleSpy = jest.spyOn(CycleService, 'getAllCycles'); + allCycleSpy.mockImplementation(() => { + return Promise.resolve([{url: "http://localhost:3000/api/cycle/Cycle-0", name: 'Cycle-0'}, + {url: "http://localhost:3000/api/cycle/Cycle-1", name: 'Cycle-1'}]); + }); + resourcesSpy = jest.spyOn(ProjectService, 'getResources'); + resourcesSpy.mockImplementation(() => { + return Promise.resolve(ProjectServiceMock.resources); + }); + projectResourceDefaultsSpy = jest.spyOn(ProjectService, 'getDefaultProjectResources'); + projectResourceDefaultsSpy.mockImplementation(() => { + return Promise.resolve(ProjectServiceMock.projectResourceDefaults); + }); + + saveProjectSpy = jest.spyOn(ProjectService, 'saveProject'); + saveProjectSpy.mockImplementation((project, projectQuota) => { + project.url = `http://localhost:3000/api/project/${project.name}`; + return Promise.resolve(project) + }); +}); + +const clearMockSpy = (() => { + projectCategoriesSpy.mockRestore(); + periodCategoriesSpy.mockRestore(); + allCycleSpy.mockRestore(); + saveProjectSpy.mockRestore(); +}); + +it("renders without crashing with all back-end data loaded", async () => { + console.log("renders without crashing with all back-end data loaded ------------------------"); + + let content; + await act(async () => { + content = render(<Router><ProjectCreate /></Router>); + }); + + expect(content.queryByText('Project - Add')).not.toBe(null); // Page loaded successfully + expect(projectCategoriesSpy).toHaveBeenCalled(); // Mock Spy called successfully + expect(content.queryByText('Regular')).toBeInTheDocument(); // Project Category Dropdown loaded successfully + expect(content.queryByText('Single Cycle')).toBeInTheDocument(); // Period Category Dropdown loaded successfully + expect(content.queryByText('Cycle-0')).toBeInTheDocument(); // Cycle multi-select loaded successfully + expect(content.queryAllByText('Add Resources').length).toBe(2); // Resource Dropdown loaded successfully + expect(content.queryByText('Support hours')).toBeInTheDocument(); // Resources other than Default Resources listed in dropdown + expect(content.queryByPlaceholderText('Support Hours')).toBe(null); // No resources other than Default Resources listed to get input + expect(content.queryByPlaceholderText('LOFAR Observing Time').value).toBe('1 Hours'); // Default Resource Listed with default value +}); + +it("Save button disabled initially when no data entered", async () => { + console.log("Save button disabled initially when no data entered -----------------------"); + let content; + await act(async () => { + content = render(<Router><ProjectCreate /></Router>); + }); + expect(content.queryByTestId('save-btn')).toHaveAttribute("disabled"); +}); + +it("Save button enabled when mandatory data entered", async () => { + console.log("Save button enabled when mandatory data entered -----------------------"); + let content; + await act(async () => { + content = render(<Router><ProjectCreate /></Router>); + }); + const nameInput = content.queryByTestId('name'); + const descInput = content.queryByTestId('description'); + const spinButtons = content.queryAllByRole("spinbutton"); + const rankInput = spinButtons.filter(function(element) { return element.id==="proj-rank"})[0]; + + // Set values for all mandatory input and test if save button is enabled + fireEvent.change(nameInput, { target: { value: 'OSR' } }); + expect(nameInput.value).toBe("OSR"); + fireEvent.change(descInput, { target: { value: 'OSR' } }); + expect(descInput.value).toBe("OSR"); + fireEvent.blur(rankInput, { target: { value: 1 } }); + expect(rankInput.value).toBe("1"); + expect(content.queryByTestId('save-btn').hasAttribute("disabled")).toBeFalsy(); +}); + +it("renders Save button enabled when all data entered", async () => { + console.log("renders Save button enabled when all data entered -----------------------"); + let content; + await act(async () => { + content = render(<Router><ProjectCreate /></Router>); + }); + + const nameInput = content.queryByTestId('name'); + const descInput = content.queryByTestId('description'); + const spinButtons = content.queryAllByRole("spinbutton"); + const rankInput = spinButtons.filter(function(element) { return element.id==="proj-rank"})[0]; + const trigPrioInput = spinButtons.filter(function(element) { return element.id==="trig_prio"})[0]; + const trigger = content.getByLabelText(/trigger/i); + const projCatInput = content.getAllByRole("listbox")[0].children[0] ; + const projPeriodInput = content.getAllByRole("listbox")[1].children[0] ; + const cycleInput = content.getAllByRole("listbox")[2].children[0] ; + + fireEvent.change(nameInput, { target: { value: 'OSR' } }); + expect(nameInput.value).toBe("OSR"); + + fireEvent.change(descInput, { target: { value: 'OSR' } }); + expect(descInput.value).toBe("OSR"); + + fireEvent.blur(rankInput, { target: { value: 1 } }); + expect(rankInput.value).toBe("1"); + + expect(trigPrioInput.value).toBe("1000"); // Check for default value + fireEvent.blur(trigPrioInput, { target: { value: 100 } }); + expect(trigPrioInput.value).toBe("100"); // Check for new value + + fireEvent.click(trigger); + expect(trigger.hasAttribute("checked")).toBeTruthy(); + + // Before selecting Project Category + expect(content.queryAllByText('Select Project Category').length).toBe(2); + expect(content.queryAllByText('Regular').length).toBe(1); + expect(content.getAllByRole("listbox")[0].children.length).toBe(2); + fireEvent.click(projCatInput); + // After selecting Project Category + expect(content.queryAllByText('Select Project Category').length).toBe(1); + expect(content.queryAllByText('Regular').length).toBe(3); + + // Before selecting Period Category + expect(content.queryAllByText('Select Period Category').length).toBe(2); + expect(content.queryAllByText('Single Cycle').length).toBe(1); + expect(content.getAllByRole("listbox")[1].children.length).toBe(2); + fireEvent.click(projPeriodInput); + // After selecting Period Category + expect(content.queryAllByText('Select Period Category').length).toBe(1); + expect(content.queryAllByText('Single Cycle').length).toBe(3); + + // Before selecting Cycle + expect(content.queryAllByText('Cycle-0').length).toBe(1); + expect(content.getAllByRole("listbox")[2].children.length).toBe(2); + fireEvent.click(cycleInput); + // After selecting Cycle + expect(content.queryAllByText('Cycle-0').length).toBe(2); + + expect(content.queryByTestId('save-btn').hasAttribute("disabled")).toBeFalsy(); + // }); +}); + +it("save project with mandatory fields", async () => { + console.log("save project -----------------------"); + let content; + await act(async () => { + content = render(<Router><ProjectCreate /></Router>); + }); + + const nameInput = content.queryByTestId('name'); + const descInput = content.queryByTestId('description'); + const spinButtons = content.queryAllByRole("spinbutton"); + const rankInput = spinButtons.filter(function(element) { return element.id==="proj-rank"})[0]; + + fireEvent.change(nameInput, { target: { value: 'OSR' } }); + expect(nameInput.value).toBe("OSR"); + fireEvent.change(descInput, { target: { value: 'OSR' } }); + expect(descInput.value).toBe("OSR"); + fireEvent.blur(rankInput, { target: { value: 1 } }); + expect(rankInput.value).toBe("1"); + expect(content.queryByTestId('save-btn').hasAttribute("disabled")).toBeFalsy(); + expect(content.queryByTestId('projectId').value).toBe(""); + expect(content.queryByText("Success")).toBe(null); + + await act(async () => { + fireEvent.click(content.queryByTestId('save-btn')); + }); + + // After saving project, URL should be available and Success dialog should be displayed + expect(content.queryByTestId('projectId').value).toBe("http://localhost:3000/api/project/OSR"); + expect(content.queryByText("Success")).not.toBe(null); +}); + +it("save project with default resources", async () => { + console.log("save project with default resources -----------------------"); + let content; + await act(async () => { + content = render(<Router><ProjectCreate /></Router>); + }); + + const nameInput = content.queryByTestId('name'); + const descInput = content.queryByTestId('description'); + const spinButtons = content.queryAllByRole("spinbutton"); + const rankInput = spinButtons.filter(function(element) { return element.id==="proj-rank"})[0]; + + fireEvent.change(nameInput, { target: { value: 'OSR' } }); + expect(nameInput.value).toBe("OSR"); + fireEvent.change(descInput, { target: { value: 'OSR' } }); + expect(descInput.value).toBe("OSR"); + fireEvent.blur(rankInput, { target: { value: 1 } }); + expect(rankInput.value).toBe("1"); + expect(content.queryByTestId('save-btn').hasAttribute("disabled")).toBeFalsy(); + expect(content.queryByTestId('projectId').value).toBe(""); + expect(content.queryByText("Success")).toBe(null); + + const lofarObsTimeInput = content.queryByPlaceholderText('LOFAR Observing Time'); + fireEvent.change(lofarObsTimeInput, { target: { value: 10 } }); + expect(lofarObsTimeInput.value).toBe('10'); + + const lofarObsTimeAInput = content.queryByPlaceholderText('LOFAR Observing Time prio A'); + fireEvent.change(lofarObsTimeAInput, { target: { value: 15 } }); + expect(lofarObsTimeAInput.value).toBe('15'); + + const lofarObsTimeBInput = content.queryByPlaceholderText('LOFAR Observing Time prio B'); + fireEvent.change(lofarObsTimeBInput, { target: { value: 20 } }); + expect(lofarObsTimeBInput.value).toBe('20'); + + const cepProcTimeInput = content.queryByPlaceholderText('CEP Processing Time'); + fireEvent.change(cepProcTimeInput, { target: { value: 5 } }); + expect(cepProcTimeInput.value).toBe('5'); + + const ltaStorageInput = content.queryByPlaceholderText('LTA Storage'); + fireEvent.change(ltaStorageInput, { target: { value: 2 } }); + expect(ltaStorageInput.value).toBe('2'); + + const noOfTriggerInput = content.queryByPlaceholderText('Number of triggers'); + fireEvent.change(noOfTriggerInput, { target: { value: 3 } }); + expect(noOfTriggerInput.value).toBe('3'); + + const lofarSupTimeInput = content.queryByPlaceholderText('LOFAR Support Time'); + fireEvent.change(lofarSupTimeInput, { target: { value: 25 } }); + expect(lofarSupTimeInput.value).toBe('25'); + + await act(async () => { + fireEvent.click(content.queryByTestId('save-btn')); + }); + + // After saving project, URL should be available and Success dialog should be displayed + expect(content.queryByTestId('projectId').value).toBe("http://localhost:3000/api/project/OSR"); + expect(content.queryByText("Success")).not.toBe(null); +}); + +it("save project with added resources", async () => { + console.log("save project with added resources -----------------------"); + let content; + await act(async () => { + content = render(<Router><ProjectCreate /></Router>); + }); + + const nameInput = content.queryByTestId('name'); + const descInput = content.queryByTestId('description'); + const spinButtons = content.queryAllByRole("spinbutton"); + const rankInput = spinButtons.filter(function(element) { return element.id==="proj-rank"})[0]; + + fireEvent.change(nameInput, { target: { value: 'OSR' } }); + expect(nameInput.value).toBe("OSR"); + fireEvent.change(descInput, { target: { value: 'OSR' } }); + expect(descInput.value).toBe("OSR"); + fireEvent.blur(rankInput, { target: { value: 1 } }); + expect(rankInput.value).toBe("1"); + expect(content.queryByTestId('save-btn').hasAttribute("disabled")).toBeFalsy(); + expect(content.queryByTestId('projectId').value).toBe(""); + expect(content.queryByText("Success")).toBe(null); + + const lofarObsTimeInput = content.queryByPlaceholderText('LOFAR Observing Time'); + fireEvent.change(lofarObsTimeInput, { target: { value: 10 } }); + expect(lofarObsTimeInput.value).toBe('10'); + + const lofarObsTimeAInput = content.queryByPlaceholderText('LOFAR Observing Time prio A'); + fireEvent.change(lofarObsTimeAInput, { target: { value: 15 } }); + expect(lofarObsTimeAInput.value).toBe('15'); + + const lofarObsTimeBInput = content.queryByPlaceholderText('LOFAR Observing Time prio B'); + fireEvent.change(lofarObsTimeBInput, { target: { value: 20 } }); + expect(lofarObsTimeBInput.value).toBe('20'); + + const cepProcTimeInput = content.queryByPlaceholderText('CEP Processing Time'); + fireEvent.change(cepProcTimeInput, { target: { value: 5 } }); + expect(cepProcTimeInput.value).toBe('5'); + + const ltaStorageInput = content.queryByPlaceholderText('LTA Storage'); + fireEvent.change(ltaStorageInput, { target: { value: 2 } }); + expect(ltaStorageInput.value).toBe('2'); + + const noOfTriggerInput = content.queryByPlaceholderText('Number of triggers'); + fireEvent.change(noOfTriggerInput, { target: { value: 3 } }); + expect(noOfTriggerInput.value).toBe('3'); + + const lofarSupTimeInput = content.queryByPlaceholderText('LOFAR Support Time'); + fireEvent.change(lofarSupTimeInput, { target: { value: 25 } }); + expect(lofarSupTimeInput.value).toBe('25'); + + // Before selecting New Resource + expect(content.queryAllByText('Add Resources').length).toBe(2); + expect(content.queryAllByText('Support hours').length).toBe(1); + expect(content.getAllByRole("listbox")[3].children.length).toBe(2); + expect(content.queryByPlaceholderText('Support hours')).toBe(null); + const addResourceInput = content.getAllByRole("listbox")[3].children[1] ; + fireEvent.click(addResourceInput); + // After selecting New Resource + expect(content.queryAllByText('Add Resources').length).toBe(1); + expect(content.queryAllByText('Support hours').length).toBe(3); + + const addResourceBtn = content.queryByTestId('add_res_btn'); + fireEvent.click(addResourceBtn); + expect(content.queryAllByText('Add Resources').length).toBe(2); + expect(content.queryByPlaceholderText('Support hours')).not.toBe(null); + + const newResourceInput = content.queryByPlaceholderText('Support hours'); + fireEvent.change(newResourceInput, { target: { value: 30 } }); + expect(newResourceInput.value).toBe('30'); + + + await act(async () => { + fireEvent.click(content.queryByTestId('save-btn')); + }); + + // After saving project, URL should be available and Success dialog should be displayed + expect(content.queryByTestId('projectId').value).toBe("http://localhost:3000/api/project/OSR"); + expect(content.queryByText("Success")).not.toBe(null); +}); + +it("remove default resource and added resource", async () => { + console.log("remove default resource and added resource -----------------------"); + let content; + await act(async () => { + content = render(<Router><ProjectCreate /></Router>); + }); + + // Before selecting New Resource + expect(content.queryAllByText('Add Resources').length).toBe(2); + expect(content.queryAllByText('Support hours').length).toBe(1); + expect(content.getAllByRole("listbox")[3].children.length).toBe(2); + expect(content.queryByPlaceholderText('Support hours')).toBe(null); + const addResourceInput = content.getAllByRole("listbox")[3].children[1] ; + fireEvent.click(addResourceInput); + // After selecting New Resource + expect(content.queryAllByText('Add Resources').length).toBe(1); + expect(content.queryAllByText('Support hours').length).toBe(3); + + const addResourceBtn = content.queryByTestId('add_res_btn'); + fireEvent.click(addResourceBtn); + expect(content.queryAllByText('Add Resources').length).toBe(2); + expect(content.queryByPlaceholderText('Support hours')).not.toBe(null); + + expect(content.queryByPlaceholderText('CEP Processing Time')).not.toBe(null); + expect(content.queryByTestId('CEP Processing Time-btn')).not.toBe(null); + const removeDefResBtn = content.queryByTestId('CEP Processing Time-btn'); + await act(async () => { + fireEvent.click(content.queryByTestId('CEP Processing Time-btn')); + }); + expect(content.queryByPlaceholderText('CEP Processing Time')).toBe(null); + expect(content.queryByTestId('CEP Processing Time-btn')).toBe(null); + + const removeResourceBtn = content.queryByTestId('Support hours-btn'); + fireEvent.click(removeResourceBtn); + expect(content.queryAllByText('Add Resources').length).toBe(2); + expect(content.queryAllByText('Support hours').length).toBe(1); + expect(content.getAllByRole("listbox")[3].children.length).toBe(3); + +}); \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/edit.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/edit.js new file mode 100644 index 0000000000000000000000000000000000000000..78b443a5c2d1eb457b3806a0cc4fe89e3fd2ab99 --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/edit.js @@ -0,0 +1,532 @@ +import React, {Component} from 'react'; +import { Link, Redirect } from 'react-router-dom'; +import _ from 'lodash'; + +import {InputText} from 'primereact/inputtext'; +import {InputNumber} from 'primereact/inputnumber'; +import {InputTextarea} from 'primereact/inputtextarea'; +import {Checkbox} from 'primereact/checkbox'; +import {Dropdown} from 'primereact/dropdown'; +import {MultiSelect} from 'primereact/multiselect'; +import { Button } from 'primereact/button'; +import {Dialog} from 'primereact/components/dialog/Dialog'; +import {Growl} from 'primereact/components/growl/Growl'; + +import {ResourceInputList} from './ResourceInputList'; + +import AppLoader from '../../layout/components/AppLoader'; +import CycleService from '../../services/cycle.service'; +import ProjectService from '../../services/project.service'; +import UnitConverter from '../../utils/unit.converter'; +import UIConstants from '../../utils/ui.constants'; + +export class ProjectEdit extends Component { + constructor(props) { + super(props); + this.state = { + isLoading: true, + dialog: { header: '', detail: ''}, + project: { + trigger_priority: 1000, + priority_rank: null, + quota: [] // Mandatory Field in the back end + }, + projectQuota: {}, // Holds the value of resources selected with resource_type_id as key + validFields: {}, // Holds the list of valid fields based on the form rules + validForm: false, // To enable Save Button + errors: {}, + periodCategories: [], + projectCategories: [], + resources: [], // Selected resources for the project + resourceList: [], // Available resources to select for the project + cycles: [], + redirect: this.props.match.params.id?"":'/project/list' //If no project name passed redirect to Project list page + } + this.projectQuota = [] // Holds the old list of project_quota saved for the project + // Validation Rules + this.formRules = { + name: {required: true, message: "Name can not be empty"}, + description: {required: true, message: "Description can not be empty"}, + priority_rank: {required: true, message: "Enter Project Rank"} + }; + this.defaultResources = [{name:'LOFAR Observing Time'}, + {name:'LOFAR Observing Time prio A'}, + {name:'LOFAR Observing Time prio B'}, + {name:'LOFAR Processing Time'}, + {name:'Allocation storage'}, + {name:'Number of triggers'}, + {name:'LOFAR Support hours'} ]; + this.projectResourceDefaults = {}; + this.resourceUnitMap = UnitConverter.resourceUnitMap; + this.tooltipOptions = UIConstants.tooltipOptions; + + this.getProjectDetails = this.getProjectDetails.bind(this); + this.cycleOptionTemplate = this.cycleOptionTemplate.bind(this); + this.setProjectQuotaDefaults = this.setProjectQuotaDefaults.bind(this); + this.setProjectParams = this.setProjectParams.bind(this); + this.addNewResource = this.addNewResource.bind(this); + this.removeResource = this.removeResource.bind(this); + this.setProjectQuotaParams = this.setProjectQuotaParams.bind(this); + this.saveProject = this.saveProject.bind(this); + this.saveProjectQuota = this.saveProjectQuota.bind(this); + this.cancelEdit = this.cancelEdit.bind(this); + } + + componentDidMount() { + ProjectService.getDefaultProjectResources() + .then(defaults => { + this.projectResourceDefaults = defaults; + }); + CycleService.getAllCycles() + .then(cycles => { + this.setState({cycles: cycles}); + }); + ProjectService.getProjectCategories() + .then(categories => { + this.setState({projectCategories: categories}); + }); + ProjectService.getPeriodCategories() + .then(categories => { + this.setState({periodCategories: categories}); + }); + ProjectService.getResources() + .then(resourceList => { + this.setState({resourceList: resourceList}); + }) + .then((resourceList, resources) => { + this.getProjectDetails(); + }); + } + + /** + * Function retrieve project details and resource allocations(project_quota) and assign to appropriate varaibles + */ + async getProjectDetails() { + let project = await ProjectService.getProjectDetails(this.props.match.params.id); + let resourceList = this.state.resourceList; + let projectQuota = {}; + if (project) { + // Get project_quota for the project and asssign to the component variable + for (const id of project.quota_ids) { + let quota = await ProjectService.getProjectQuota(id); + let resource = _.find(resourceList, ['name', quota.resource_type_id]); + quota.resource = resource; + this.projectQuota.push(quota); + const conversionFactor = this.resourceUnitMap[resource.quantity_value]?this.resourceUnitMap[resource.quantity_value].conversionFactor:1; + projectQuota[quota.resource_type_id] = quota.value / conversionFactor; + }; + // Remove the already assigned resources from the resoureList + const resources = _.remove(resourceList, (resource) => { return _.find(this.projectQuota, {'resource_type_id': resource.name})!=null }); + this.setState({project: project, resourceList: resourceList, resources: resources, + projectQuota: projectQuota, isLoading: false}); + + // Validate form if all values are as per the form rules and enable Save button + this.validateForm(); + } else { + this.setState({redirect: '../../not-found'}); + } + } + + /** + * Cycle option sub-component with cycle object + */ + cycleOptionTemplate(option) { + return ( + <div className="p-clearfix"> + <span style={{fontSize:'1em',float:'right',margin:'1em .5em 0 0'}}>{option.name}</span> + </div> + ); + } + + /** + * Function to set project resource allocation + * @param {Array} resources + */ + setProjectQuotaDefaults(resources) { + let projectQuota = this.state.projectQuota; + for (const resource of resources) { + const conversionFactor = this.resourceUnitMap[resource.quantity_value]?this.resourceUnitMap[resource.quantity_value].conversionFactor:1; + projectQuota[resource['name']] = this.projectResourceDefaults[resource.name]/conversionFactor; + } + return projectQuota; + } + + /** + * Function to add new resource to project + */ + addNewResource(){ + if (this.state.newResource) { + let resourceList = this.state.resourceList; + const newResource = _.remove(resourceList, {'name': this.state.newResource}); + let resources = this.state.resources?this.state.resources:[]; + resources.push(newResource[0]); + console.log(resources); + this.setState({resources: resources, resourceList: resourceList, newResource: null}); + } + } + + /** + * Callback function to be called from ResourceInpulList when a resource is removed from it + * @param {string} name - resource_type_id + */ + removeResource(name) { + let resources = this.state.resources; + let resourceList = this.state.resourceList; + let projectQuota = this.state.projectQuota; + const removedResource = _.remove(resources, (resource) => { return resource.name === name }); + resourceList.push(removedResource[0]); + delete projectQuota[name]; + this.setState({resourceList: resourceList, resources: resources, projectQuota: projectQuota}); + } + + /** + * Function to call on change and blur events from input components + * @param {string} key + * @param {any} value + */ + setProjectParams(key, value, type) { + let project = this.state.project; + switch(type) { + case 'NUMBER': { + console.log("Parsing Number"); + project[key] = value?parseInt(value):0; + break; + } + default: { + project[key] = value; + break; + } + } + this.setState({project: project, validForm: this.validateForm(key)}); + } + + /** + * Callback Function to call from ResourceInputList on change and blur events + * @param {string} key + * @param {InputEvent} event + */ + setProjectQuotaParams(key, event) { + let projectQuota = this.state.projectQuota; + if (event.target.value) { + let resource = _.find(this.state.resources, {'name': key}); + + let newValue = 0; + if (this.resourceUnitMap[resource.quantity_value] && + event.target.value.toString().indexOf(this.resourceUnitMap[resource.quantity_value].display)>=0) { + newValue = event.target.value.replace(this.resourceUnitMap[resource.quantity_value].display,''); + } else { + newValue = event.target.value; + } + projectQuota[key] = (newValue==="NaN" || isNaN(newValue))?0:newValue; + } else { + let projectQuota = this.state.projectQuota; + projectQuota[key] = 0; + } + this.setState({projectQuota: projectQuota}); + } + + /** + * Validation function to validate the form or field based on the form rules. + * If no argument passed for fieldName, validates all fields in the form. + * @param {string} fieldName + */ + validateForm(fieldName) { + let validForm = false; + let errors = this.state.errors; + let validFields = this.state.validFields; + if (fieldName) { + delete errors[fieldName]; + delete validFields[fieldName]; + if (this.formRules[fieldName]) { + const rule = this.formRules[fieldName]; + const fieldValue = this.state.project[fieldName]; + if (rule.required) { + if (!fieldValue) { + errors[fieldName] = rule.message?rule.message:`${fieldName} is required`; + } else { + validFields[fieldName] = true; + } + } + } + } else { + errors = {}; + validFields = {}; + for (const fieldName in this.formRules) { + const rule = this.formRules[fieldName]; + const fieldValue = this.state.project[fieldName]; + if (rule.required) { + if (!fieldValue) { + errors[fieldName] = rule.message?rule.message:`${fieldName} is required`; + } else { + validFields[fieldName] = true; + } + } + } + } + + if (Object.keys(validFields).length === Object.keys(this.formRules).length) { + validForm = true; + } + this.setState({errors: errors, validFields: validFields, validForm: validForm}); + return validForm; + } + + /** + * Function to call when 'Save' button is clicked to update the project. + */ + saveProject() { + if (this.validateForm) { + ProjectService.updateProject(this.props.match.params.id, this.state.project) + .then(async (project) => { + if (project && this.state.project.updated_at !== project.updated_at) { + this.saveProjectQuota(project); + } else { + this.growl.show({severity: 'error', summary: 'Error Occured', detail: 'Unable to update Project'}); + this.setState({errors: project}); + } + }); + } + } + + /** + * Function to Create, Update & Delete project_quota for the project + */ + async saveProjectQuota(project) { + let dialog = {}; + let quotaError = {}; + let updatingProjectQuota = []; + let newProjectQuota = []; + let deletingProjectQuota = []; + for (const resource in this.state.projectQuota) { + const resourceType = _.find(this.state.resources, {'name': resource}); + const conversionFactor = this.resourceUnitMap[resourceType.quantity_value]?this.resourceUnitMap[resourceType.quantity_value].conversionFactor:1 + let quotaValue = this.state.projectQuota[resource] * conversionFactor; + let existingQuota = _.find(this.projectQuota, {'resource_type_id': resource}); + if (!existingQuota) { + let quota = { project: project.url, + resource_type: resourceType['url'], + value: quotaValue }; + newProjectQuota.push(quota); + } else if (existingQuota && existingQuota.value !== quotaValue) { + existingQuota.project = project.url; + existingQuota.value = quotaValue; + updatingProjectQuota.push(existingQuota); + } + } + let projectQuota = this.state.projectQuota; + deletingProjectQuota = _.filter(this.projectQuota, function(quota) { return !projectQuota[quota.resource_type_id]}); + + for (const projectQuota of deletingProjectQuota) { + const deletedProjectQuota = await ProjectService.deleteProjectQuota(projectQuota); + if (!deletedProjectQuota) { + quotaError[projectQuota.resource_type_id] = true; + } + } + for (const projectQuota of updatingProjectQuota) { + const updatedProjectQuota = await ProjectService.updateProjectQuota(projectQuota); + if (!updatedProjectQuota) { + quotaError[projectQuota.resource_type_id] = true; + } + } + for (const projectQuota of newProjectQuota) { + const createdProjectQuota = await ProjectService.saveProjectQuota(projectQuota); + if (!createdProjectQuota) { + quotaError[projectQuota.resource_type_id] = true; + } + } + if (_.keys(quotaError).length === 0) { + dialog = {header: 'Success', detail: 'Project updated successfully.'}; + } else { + dialog = {header: 'Error', detail: 'Project updated successfully but resource allocation not updated properly. Try again!'}; + } + this.setState({dialogVisible: true, dialog: dialog}); + } + + /** + * Cancel edit and redirect to Project View page + */ + cancelEdit() { + this.setState({redirect: `/project/view/${this.state.project.name}`}); + } + + render() { + if (this.state.redirect) { + return <Redirect to={ {pathname: this.state.redirect} }></Redirect> + } + + return ( + <React.Fragment> + <div className="p-grid"> + <Growl ref={(el) => this.growl = el} /> + + <div className="p-col-10 p-lg-10 p-md-10"> + <h2>Project - Edit</h2> + </div> + <div className="p-col-2 p-lg-2 p-md-2"> + <Link to={{ pathname: `/project/view/${this.state.project.name}`}} title="Close Edit" style={{float: "right"}}> + <i className="fa fa-window-close" style={{marginTop: "10px"}}></i> + </Link> + </div> + </div> + + { this.state.isLoading ? <AppLoader/> : + <> + <div> + <div className="p-fluid"> + <div className="p-field p-grid"> + <label htmlFor="projectName" className="col-lg-2 col-md-2 col-sm-12">Name <span style={{color:'red'}}>*</span></label> + <div className="col-lg-3 col-md-3 col-sm-12"> + <InputText className={this.state.errors.name ?'input-error':''} id="projectName" data-testid="name" + tooltip="Enter name of the project" tooltipOptions={this.tooltipOptions} maxLength="128" + value={this.state.project.name} + onChange={(e) => this.setProjectParams('name', e.target.value)} + onBlur={(e) => this.setProjectParams('name', e.target.value)}/> + <label className={this.state.errors.name?"error":"info"}> + {this.state.errors.name ? this.state.errors.name : "Max 128 characters"} + </label> + </div> + <div className="col-lg-1 col-md-1 col-sm-12"></div> + <label htmlFor="description" className="col-lg-2 col-md-2 col-sm-12">Description <span style={{color:'red'}}>*</span></label> + <div className="col-lg-3 col-md-3 col-sm-12"> + <InputTextarea className={this.state.errors.description ?'input-error':''} rows={3} cols={30} + tooltip="Short description of the project" tooltipOptions={this.tooltipOptions} maxLength="128" + data-testid="description" value={this.state.project.description} + onChange={(e) => this.setProjectParams('description', e.target.value)} + onBlur={(e) => this.setProjectParams('description', e.target.value)}/> + <label className={this.state.errors.description ?"error":"info"}> + {this.state.errors.description ? this.state.errors.description : "Max 255 characters"} + </label> + </div> + </div> + <div className="p-field p-grid"> + <label htmlFor="triggerPriority" className="col-lg-2 col-md-2 col-sm-12">Trigger Priority </label> + <div className="col-lg-3 col-md-3 col-sm-12"> + <InputNumber inputId="trig_prio" name="trig_prio" className={this.state.errors.name ?'input-error':''} + tooltip="Priority of this project with respect to triggers" tooltipOptions={this.tooltipOptions} + value={this.state.project.trigger_priority} showButtons + min={0} max={1001} step={10} useGrouping={false} + onChange={(e) => this.setProjectParams('trigger_priority', e.value)} + onBlur={(e) => this.setProjectParams('trigger_priority', e.target.value, 'NUMBER')} /> + <label className="error"> + {this.state.errors.trigger_priority ? this.state.errors.trigger_priority : ""} + </label> + </div> + <div className="col-lg-1 col-md-1 col-sm-12"></div> + <label htmlFor="trigger" className="col-lg-2 col-md-2 col-sm-12">Allows Trigger Submission</label> + <div className="col-lg-3 col-md-3 col-sm-12"> + <Checkbox inputId="trigger" role="trigger" + tooltip="Is this project allowed to supply observation requests on the fly, possibly interrupting currently running observations (responsive telescope)?" + tooltipOptions={this.tooltipOptions} + checked={this.state.project.can_trigger} onChange={e => this.setProjectParams('can_trigger', e.target.checked)}></Checkbox> + </div> + </div> + <div className="p-field p-grid"> + <label htmlFor="projCategory" className="col-lg-2 col-md-2 col-sm-12">Project Category </label> + <div className="col-lg-3 col-md-3 col-sm-12"> + <Dropdown inputId="projCat" optionLabel="value" optionValue="url" + tooltip="Project Category" tooltipOptions={this.tooltipOptions} + value={this.state.project.project_category} + options={this.state.projectCategories} + onChange={(e) => {this.setProjectParams('project_category', e.value)}} + placeholder="Select Project Category" /> + </div> + <div className="col-lg-1 col-md-1 col-sm-12"></div> + <label htmlFor="periodCategory" className="col-lg-2 col-md-2 col-sm-12">Period Category</label> + <div className="col-lg-3 col-md-3 col-sm-12"> + <Dropdown data-testid="period-cat" id="period-cat" optionLabel="value" optionValue="url" + tooltip="Period Category" tooltipOptions={this.tooltipOptions} + value={this.state.project.period_category} + options={this.state.periodCategories} + onChange={(e) => {this.setProjectParams('period_category',e.value)}} + placeholder="Select Period Category" /> + </div> + </div> + <div className="p-field p-grid"> + <label htmlFor="triggerPriority" className="col-lg-2 col-md-2 col-sm-12">Cycle(s)</label> + <div className="col-lg-3 col-md-3 col-sm-12"> + <MultiSelect data-testid="cycle" id="cycle" optionLabel="name" optionValue="url" filter={true} + tooltip="Cycle(s) to which this project belongs" tooltipOptions={this.tooltipOptions} + value={this.state.project.cycles} + options={this.state.cycles} + onChange={(e) => {this.setProjectParams('cycles',e.value)}} + + /> + </div> + <div className="col-lg-1 col-md-1 col-sm-12"></div> + <label htmlFor="projRank" className="col-lg-2 col-md-2 col-sm-12">Project Rank <span style={{color:'red'}}>*</span></label> + <div className="col-lg-3 col-md-3 col-sm-12"> + <InputNumber inputId="proj-rank" name="rank" data-testid="rank" value={this.state.project.priority_rank} + tooltip="Priority of this project with respect to other projects. Projects can interrupt observations of lower-priority projects." + tooltipOptions={this.tooltipOptions} + mode="decimal" showButtons min={0} max={100} + onChange={(e) => this.setProjectParams('priority_rank', e.value)} + onBlur={(e) => this.setProjectParams('priority_rank', e.target.value, 'NUMBER')} /> + <label className="error"> + {this.state.errors.priority_rank ? this.state.errors.priority_rank : ""} + </label> + </div> + </div> + {this.state.resourceList && + <div className="p-fluid"> + <div className="p-field p-grid"> + <div className="col-lg-2 col-md-2 col-sm-12"> + <h5>Resource Allocations:</h5> + </div> + <div className="col-lg-3 col-md-3 col-sm-10"> + <Dropdown optionLabel="name" optionValue="name" + tooltip="Resources to be allotted for the project" + tooltipOptions={this.tooltipOptions} + value={this.state.newResource} + options={_.sortBy(this.state.resourceList, ['name'])} + onChange={(e) => {this.setState({'newResource': e.value})}} + placeholder="Add Resources" /> + </div> + <div className="col-lg-2 col-md-2 col-sm-2"> + <Button label="" className="p-button-primary" icon="pi pi-plus" onClick={this.addNewResource} disabled={!this.state.newResource} data-testid="add_res_btn" /> + </div> + </div> + {/* {_.keys(this.state.projectQuota).length>0 && */} + <div className="p-field p-grid resource-input-grid"> + <ResourceInputList list={this.state.resources} unitMap={this.resourceUnitMap} + projectQuota={this.state.projectQuota} callback={this.setProjectQuotaParams} + removeInputCallback={this.removeResource} /> + </div> + {/* } */} + </div> + } + </div> + </div> + <div className="p-grid p-justify-start act-btn-grp"> + <div className="p-col-1"> + <Button label="Save" className="p-button-primary" id="save-btn" data-testid="save-btn" icon="pi pi-check" onClick={this.saveProject} disabled={!this.state.validForm} /> + </div> + <div className="p-col-1"> + <Button label="Cancel" className="p-button-danger" icon="pi pi-times" onClick={this.cancelEdit} /> + </div> + </div> + + </> + } + {/* Dialog component to show messages and get input */} + <div className="p-grid" data-testid="confirm_dialog"> + <Dialog header={this.state.dialog.header} visible={this.state.dialogVisible} style={{width: '30vw'}} inputId="confirm_dialog" + modal={true} onHide={() => {this.setState({dialogVisible: false})}} + footer={<div> + <Button key="back" onClick={() => {this.setState({dialogVisible: false}); this.cancelEdit();}} label="Ok" /> + {/* <Button key="submit" type="primary" onClick={this.reset} label="Yes" /> */} + </div> + } > + <div className="p-grid"> + <div className="col-lg-2 col-md-2 col-sm-2"> + <i className="pi pi-check-circle pi-large pi-success"></i> + </div> + <div className="col-lg-10 col-md-10 col-sm-10"> + <span style={{marginTop:"5px"}}>{this.state.dialog.detail}</span> + </div> + </div> + </Dialog> + </div> + </React.Fragment> + ); + } +} \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/edit.test.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/edit.test.js new file mode 100644 index 0000000000000000000000000000000000000000..dd13177fac9e2e1321d5b873783a691d4b96e769 --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/edit.test.js @@ -0,0 +1,267 @@ +import React from 'react'; +import { BrowserRouter as Router } from 'react-router-dom'; +import { act } from "react-dom/test-utils"; +import { render, cleanup, fireEvent } from '@testing-library/react'; +import '@testing-library/jest-dom/extend-expect'; +import _ from 'lodash'; +import moment from 'moment'; + +import {ProjectEdit} from './edit'; +import ProjectService from '../../services/project.service'; +import CycleService from '../../services/cycle.service'; + +import ProjectServiceMock from '../../__mocks__/project.service.data'; + + +let projectCategoriesSpy, allCycleSpy, periodCategoriesSpy, projectDetailsSpy, resourcesSpy, projectQuotaSpy, + updateProjectSpy, savePQSpy, updatePQSpy, deletePQSpy; + +beforeEach(() => { + setMockSpy(); +}); + +afterEach(() => { + // cleanup on exiting + clearMockSpy(); + cleanup(); +}); + +/** + * To set mock spy for Services that have API calls to the back end to fetch data + */ +const setMockSpy = (() => { + projectCategoriesSpy = jest.spyOn(ProjectService, 'getProjectCategories'); + projectCategoriesSpy.mockImplementation(() => { return Promise.resolve([{url: "Regular", value: 'Regular'}, {url: "User Shared Support", value: 'User Shared Support'}])}); + periodCategoriesSpy = jest.spyOn(ProjectService, 'getPeriodCategories'); + periodCategoriesSpy.mockImplementation(() => { return Promise.resolve([{url: "Single Cycle", value: 'Single Cycle'}, {url: "Long Term", value: 'Long Term'}])}); + allCycleSpy = jest.spyOn(CycleService, 'getAllCycles'); + allCycleSpy.mockImplementation(() => { + return Promise.resolve([{url: "http://localhost:3000/api/cycle/Cycle-0/", name: 'Cycle-0'}, + {url: "http://localhost:3000/api/cycle/Cycle-1/", name: 'Cycle-1'}, + {url: "http://192.168.99.100:8008/api/cycle/Cycle%200/", name: 'Cycle 0'}]); + }); + projectDetailsSpy = jest.spyOn(ProjectService, 'getProjectDetails'); + projectDetailsSpy.mockImplementation((id) => { + return Promise.resolve(_.find(ProjectServiceMock.project, {name: id}))}); + resourcesSpy = jest.spyOn(ProjectService, 'getResources'); + resourcesSpy.mockImplementation(() => { + // console.log(ProjectServiceMock.resources); + let resourceList= []; + Object.assign(resourceList, ProjectServiceMock.resources); + return Promise.resolve(resourceList); + }); + projectQuotaSpy = jest.spyOn(ProjectService, 'getProjectQuota'); + projectQuotaSpy.mockImplementation((id) => { + let quota = {}; + Object.assign(quota, _.find(ProjectServiceMock.projectQuota, {id: id})); + return Promise.resolve(quota); + }); + updateProjectSpy = jest.spyOn(ProjectService, 'updateProject'); + updateProjectSpy.mockImplementation((id, project) => { + let updatedProject = {}; + Object.assign(updatedProject, _.find(ProjectServiceMock.project, {name: id})); + updatedProject.name = project.name; + updatedProject.updated_at = new Date(); + return Promise.resolve(updatedProject); + }); + savePQSpy = jest.spyOn(ProjectService, 'saveProjectQuota'); + savePQSpy.mockImplementation(() => { + return Promise.resolve(ProjectServiceMock.projectQuota[0]); + }); + updatePQSpy = jest.spyOn(ProjectService, 'updateProjectQuota'); + updatePQSpy.mockImplementation((quota) => { + return Promise.resolve(_.find(ProjectServiceMock.projectQuota, {id: quota.id})); + }); + deletePQSpy = jest.spyOn(ProjectService, 'deleteProjectQuota'); + deletePQSpy.mockImplementation(() => { + return Promise.resolve({message: 'deleted'}); + }); +}); + +const clearMockSpy = (() => { + projectCategoriesSpy.mockRestore(); + periodCategoriesSpy.mockRestore(); + projectDetailsSpy.mockRestore(); + resourcesSpy.mockRestore(); + projectQuotaSpy.mockRestore(); + updateProjectSpy.mockRestore(); + savePQSpy.mockRestore(); + updatePQSpy.mockRestore(); + deletePQSpy.mockRestore(); +}); + +it("renders nothing if no project details found", async () => { + console.log("renders nothing if no project details found.........."); + let content; + await act(async () => { + content = render(<Router><ProjectEdit match={{params:{id: "OSR-12"}}} location={{}} /></Router>); + }); + + expect(content.queryByText("Project - Edit")).toBe(null); +}); + +it("renders input fields with Project details if found", async () => { + console.log("renders input fields with Project details if found.........."); + let content; + await act(async () => { + content = render(<Router><ProjectEdit match={{params:{id: "OSR-11"}}} location={{}} /></Router>); + }); + + // expect(content.baseElement).toBe(null); + expect(content.queryByText("Project - Edit")).not.toBe(null); + expect(content.queryByTestId("name").value).toBe('OSR-11'); + + const spinButtons = content.queryAllByRole("spinbutton"); + const trigPrioInput = spinButtons.filter(function(element) { return element.id==="trig_prio"})[0]; + expect(trigPrioInput.value).toBe("990"); + + const rankInput = spinButtons.filter(function(element) { return element.id==="proj-rank"})[0]; + expect(rankInput.value).toBe("5"); + + const trigger = content.getAllByLabelText(/trigger/i).filter((element) => { return element.id==="trigger"})[0]; + expect(trigger.hasAttribute("checked")).toBeTruthy(); + + const projCatInput = content.getAllByRole("listbox")[0].children[0] ; + expect(content.queryAllByText('Select Project Category').length).toBe(1); + expect(content.queryAllByText('Regular').length).toBe(3); + + const projPeriodInput = content.getAllByRole("listbox")[1].children[0] ; + expect(content.queryAllByText('Select Period Category').length).toBe(1); + expect(content.queryAllByText('Single Cycle').length).toBe(3); + + const cycleInput = content.getAllByRole("listbox")[2] ; + expect(content.queryAllByText('Cycle 0').length).toBe(2); + + expect(content.queryByPlaceholderText("CEP Processing Time").value).toBe("10 Hours"); + expect(content.queryByPlaceholderText("LOFAR Observing Time").value).toBe("20 Hours"); + expect(content.queryByPlaceholderText("LOFAR Observing Time prio A").value).toBe("30 Hours"); + expect(content.queryByPlaceholderText("LOFAR Observing Time prio B").value).toBe("40 Hours"); + expect(content.queryByPlaceholderText("LOFAR Support Time").value).toBe("50 Hours"); + expect(content.queryByPlaceholderText("LTA Storage").value).toBe("6 TB"); + expect(content.queryByPlaceholderText("Number of triggers").value).toBe("7 Numbers"); + expect(content.queryByPlaceholderText("Support hours").value).toBe("8 "); + + expect(content.queryByTestId('save-btn').hasAttribute("disabled")).toBeFalsy(); + +}); + +it("save Project after editing fields", async () => { + console.log("save Project after editing fields .........."); + let content; + await act(async () => { + content = render(<Router><ProjectEdit match={{params:{id: "OSR-11"}}} location={{}} /></Router>); + }); + + // expect(content.baseElement).toBe(null); + expect(content.queryByText("Project - Edit")).not.toBe(null); + expect(content.queryByTestId("name").value).toBe('OSR-11'); + + const spinButtons = content.queryAllByRole("spinbutton"); + const trigPrioInput = spinButtons.filter(function(element) { return element.id==="trig_prio"})[0]; + fireEvent.blur(trigPrioInput, { target: { value: 900 } }); + expect(trigPrioInput.value).toBe("900"); + + const rankInput = spinButtons.filter(function(element) { return element.id==="proj-rank"})[0]; + fireEvent.blur(rankInput, { target: { value: 2 } }); + expect(rankInput.value).toBe("2"); + + const trigger = content.getAllByLabelText(/trigger/i).filter((element) => { return element.id==="trigger"})[0]; + fireEvent.click(trigger); + expect(trigger.hasAttribute("checked")).toBeFalsy(); + + const projCatInput = content.getAllByRole("listbox")[0].children[1] ; + fireEvent.click(projCatInput); + // After selecting Project Category + expect(content.queryAllByText('Select Project Category').length).toBe(1); + expect(content.queryAllByText('Regular').length).toBe(1); + expect(content.queryAllByText('User Shared Support').length).toBe(3); + + const projPeriodInput = content.getAllByRole("listbox")[1].children[1] ; + fireEvent.click(projPeriodInput); + expect(content.queryAllByText('Select Period Category').length).toBe(1); + expect(content.queryAllByText('Single Cycle').length).toBe(1); + expect(content.queryAllByText('Long Term').length).toBe(3); + + const oldCycleInput = content.getAllByRole("listbox")[2].children[2] ; + const newCycleInput = content.getAllByRole("listbox")[2].children[0] ; + fireEvent.click(oldCycleInput); + fireEvent.click(newCycleInput); + // After selecting Cycle + expect(content.queryAllByText('Cycle-0').length).toBe(2); + expect(content.queryAllByText('Cycle 0').length).toBe(1); + + const lofarObsTimeInput = content.queryByPlaceholderText('LOFAR Observing Time'); + fireEvent.blur(lofarObsTimeInput, { target: { value: 10 } }); + expect(lofarObsTimeInput.value).toBe('10 Hours'); + + const cepProcTimeInput = content.queryByPlaceholderText('CEP Processing Time'); + fireEvent.blur(cepProcTimeInput, { target: { value: 5 } }); + expect(cepProcTimeInput.value).toBe('5 Hours'); + + const ltaStorageInput = content.queryByPlaceholderText('LTA Storage'); + fireEvent.blur(ltaStorageInput, { target: { value: 2 } }); + expect(ltaStorageInput.value).toBe('2 TB'); + + const noOfTriggerInput = content.queryByPlaceholderText('Number of triggers'); + fireEvent.blur(noOfTriggerInput, { target: { value: 3 } }); + expect(noOfTriggerInput.value).toBe('3 Numbers'); + + expect(content.queryByTestId('save-btn').hasAttribute("disabled")).toBeFalsy(); + + await act(async () => { + fireEvent.click(content.queryByTestId('save-btn')); + }); + + // After saving project, Success dialog should be displayed + expect(updateProjectSpy).toHaveBeenCalledTimes(1); + expect(updatePQSpy).toHaveBeenCalledTimes(4); + expect(content.queryByText("Success")).not.toBe(null); +}); + +it("save Project after adding, modifying and deleting resources", async () => { + console.log("save Project after adding, modifying and deleting resource.........."); + let content; + await act(async () => { + content = render(<Router><ProjectEdit match={{params:{id: "OSR-11"}}} location={{}} /></Router>); + }); + + // expect(content.baseElement).toBe(null); + expect(content.queryByText("Project - Edit")).not.toBe(null); + expect(content.queryByTestId("name").value).toBe('OSR-11'); + + // Adding new resource + const addResourceInput = content.getAllByRole("listbox")[3].children[0] ; + fireEvent.click(addResourceInput); + // After selecting New Resource + expect(content.queryAllByText('Add Resources').length).toBe(1); + expect(content.queryAllByText('LOFAR Support hours').length).toBe(3); + const addResourceBtn = content.queryByTestId('add_res_btn'); + fireEvent.click(addResourceBtn); + expect(content.queryAllByText('Add Resources').length).toBe(2); + expect(content.queryByPlaceholderText('LOFAR Support hours')).not.toBe(null); + const lofarSupHrsInput = content.queryByPlaceholderText('LOFAR Support hours'); + fireEvent.blur(lofarSupHrsInput, { target: { value: 100 } }); + expect(lofarSupHrsInput.value).toBe('100 '); + + // Editing existing resource + const lofarObsTimeInput = content.queryByPlaceholderText('LOFAR Observing Time'); + fireEvent.blur(lofarObsTimeInput, { target: { value: 10 } }); + expect(lofarObsTimeInput.value).toBe('10 Hours'); + + // Deleting existing resource + const removeResourceBtn = content.queryByTestId('Support hours-btn'); + fireEvent.click(removeResourceBtn); + + expect(content.queryByTestId('save-btn').hasAttribute("disabled")).toBeFalsy(); + + await act(async () => { + fireEvent.click(content.queryByTestId('save-btn')); + }); + + // After saving project, Success dialog should be displayed + expect(updateProjectSpy).toHaveBeenCalledTimes(1); + expect(savePQSpy).toHaveBeenCalledTimes(1); + expect(updatePQSpy).toHaveBeenCalledTimes(1); + expect(deletePQSpy).toHaveBeenCalledTimes(1); + expect(content.queryByText("Success")).not.toBe(null); +}); \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/index.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/index.js new file mode 100644 index 0000000000000000000000000000000000000000..7572b27b8d71777ba3a584f56a054438cdd4b13e --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/index.js @@ -0,0 +1,6 @@ +import {ProjectCreate} from './create'; +import {ProjectView} from './view'; +import {ProjectEdit} from './edit'; +import {ProjectList} from './list'; + +export {ProjectList, ProjectCreate, ProjectView, ProjectEdit} ; diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/list.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/list.js new file mode 100644 index 0000000000000000000000000000000000000000..c26a43fa9bfbf24144be35f8b1208c154b3391df --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/list.js @@ -0,0 +1,130 @@ +import React, {Component} from 'react'; +import ProjectService from '../../services/project.service'; +import ViewTable from '../../components/ViewTable'; +import { Link } from 'react-router-dom/cjs/react-router-dom.min'; +import AppLoader from '../../layout/components/AppLoader'; + +export class ProjectList extends Component{ + constructor(props){ + super(props) + this.state = { + projectlist: [], + paths: [{ + "View": "/project/view", + }], + defaultcolumns: [ { + "name":"Name / Project Code", + "status":"Status" , + "project_category_value":"Category of Project", + "description":"Description" + }], + optionalcolumns: [{ + "priority_rank":"Project Priority", + "trigger_priority":"Trigger Priority", + "period_category_value":"Category of Period", + "cycles_ids":"Cycles", + "can_trigger": "Trigger Allowed", + "LOFAR Observing Time":"Observing time (Hrs)", + "LOFAR Observing Time prio A":"Observing time prio A (Hrs)", + "LOFAR Observing Time prio B":"Observing time prio B (Hrs)", + "CEP Processing Time":"Processing time (Hrs)", + "LTA Storage":"LTA storage (TB)", + "Number of triggers":"Number of Triggers", + "actionpath":"actionpath", + }], + columnclassname: [{ + "Observing time (Hrs)":"filter-input-50", + "Observing time prio A (Hrs)":"filter-input-50", + "Observing time prio B (Hrs)":"filter-input-50", + "Processing time (Hrs)":"filter-input-50", + "LTA storage (TB)":"filter-input-50", + "Status":"filter-input-50", + "Trigger Allowed":"filter-input-50", + "Number of Triggers":"filter-input-50", + "Project Priority":"filter-input-50", + "Trigger Priority":"filter-input-50", + "Category of Period":"filter-input-50", + "Cycles":"filter-input-100", + }], + defaultSortColumn: [{id: "Name / Project Code", desc: false}], + isprocessed: false, + isLoading: true + } + } + + componentDidMount(){ + // for Unit test, Table data + this.unittestDataProvider(); + ProjectService.getProjectList() + .then(async (projects) => { + await ProjectService.getUpdatedProjectQuota(projects) + .then( async projlist => { + this.setState({ + projectlist: projlist, + isprocessed: true, + isLoading: false + }) + }) + }); + } + + render(){ + return( + <> + <div className="p-grid"> + <div className="p-col-10 p-lg-10 p-md-10"> + <h2>Project - List </h2> + </div> + <div className="p-col-2 p-lg-2 p-md-2"> + <Link to={{ pathname: '/project/create'}} title="Add New Project" style={{float: "right"}}> + <i className="fa fa-plus-square" style={{marginTop: "10px"}}></i> + </Link> + </div> + </div> + {this.state.isLoading? <AppLoader /> : this.state.isprocessed && + <ViewTable + data={this.state.projectlist} + defaultcolumns={this.state.defaultcolumns} + optionalcolumns={this.state.optionalcolumns} + columnclassname={this.state.columnclassname} + defaultSortColumn={this.state.defaultSortColumn} + showaction="true" + paths={this.state.paths} + keyaccessor="name" + unittest={this.state.unittest} + /> + } + </> + ) + } + + // Set table data for Unit test + unittestDataProvider(){ + if(this.props.testdata){ + this.setState({ + projectlist: [{can_trigger: true, + created_at: "2020-07-27T01:29:57.348499", + cycles: ["http://localhost:3000/api/cycle/Cycle%204/"], + cycles_ids: ["Cycle 4"], + description: "string", + expert: true, + filler: true, + name: "Lofar-TMSS-Commissioning", + observing_time: "155852.10", + priority_rank: 10, + private_data: true, + project_quota: ["http://localhost:3000/api/project_quota/6/", "http://localhost:3000/api/project_quota/7/"], + project_quota_ids: [6, 7], + tags: ["Lofar TMSS Project"], + trigger_priority: 20, + triggers_allowed: "56", + updated_at: "2020-07-27T01:29:57.348522", + url: "http://localhost:3000/api/project/Lofar-TMSS-Commissioning/" + }], + isprocessed: true, + unittest: true, + }) + } + } +} + \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/list.test.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/list.test.js new file mode 100644 index 0000000000000000000000000000000000000000..323c91575f39c9aa00a5a4bd6ab43b7e54c086b1 --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/list.test.js @@ -0,0 +1,39 @@ +import React from 'react'; +import ReactDOM, {unmountComponentAtNode} from 'react-dom'; +import { BrowserRouter as Router } from 'react-router-dom'; +import { act } from 'react-dom/test-utils'; +import { render} from '@testing-library/react'; +import { ProjectList} from './index'; + +let container = null; +beforeEach(() =>{ + container = document.createElement("div"); + document.body.appendChild(container); +}); + +afterEach(() =>{ + unmountComponentAtNode(container); + container.remove(); + container = null; +}) + +it("renders without crashing", () =>{ + act(() =>{ + ReactDOM.render(<Router><ProjectList /> </Router>, container); + }) +}) + +// Do check the label appear or not +it('renders Project - List Page in View Table', () => { + const content = render(<ProjectList />); + const element = content.queryByText("Project - List"); + expect(element).toBeInTheDocument() ; + }); + +// do check does the data loaded into DB or not +it('renders Project - List Data Load in View Table', () => { + const content = render(<Router><ProjectList testdata= {true} /> </Router>, container); + const element = content.queryByTestId('viewtable'); + expect(element).toBeInTheDocument(); +}); + \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/view.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/view.js new file mode 100644 index 0000000000000000000000000000000000000000..2ede26034deb218bf3ba36f0049ada765236d2a9 --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/view.js @@ -0,0 +1,153 @@ +import React, {Component} from 'react'; +import {Link, Redirect} from 'react-router-dom' +import moment from 'moment'; +import _ from 'lodash'; + +import { Chips } from 'primereact/chips'; + +import ResourceDisplayList from './ResourceDisplayList'; + +import AppLoader from '../../layout/components/AppLoader'; +import ProjectService from '../../services/project.service'; +import UnitConverter from '../../utils/unit.converter'; + +/** + * Component to view the details of a project + */ +export class ProjectView extends Component { + DATE_FORMAT = 'YYYY-MMM-DD HH:mm:ss'; + constructor(props) { + super(props); + this.state = { + isLoading: true, + }; + if (this.props.match.params.id) { + this.state.projectId = this.props.match.params.id; + } else if (this.props.location.state && this.props.location.state.id) { + this.state.projectId = this.props.location.state.id; + } + this.state.redirect = this.state.projectId?"":'/project' // If no project id is passed, redirect to Project list page + this.resourceUnitMap = UnitConverter.resourceUnitMap; // Resource unit conversion factor and constraints + } + + componentDidMount() { + const projectId = this.state.projectId; + if (projectId) { + this.getProjectDetails(projectId); + } else { + this.setState({redirect: "/not-found"}); + } + } + + /** + * To get the project details from the backend using the service + * + */ + async getProjectDetails() { + let project = await ProjectService.getProjectDetails(this.state.projectId); + let projectQuota = []; + let resources = []; + + if (project) { + // If resources are allocated for the project quota fetch the resources master from the API + if (project.quota) { + resources = await ProjectService.getResources(); + } + + // For every project quota, get the resource type & assign to the resource variable of the quota object + for (const id of project.quota_ids) { + let quota = await ProjectService.getProjectQuota(id); + let resource = _.find(resources, ['name', quota.resource_type_id]); + quota.resource = resource; + projectQuota.push(quota); + }; + this.setState({project: project, projectQuota: projectQuota, isLoading: false}); + } else { + this.setState({redirect: "../../not-found"}) + } + + } + + render() { + if (this.state.redirect) { + return <Redirect to={ {pathname: this.state.redirect} }></Redirect> + } + + return ( + <React.Fragment> + <div className="p-grid"> + <div className="p-col-10 p-lg-10 p-md-10"> + <h2>Project - Details </h2> + </div> + { this.state.project && + <div className="p-col-2 p-lg-2 p-md-2"> + <Link to={{ pathname: `/project`}} title="Close View" style={{float: "right"}}> + <i className="fa fa-times" style={{marginTop: "10px", marginLeft: "5px"}}></i> + </Link> + <Link to={{ pathname: `/project/edit/${this.state.project.name}`, state: {id: this.state.project?this.state.project.name:''}}} title="Edit Project" + style={{float: "right"}}> + <i className="fa fa-edit" style={{marginTop: "10px"}}></i> + </Link> + </div> + } + </div> + { this.state.isLoading && <AppLoader /> } + { this.state.project && + <React.Fragment> + <div className="main-content"> + <div className="p-grid"> + <label className="col-lg-2 col-md-2 col-sm-12">Name</label> + <span className="col-lg-4 col-md-4 col-sm-12">{this.state.project.name}</span> + <label className="col-lg-2 col-md-2 col-sm-12">Description</label> + <span className="col-lg-4 col-md-4 col-sm-12">{this.state.project.description}</span> + </div> + <div className="p-grid"> + <label className="col-lg-2 col-md-2 col-sm-12">Created At</label> + <span className="col-lg-4 col-md-4 col-sm-12">{moment.utc(this.state.project.created_at).format(this.DATE_FORMAT)}</span> + <label className="col-lg-2 col-md-2 col-sm-12">Updated At</label> + <span className="col-lg-4 col-md-4 col-sm-12">{moment.utc(this.state.project.updated_at).format(this.DATE_FORMAT)}</span> + </div> + <div className="p-grid"> + <label className="col-lg-2 col-md-2 col-sm-12">Trigger Priority</label> + <span className="col-lg-4 col-md-4 col-sm-12">{this.state.project.trigger_priority}</span> + <label className="col-lg-2 col-md-2 col-sm-12">Allows Trigger Submission</label> + <span className="col-lg-4 col-md-4 col-sm-12"><i className={this.state.project.can_trigger?'fa fa-check-circle':'fa fa-times-circle'}></i></span> + </div> + <div className="p-grid"> + <label className="col-lg-2 col-md-2 col-sm-12">Project Category</label> + <span className="col-lg-4 col-md-4 col-sm-12">{this.state.project.project_category_value}</span> + <label className="col-lg-2 col-md-2 col-sm-12">Period Category</label> + <span className="col-lg-4 col-md-4 col-sm-12">{this.state.project.period_category_value}</span> + </div> + <div className="p-grid"> + <label className="col-lg-2 col-md-2 col-sm-12">Cycles</label> + <Chips className="col-lg-4 col-md-4 col-sm-12 chips-readonly" disabled value={this.state.project.cycles_ids}></Chips> + <label className="col-lg-2 col-md-2 col-sm-12">Project Rank</label> + <span className="col-lg-4 col-md-4 col-sm-12">{this.state.project.priority_rank}</span> + </div> + <div className="p-fluid"> + <div className="p-field p-grid"> + <div className="col-lg-3 col-md-3 col-sm-12"> + <h5 data-testid="resource_alloc">Resource Allocations</h5> + </div> + </div> + </div> + {this.state.projectQuota.length===0 && + <div className="p-field p-grid"> + <div className="col-lg-12 col-md-12 col-sm-12"> + <span>Reosurces not yet allocated. + <Link to={{ pathname: `/project/edit/${this.state.project.name}`, state: {id: this.state.project?this.state.project.name:''}}} title="Edit Project" > Click</Link> to add. + </span> + </div> + </div> + } + <div className="p-field p-grid resource-input-grid"> + <ResourceDisplayList projectQuota={this.state.projectQuota} unitMap={this.resourceUnitMap} /> + </div> + </div> + </React.Fragment> + } + </React.Fragment> + ); + } +} \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/view.test.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/view.test.js new file mode 100644 index 0000000000000000000000000000000000000000..aaf9327d0308d4076806ba99897dc7a345df0e23 --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Project/view.test.js @@ -0,0 +1,81 @@ +import React from 'react'; +import { BrowserRouter as Router } from 'react-router-dom'; +import { act } from "react-dom/test-utils"; +import { render, cleanup, fireEvent } from '@testing-library/react'; +import '@testing-library/jest-dom/extend-expect'; +import _ from 'lodash'; + +import {ProjectView} from './view'; +import ProjectService from '../../services/project.service'; + +import ProjectServiceMock from '../../__mocks__/project.service.data'; + + +let projectDetailsSpy, resourcesSpy, projectQuotaSpy; + +beforeEach(() => { + setMockSpy(); +}); + +afterEach(() => { + // cleanup on exiting + clearMockSpy(); + cleanup(); +}); + +/** + * To set mock spy for Services that have API calls to the back end to fetch data + */ +const setMockSpy = (() => { + projectDetailsSpy = jest.spyOn(ProjectService, 'getProjectDetails'); + projectDetailsSpy.mockImplementation((id) => { + return Promise.resolve(_.find(ProjectServiceMock.project, {name: id}))}); + resourcesSpy = jest.spyOn(ProjectService, 'getResources'); + resourcesSpy.mockImplementation(() => { + return Promise.resolve(ProjectServiceMock.resources); + }); + projectQuotaSpy = jest.spyOn(ProjectService, 'getProjectQuota'); + projectQuotaSpy.mockImplementation((id) => { + return Promise.resolve(_.find(ProjectServiceMock.projectQuota, {id: id})); + }); +}); + +const clearMockSpy = (() => { + projectDetailsSpy.mockRestore(); + resourcesSpy.mockRestore(); + projectQuotaSpy.mockRestore(); +}); + +it("renders Project details if found", async () => { + console.log("renders Project details if found.........."); + let content; + await act(async () => { + content = render(<Router><ProjectView match={{params:{id: "OSR-11"}}} location={{}} /></Router>); + }); + + expect(content.queryByText("Project - Details")).not.toBe(null); + expect(content.queryAllByText("OSR-11").length).toBe(2); + expect(content.queryByText("990")).not.toBe(null); + expect(content.queryByText("Regular")).not.toBe(null); + expect(content.queryByText("Single Cycle")).not.toBe(null); + expect(content.queryByText("Resource Allocations")).not.toBe(null); + expect(content.queryByText("10 Hours")).not.toBe(null); + expect(content.queryByText("20 Hours")).not.toBe(null); + expect(content.queryByText("30 Hours")).not.toBe(null); + expect(content.queryByText("40 Hours")).not.toBe(null); + expect(content.queryByText("50 Hours")).not.toBe(null); + expect(content.queryByText("6 TB")).not.toBe(null); + expect(content.queryByText("7 Numbers")).not.toBe(null); + expect(content.queryByText("8")).not.toBe(null); + +}); + +it("renders nothing if no project details found", async () => { + console.log("renders nothing if no project details found.........."); + let content; + await act(async () => { + content = render(<Router><ProjectView match={{params:{id: "OSR-12"}}} location={{}} /></Router>); + }); + + expect(content.queryByText("Project - Details")).toBe(null); +}); \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Scheduling/SchedulingUnitList.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Scheduling/SchedulingUnitList.js new file mode 100644 index 0000000000000000000000000000000000000000..14923ef9cd77a73146c6c7375316805821f81249 --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Scheduling/SchedulingUnitList.js @@ -0,0 +1,109 @@ +import React, { Component } from 'react' +import 'primeflex/primeflex.css'; +import moment from 'moment'; +import AppLoader from "./../../layout/components/AppLoader"; +import ViewTable from './../../components/ViewTable'; + +import ScheduleService from '../../services/schedule.service'; + + +class SchedulingUnitList extends Component{ + + constructor(props){ + super(props) + this.state = { + scheduleunit: [], + paths: [{ + "View": "/schedulingunit/view", + }], + isLoading: true, + defaultcolumns: [ { + "type":"Type", + "name":"Name", + "description":"Description", + "created_at":"Created Date", + "updated_at":"Updated Date", + "requirements_template_id": "Template", + "start_time":"Start Time", + "stop_time":"End time", + "duration":"Duration (HH:mm:ss)" + }], + optionalcolumns: [{ + "actionpath":"actionpath", + }], + columnclassname: [{ + "Template":"filter-input-50", + "Duration":"filter-input-50", + "Type": "filter-input-75" + }], + defaultSortColumn: [{id: "Name", desc: false},{id: "Created Date", desc: false}], + } + } + + + + async getSchedulingUnitList () { + const bluePrint = await ScheduleService.getSchedulingUnitBlueprint(); + ScheduleService.getSchedulingUnitDraft().then(scheduleunit =>{ + const output = []; + var scheduleunits = scheduleunit.data.results; + for( const scheduleunit of scheduleunits){ + const blueprintdata = bluePrint.data.results.filter(i => i.draft_id === scheduleunit.id); + blueprintdata.map(blueP => { + blueP.duration = moment.utc(blueP.duration*1000).format('HH:mm:ss'); + blueP.type="Blueprint"; + blueP['actionpath'] = '/task/view/type/id'; + return blueP; + }); + output.push(...blueprintdata); + scheduleunit['actionpath']='/schedulingunit/view'; + scheduleunit['type'] = 'Draft'; + scheduleunit['duration'] = moment.utc(scheduleunit.duration*1000).format('HH:mm:ss'); + output.push(scheduleunit); + } + this.setState({ + scheduleunit: output, isLoading:false + }); + }) + } + + componentDidMount(){ + this.getSchedulingUnitList(); + } + + render(){ + if (this.state.isLoading) { + return <AppLoader/> + } + return( + <> + { + /* + * Call View table to show table data, the parameters are, + data - Pass API data + defaultcolumns - These columns will be populate by default in table with header mentioned + optionalcolumns - These columns will not appear in the table by default, but user can toggle the columns using toggle menu + showaction - {true/false} -> to show the action column + keyaccessor - This is id column for Action item + paths - specify the path for navigation - Table will set "id" value for each row in action button + + */} + {this.state.scheduleunit && + <ViewTable + data={this.state.scheduleunit} + defaultcolumns={this.state.defaultcolumns} + optionalcolumns={this.state.optionalcolumns} + columnclassname={this.state.columnclassname} + defaultSortColumn={this.state.defaultSortColumn} + showaction="true" + keyaccessor="id" + paths={this.state.paths} + unittest={this.state.unittest} + /> + } + </> + ) + } +} + +export default SchedulingUnitList diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Scheduling/ViewSchedulingUnit.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Scheduling/ViewSchedulingUnit.js new file mode 100644 index 0000000000000000000000000000000000000000..46dd2fa42de19b50cacf93cbe8ae46bef4265be1 --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Scheduling/ViewSchedulingUnit.js @@ -0,0 +1,164 @@ +import React, { Component } from 'react' +import {Link} from 'react-router-dom' +import 'primeflex/primeflex.css'; +import { Chips } from 'primereact/chips'; + +import AppLoader from "./../../layout/components/AppLoader"; + +import ViewTable from './../../components/ViewTable'; +import ScheduleService from '../../services/schedule.service'; +import moment from 'moment'; + +class ViewSchedulingUnit extends Component{ + constructor(props){ + super(props) + this.state = { + scheduleunit: null, + schedule_unit_task: [], + isLoading: true, + paths: [{ + "View": "/task", + }], + + defaultcolumns: [ { + "tasktype":"Type", + "id":"ID", + "name":"Name", + "description":"Description", + "created_at":"Created at", + "updated_at":"Updated at", + "do_cancel":"Cancelled", + "start_time":"Start Time", + "stop_time":"End Time", + "duration":"Duration (HH:mm:ss)", + }], + optionalcolumns: [{ + "relative_start_time":"Relative Start Time (HH:mm:ss)", + "relative_stop_time":"Relative End Time (HH:mm:ss)", + "tags":"Tags", + "blueprint_draft":"BluePrint / Task Draft link", + "url":"URL", + "actionpath":"actionpath", + }], + columnclassname: [{ + "Type":"filter-input-75", + "ID":"filter-input-50", + "Cancelled":"filter-input-50", + "Duration (HH:mm:ss)":"filter-input-75", + "Template ID":"filter-input-50", + "BluePrint / Task Draft link": "filter-input-100", + "Relative Start Time (HH:mm:ss)": "filter-input-75", + "Relative End Time (HH:mm:ss)": "filter-input-75", + }], + defaultSortColumn: [{id: "Name", desc: false}], + } + } + + componentDidMount(){ + let schedule_id = this.props.location.state.id + if (schedule_id) { + ScheduleService.getSchedulingUnitDraftById(schedule_id) + .then(scheduleunit =>{ + ScheduleService.getScheduleTasksBySchedulingUnitId(scheduleunit.data.id) + .then(tasks =>{ + tasks.map(task => { + task.duration = moment.utc(task.duration*1000).format('HH:mm:ss'); + task.relative_start_time = moment.utc(task.relative_start_time*1000).format('HH:mm:ss'); + task.relative_stop_time = moment.utc(task.relative_stop_time*1000).format('HH:mm:ss'); + return task; + }); + this.setState({ + scheduleunit : scheduleunit.data, + schedule_unit_task : tasks, + isLoading: false + }); + }); + }) + } + } + + render(){ + return( + <> + <div className="p-grid"> + <div className="p-col-10"> + <h2>Scheduling Unit - Details </h2> + </div> + <div className="p-col-2"> + <Link to={{ pathname: '/schedulingunit'}} title="Close" + style={{float:'right'}}> + <i className="fa fa-times" style={{marginTop: "10px", marginLeft: '5px'}}></i> + </Link> + {/* <Link to={{ pathname: '/schedulingunit/edit', state: {id: this.state.scheduleunit?this.state.scheduleunit.id:''}}} title="Edit" + style={{float:'right'}}> + <i className="fa fa-edit" style={{marginTop: "10px"}}></i> + </Link> */} + </div> + </div> + { this.state.isLoading ? <AppLoader/> :this.state.scheduleunit && + <> + <div className="p-grid"> + <label className="col-lg-2 col-md-2 col-sm-12">Name</label> + <span className="p-col-lg-4 col-md-4 col-sm-12">{this.state.scheduleunit.name}</span> + <label className="col-lg-2 col-md-2 col-sm-12">Description</label> + <span className="col-lg-4 col-md-4 col-sm-12">{this.state.scheduleunit.description}</span> + </div> + <div className="p-grid"> + <label className="col-lg-2 col-md-2 col-sm-12">Created At</label> + <span className="col-lg-4 col-md-4 col-sm-12">{moment(this.state.scheduleunit.created_at).format("YYYY-MMM-DD HH:mm:SS")}</span> + <label className="col-lg-2 col-md-2 col-sm-12">Updated At</label> + <span className="col-lg-4 col-md-4 col-sm-12">{moment(this.state.scheduleunit.updated_at).format("YYYY-MMM-DD HH:mm:SS")}</span> + </div> + <div className="p-grid"> + <label className="col-lg-2 col-md-2 col-sm-12">Start Time</label> + <span className="col-lg-4 col-md-4 col-sm-12">{this.state.scheduleunit.start_time && moment(this.state.scheduleunit.start_time).format("YYYY-MMM-DD HH:mm:SS")}</span> + <label className="col-lg-2 col-md-2 col-sm-12">End Time</label> + <span className="col-lg-4 col-md-4 col-sm-12">{this.state.scheduleunit.stop_time && moment(this.state.scheduleunit.stop_time).format("YYYY-MMM-DD HH:mm:SS")}</span> + </div> + <div className="p-grid"> + <label className="col-lg-2 col-md-2 col-sm-12">Template ID</label> + <span className="col-lg-4 col-md-4 col-sm-12">{this.state.scheduleunit.requirements_template_id}</span> + <label className="col-lg-2 col-md-2 col-sm-12">Scheduling set</label> + <span className="col-lg-4 col-md-4 col-sm-12">{this.state.scheduleunit.scheduling_set_id}</span> + </div> + <div className="p-grid"> + <label className="col-lg-2 col-md-2 col-sm-12">Duration (HH:mm:ss)</label> + <span className="col-lg-4 col-md-4 col-sm-12">{moment.utc(this.state.scheduleunit.duration*1000).format('HH:mm:ss')}</span> + <label className="col-lg-2 col-md-2 col-sm-12">Tags</label> + <Chips className="p-col-4 chips-readonly" disabled value={this.state.scheduleunit.tags}></Chips> + </div> + </> + + } + <div> + <h3>Tasks Details</h3> + </div> + {/* + * Call View table to show table data, the parameters are, + data - Pass API data + defaultcolumns - These columns will be populate by default in table with header mentioned + optionalcolumns - These columns will not appear in the table by default, but user can toggle the columns using toggle menu + showaction - {true/false} -> to show the action column + keyaccessor - This is id column for Action item + paths - specify the path for navigation - Table will set "id" value for each row in action button + + */} + {this.state.isLoading ? <AppLoader/> :this.state.schedule_unit_task.length>0 && + <ViewTable + data={this.state.schedule_unit_task} + defaultcolumns={this.state.defaultcolumns} + optionalcolumns={this.state.optionalcolumns} + columnclassname={this.state.columnclassname} + defaultSortColumn={this.state.defaultSortColumn} + showaction="true" + keyaccessor="id" + paths={this.state.paths} + unittest={this.state.unittest} + /> + } + </> + ) + } +} + +export default ViewSchedulingUnit \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Scheduling/index.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Scheduling/index.js index 5ce2273ff25cb9371132f73e8c685415cb3ab5de..062317b2127f42ca3115e39fba3964121f83f3c4 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/routes/Scheduling/index.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Scheduling/index.js @@ -1,10 +1,23 @@ import React, {Component} from 'react'; +import SchedulingUnitList from './SchedulingUnitList'; export class Scheduling extends Component { - + constructor(props){ + super(props) + this.state = { + scheduleunit: [], + schedule_unit_task: [] , + isLoading:false + } + } + render() { - return ( - <h1>Scheduling Units</h1> + return ( + <> + <h2>Scheduling Unit - List</h2> + {this.state.scheduleunit && + <SchedulingUnitList /> } + </> ); } } diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Task/edit.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Task/edit.js new file mode 100644 index 0000000000000000000000000000000000000000..f978f5907620d28130f89f5893c110d3344ca6ba --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Task/edit.js @@ -0,0 +1,282 @@ +import React, {Component} from 'react'; +import { Link, Redirect } from 'react-router-dom'; +import _ from 'lodash'; + +import {InputText} from 'primereact/inputtext'; +import {InputTextarea} from 'primereact/inputtextarea'; +import {Chips} from 'primereact/chips'; +import {Dropdown} from 'primereact/dropdown'; +import { Button } from 'primereact/button'; + +import Jeditor from '../../components/JSONEditor/JEditor'; + +import TaskService from '../../services/task.service'; +import AppLoader from "./../../layout/components/AppLoader"; + + +export class TaskEdit extends Component { + templateOutput = {}; // id: selectedTemplateId, output: values enetered in the editor form + + constructor(props) { + super(props); + this.state = { + task: { + name: "", + created_at: null, + updated_at: null, + tags:[], + do_cancel: false + }, + redirect: null, + taskTemplates:[], + validEditor: false, + validForm: false, + errors: {}, + isLoading: true + }; + this.formRules = { + name: {required: true, message: "Name can not be empty"}, + description: {required: true, message: "Description can not be empty"} + }; + this.readOnlyProperties = ['duration', 'relative_start_time', 'relative_stop_time']; + this.setEditorOutput = this.setEditorOutput.bind(this); + this.setTaskParams = this.setTaskParams.bind(this); + this.changeTaskTemplate = this.changeTaskTemplate.bind(this); + this.setEditorFunction = this.setEditorFunction.bind(this); + this.validateForm = this.validateForm.bind(this); + this.saveTask = this.saveTask.bind(this); + this.cancelEdit = this.cancelEdit.bind(this); + } + + /** + * This is the callback method to be passed to the JSON editor. + * JEditor will call this function when there is change in the editor. + * @param {Object} jsonOutput + * @param {Array} errors + */ + setEditorOutput(jsonOutput, errors) { + this.templateOutput[this.state.task.specifications_template_id] = jsonOutput; + if (errors.length === 0 && !this.state.validEditor) { + this.setState({validEditor: true, validForm: this.validateForm()}); + } else if (errors.length > 0 && this.state.validEditor) { + this.setState({validEditor: false, validForm: this.validateForm()}); + } + } + + /** + * Function called when there is change in the task parameters. + * @param {String} key + * @param {*} value + */ + setTaskParams(key, value) { + let task = this.state.task; + task[key] = value; + this.setState({task: task, validForm: this.validateForm()}); + } + + /** + * JEditor's function that to be called when parent wants to trigger change in the JSON Editor + * @param {Function} editorFunction + */ + setEditorFunction(editorFunction) { + this.setState({editorFunction: editorFunction}); + } + + /** + * Function to be called when the template schema is changed + * @param {Number} templateId + */ + changeTaskTemplate(templateId) { + + const template = _.find(this.state.taskTemplates, {'id': templateId}); + let task = this.state.task; + task.specifications_template_id = templateId; + + task.specifications_template = template.url; + this.setState({taskSchema: null}); + this.setState({task: task, taskSchema: template.schema}); + + this.state.editorFunction(); + } + + /** + * Function to validate the form excluding the JSON Editor values + */ + validateForm() { + let validForm = false; + let errors = {}; + for (const fieldName in this.formRules) { + const rule = this.formRules[fieldName]; + const fieldValue = this.state.task[fieldName]; + if (rule.required) { + if (!fieldValue) { + errors[fieldName] = rule.message?rule.message:`${fieldName} is required`; + } + } + } + this.setState({errors: errors}); + if (this.state.task.name && this.state.task.description) { + validForm = true; + } + return validForm; + } + + /** + * Function to call the servie and pass the values to save + */ + saveTask() { + let task = this.state.task; + task.specifications_doc = this.templateOutput[task.specifications_template_id]; + // Remove read only properties from the object before sending to API + this.readOnlyProperties.forEach(property => { delete task[property]}); + TaskService.updateTask("draft", task) + .then( (taskDraft) => { + if (taskDraft) { + this.setState({redirect: '/task/view/draft/' + task.id}); + } + }); + } + + cancelEdit() { + this.setState({redirect: '/task/view/draft/' + this.state.task.id}); + } + + componentDidMount() { + this.setState({ isLoading: true }); + TaskService.getTaskTemplates() + .then((templates) => { + this.setState({taskTemplates: templates}); + }); + TaskService.getTaskDetails("draft", this.props.taskId?this.props.taskId:this.props.location.state.taskId) + .then((task) => { + if (task) { + TaskService.getSchedulingUnit("draft", task.scheduling_unit_draft_id) + .then((schedulingUnit) => { + this.setState({schedulingUnit: schedulingUnit,isLoading: false}); + }); + + this.templateOutput[task.specifications_template_id] = task.specifications_doc; + TaskService.getTaskTemplate(task.specifications_template_id) + .then((taskTemplate) => { + this.setState({task: task, taskSchema: taskTemplate.schema, isLoading: false}); + }); + } else { + this.setState({redirect: "/not-found"}); + } + }); + } + + render() { + + if (this.state.redirect) { + return <Redirect to={ {pathname: this.state.redirect, + state: {id: this.state.task.id}} }></Redirect> + } + const { isLoading } = this.state; + + const taskSchema = this.state.taskSchema; + + let jeditor = null; + if (this.state.taskSchema) { + + jeditor = React.createElement(Jeditor, {title: "Specification", + schema: taskSchema, + //initValue: this.state.templateOutput[this.state.task.specifications_template_id], + initValue: this.templateOutput[this.state.task.specifications_template_id], + callback: this.setEditorOutput, + parentFunction: this.setEditorFunction + }); + } + + return ( + <React.Fragment> + <div className="p-grid"> + <div className="p-col-10 p-lg-10 p-md-10"> + <h2>Task - Edit</h2> + </div> + <div className="p-col-2 p-lg-2 p-md-2"> + <Link to={{ pathname: `/task/view/draft/${this.state.task?this.state.task.id:''}`}} title="Close Edit" + style={{float: "right"}} > + <i className="fa fa-window-close" style={{marginTop: "10px"}}></i> + </Link> + </div> + </div> + + {isLoading ? <AppLoader/> : + <div> + <div className="p-fluid"> + <div className="p-field p-grid"> + <label htmlFor="taskName" className="col-lg-2 col-md-2 col-sm-12">Name <span style={{color:'red'}}>*</span></label> + <div className="col-lg-4 col-md-4 col-sm-12"> + <InputText className={this.state.errors.name ?'input-error':''} id="taskName" type="text" value={this.state.task.name} onChange={(e) => this.setTaskParams('name', e.target.value)}/> + <label className="error"> + {this.state.errors.name ? this.state.errors.name : ""} + </label> + </div> + <label htmlFor="description" className="col-lg-2 col-md-2 col-sm-12">Description <span style={{color:'red'}}>*</span></label> + <div className="col-lg-4 col-md-4 col-sm-12"> + <InputTextarea className={this.state.errors.description ?'input-error':''} rows={3} cols={30} value={this.state.task.description} onChange={(e) => this.setTaskParams('description', e.target.value)}/> + <label className="error"> + {this.state.errors.description ? this.state.errors.description : ""} + </label> + </div> + </div> + {/* <div className="p-field p-grid"> + <label htmlFor="createdAt" className="col-lg-2 col-md-2 col-sm-12">Created At</label> + <div className="col-lg-4 col-md-4 col-sm-12"> + <Calendar showTime={true} hourFormat="24" value={created_at} onChange={(e) => this.setState({date2: e.value})}></Calendar> + </div> + <label htmlFor="updatedAt" className="col-lg-2 col-md-2 col-sm-12">Updated At</label> + <div className="col-lg-4 col-md-4 col-sm-12"> + <Calendar showTime={true} hourFormat="24" value={updated_at} onChange={(e) => this.setState({date2: e.value})}></Calendar> + </div> + </div> + */} + <div className="p-field p-grid"> + <label htmlFor="tags" className="col-lg-2 col-md-2 col-sm-12">Tags</label> + <div className="col-lg-4 col-md-4 col-sm-12"> + <Chips value={this.state.task.tags?this.state.task.tags:[]} onChange={(e) => this.setTaskParams('tags', e.value)}></Chips> + </div> + {/* <label htmlFor="doCancel" className="col-lg-2 col-md-2 col-sm-12">Do Cancel</label> + <div className="col-lg-4 col-md-4 col-sm-12"> + <Checkbox onChange={e => this.setTaskParams('do_cancel', e.checked)} checked={this.state.task.do_cancel}></Checkbox> + </div> */} + {this.state.schedulingUnit && + <> + <label className="col-lg-2 col-md-2 col-sm-12">Scheduling Unit</label> + <Link className="col-lg-4 col-md-4 col-sm-12" to={ { pathname:'/schedulingunit/view', state: {id: this.state.schedulingUnit.id}}}>{this.state.schedulingUnit?this.state.schedulingUnit.name:''}</Link> + </> + } + </div> + <div className="p-field p-grid"> + <label htmlFor="tags" className="col-lg-2 col-md-2 col-sm-12">Template</label> + <div className="col-lg-4 col-md-4 col-sm-12"> + <Dropdown optionLabel="name" optionValue="id" + value={this.state.task.specifications_template_id} + options={this.state.taskTemplates} + onChange={(e) => {this.changeTaskTemplate(e.value)}} + placeholder="Select Task Template"/> + </div> + </div> + </div> + </div> + } + <div className="p-fluid"> + <div className="p-grid"><div className="p-col-12"> + {this.state.taskSchema?jeditor:""} + </div> + </div> + </div> + + <div className="p-grid p-justify-start"> + <div className="p-col-1"> + <Button label="Save" className="p-button-primary" icon="pi pi-check" onClick={this.saveTask} disabled={!this.state.validEditor || !this.state.validForm} /> + </div> + <div className="p-col-1"> + <Button label="Cancel" className="p-button-danger" icon="pi pi-times" onClick={this.cancelEdit} /> + </div> + </div> + </React.Fragment> + ); + } +} \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Task/index.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Task/index.js new file mode 100644 index 0000000000000000000000000000000000000000..d7e2c03a6532dbb07064d9ca603f5796bbedd986 --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Task/index.js @@ -0,0 +1,4 @@ +import {TaskEdit} from './edit'; +import {TaskView} from './view'; + +export {TaskEdit, TaskView} ; diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Task/view.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Task/view.js new file mode 100644 index 0000000000000000000000000000000000000000..a8d612e25fed0eb865b57cd798a5ad8134e0d3a3 --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Task/view.js @@ -0,0 +1,222 @@ +import React, {Component} from 'react'; +import {Link, Redirect} from 'react-router-dom' +import moment from 'moment'; + +import Jeditor from '../../components/JSONEditor/JEditor'; + +import TaskService from '../../services/task.service'; +import { Chips } from 'primereact/chips'; +import AppLoader from '../../layout/components/AppLoader'; + +export class TaskView extends Component { + DATE_FORMAT = 'YYYY-MMM-DD HH:mm:ss'; + constructor(props) { + super(props); + this.state = { + isLoading: true + }; + this.setEditorFunction = this.setEditorFunction.bind(this); + if (this.props.match.params.id) { + this.state.taskId = this.props.match.params.id; + } + if (this.props.match.params.type) { + this.state.taskType = this.props.match.params.type; + } + + } + + // static getDerivedStateFromProps(nextProps, prevstate){ + // console.log("DERIVED STATE FROM PROPS"); + // console.log(nextProps); + // console.log(prevstate); + // if (prevstate.task && nextProps.match.params && + // (nextProps.match.params.id === prevstate.task.id || + // nextProps.match.params.type === prevstate.taskType)) { + // return {taskId: prevstate.task.id, taskType: prevstate.taskType} + // } + // console.log("RETURNS NULL"); + // return null; + // } + + componentDidUpdate(prevProps, prevState) { + if (this.state.task && this.props.match.params && + (this.state.taskId !== this.props.match.params.id || + this.state.taskType !== this.props.match.params.type)) { + this.getTaskDetails(this.props.match.params.id, this.props.match.params.type); + } + } + + componentDidMount() { + // const taskId = this.props.location.state?this.props.location.state.id:this.state.taskId; + // let taskType = this.props.location.state?this.props.location.state.type:this.state.taskType; + // taskType = taskType?taskType:'draft'; + let {taskId, taskType} = this.state; + taskId = taskId?taskId:this.props.location.state.id; + taskType = taskType?taskType:this.props.location.state.type; + + if (taskId && taskType) { + this.getTaskDetails(taskId, taskType); + } else { + this.setState({redirect: "/not-found"}); + } + } + + /** + * JEditor's function that to be called when parent wants to trigger change in the JSON Editor + * @param {Function} editorFunction + */ + setEditorFunction(editorFunction) { + this.setState({editorFunction: editorFunction}); + } + + /** + * To get the task details from the backend using the service + * @param {number} taskId + */ + getTaskDetails(taskId, taskType) { + if (taskId) { + taskType = taskType?taskType:'draft'; + TaskService.getTaskDetails(taskType, taskId) + .then((task) => { + if (task) { + TaskService.getSchedulingUnit(taskType, (taskType==='draft'?task.scheduling_unit_draft_id:task.scheduling_unit_blueprint_id)) + .then((schedulingUnit) => { + this.setState({schedulingUnit: schedulingUnit}); + }); + TaskService.getTaskTemplate(task.specifications_template_id) + .then((taskTemplate) => { + if (this.state.editorFunction) { + this.state.editorFunction(); + } + this.setState({task: task, taskTemplate: taskTemplate, isLoading: false, taskId: taskId, taskType: taskType}); + }); + + } else { + this.setState({redirect: "/not-found"}); + } + }); + } + } + + render() { + if (this.state.redirect) { + return <Redirect to={ {pathname: this.state.redirect} }></Redirect> + } + let jeditor = null + if (this.state.taskTemplate) { + jeditor = React.createElement(Jeditor, {title: "Specification", + schema: this.state.taskTemplate.schema, + initValue: this.state.task.specifications_doc, + disabled: true, + // callback: this.setEditorOutput, + parentFunction: this.setEditorFunction + }); + } + + // Child component to render predecessors and successors list + const TaskRelationList = ({ list }) => ( + <ul className="task-list"> + {list && list.map(item => ( + <li key={item.id}> + {/* <Link to={ { pathname:'/task/view', state: {id: item.id, type: item.draft?'blueprint':'draft'}}}>{item.name}</Link> */} + <Link to={ { pathname:`/task/view/${item.draft?'blueprint':'draft'}/${item.id}`}}>{item.name}</Link> + </li> + ))} + </ul> + ); + return ( + <React.Fragment> + <div className="p-grid"> + <div className="p-col-10 p-lg-10 p-md-10"> + <h2>Task - Details </h2> + </div> + <div className="p-col-2 p-lg-2 p-md-2"> + {this.state.taskType === 'draft' && + <div> + <Link to={{ pathname: '/task'}} tooltip="Edit Task" + style={{float: 'right'}}> + <i className="fa fa-times" style={{marginLeft:"5px", marginTop: "10px"}}></i> + </Link> + <Link to={{ pathname: '/task/edit', state: {taskId: this.state.task?this.state.task.id:''}}} tooltip="Edit Task" + style={{float: 'right'}}> + <i className="fa fa-edit" style={{marginTop: "10px"}}></i> + </Link> + </div> + } + {this.state.taskType === 'blueprint' && + <i className="fa fa-lock" style={{float:"right", marginTop: "10px"}}></i> + } + </div> + </div> + { this.state.isLoading? <AppLoader /> : this.state.task && + <React.Fragment> + <div className="main-content"> + <div className="p-grid"> + <label className="col-lg-2 col-md-2 col-sm-12">Name</label> + <span className="col-lg-4 col-md-4 col-sm-12">{this.state.task.name}</span> + <label className="col-lg-2 col-md-2 col-sm-12">Description</label> + <span className="col-lg-4 col-md-4 col-sm-12">{this.state.task.description}</span> + </div> + <div className="p-grid"> + <label className="col-lg-2 col-md-2 col-sm-12">Created At</label> + <span className="col-lg-4 col-md-4 col-sm-12">{moment.utc(this.state.task.created_at).format(this.DATE_FORMAT)}</span> + <label className="col-lg-2 col-md-2 col-sm-12">Updated At</label> + <span className="col-lg-4 col-md-4 col-sm-12">{moment.utc(this.state.task.updated_at).format(this.DATE_FORMAT)}</span> + </div> + <div className="p-grid"> + <label className="col-lg-2 col-md-2 col-sm-12">Copies</label> + <span className="col-lg-4 col-md-4 col-sm-12">{this.state.taskType==='draft'?this.state.task.copies:this.state.task.draftObject.copies}</span> + <label className="col-lg-2 col-md-2 col-sm-12">Copy Reason</label> + <span className="col-lg-4 col-md-4 col-sm-12">{this.state.taskType==='draft'?this.state.task.copy_reason_value:this.state.task.draftObject.copy_reason_value}</span> + </div> + <div className="p-grid"> + <label className="col-lg-2 col-md-2 col-sm-12">Start Time</label> + <span className="col-lg-4 col-md-4 col-sm-12">{this.state.task.start?moment.utc(this.state.task.start).format(this.DATE_FORMAT):""}</span> + <label className="col-lg-2 col-md-2 col-sm-12">End Time</label> + <span className="col-lg-4 col-md-4 col-sm-12">{this.state.task.end?moment.utc(this.state.task.end).format(this.DATE_FORMAT):""}</span> + </div> + <div className="p-grid"> + <label className="col-lg-2 col-md-2 col-sm-12">Tags</label> + <Chips className="col-lg-4 col-md-4 col-sm-12 chips-readonly" disabled value={this.state.task.tags}></Chips> + {this.state.schedulingUnit && + <> + <label className="col-lg-2 col-md-2 col-sm-12">Scheduling Unit</label> + <Link className="col-lg-4 col-md-4 col-sm-12" to={ { pathname:'/schedulingunit/view', state: {id: this.state.schedulingUnit.id}}}>{this.state.schedulingUnit?this.state.schedulingUnit.name:''}</Link> + </>} + </div> + <div className="p-grid"> + <label className="col-lg-2 col-md-2 col-sm-12">Predecessors</label> + <div className="col-lg-4 col-md-4 col-sm-12"> + <TaskRelationList list={this.state.task.predecessors} /> + </div> + <label className="col-lg-2 col-md-2 col-sm-12">Successors</label> + <div className="col-lg-4 col-md-4 col-sm-12"> + <TaskRelationList list={this.state.task.successors} /> + </div> + </div> + <div className="p-grid"> + <label className="col-lg-2 col-md-2 col-sm-12">Template</label> + <span className="col-lg-4 col-md-4 col-sm-12">{this.state.taskTemplate.name}</span> + <label className="col-lg-2 col-md-2 col-sm-12">{this.state.taskType==='draft'?'Blueprints':'Draft'}</label> + <div className="col-lg-4 col-md-4 col-sm-12"> + {this.state.taskType === 'draft' && + <TaskRelationList list={this.state.task.blueprints} /> + } + {this.state.taskType === 'blueprint' && + // <Link className="col-lg-4 col-md-4 col-sm-12" to={ { pathname:'/task/view', state: {id: this.state.task.draft_id, type: 'draft'}}}>{this.state.task.draftObject.name}</Link> + <Link className="col-lg-4 col-md-4 col-sm-12" to={ { pathname:`/task/view/draft/${this.state.task.draft_id}`}}>{this.state.task.draftObject.name}</Link> + } + </div> + </div> + <div className="p-fluid"> + <div className="p-grid"><div className="p-col-12"> + {this.state.taskTemplate?jeditor:""} + </div></div> + </div> + </div> + </React.Fragment> + } + </React.Fragment> + ); + } +} \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/index.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/index.js index 323019846cfc267c7874b64bee9ed4bd8a795f10..0739e7824a404d7e1a21de18298cd809ae0dd79d 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/routes/index.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/index.js @@ -2,18 +2,98 @@ import React from 'react'; import { Route, Switch, - Redirect + Redirect, } from 'react-router-dom'; +import {NotFound} from '../layout/components/NotFound'; +import {ProjectList, ProjectCreate, ProjectView, ProjectEdit} from './Project'; import {Dashboard} from './Dashboard'; import {Scheduling} from './Scheduling'; +import {TaskEdit, TaskView} from './Task'; +import ViewSchedulingUnit from './Scheduling/ViewSchedulingUnit' +import { CycleList, CycleCreate, CycleView, CycleEdit } from './Cycle'; + +export const routes = [ + { + path: "/not-found", + component: NotFound + },{ + path: "/dashboard", + component: Dashboard, + name: 'Dashboard' + },{ + path: "/schedulingunit", + component: Scheduling, + name: 'Scheduling Unit' + },{ + path: "/task", + component: TaskView, + name: 'Task' + },{ + path: "/task/view", + component: TaskView, + name: 'Task' + },{ + path: "/task/view/:type/:id", + component: TaskView, + name: 'Task Details' + },{ + path: "/task/edit", + component: TaskEdit, + name: 'Task Edit' + },{ + path: "/schedulingunit/view", + component: ViewSchedulingUnit, + name: 'Scheduling View' + },{ + path: "/project", + component: ProjectList, + name: 'Project List' + },{ + path: "/project/create", + component: ProjectCreate, + name: 'Project Add' + },{ + path: "/project/view", + component: ProjectView, + name: 'Project View' + },{ + path: "/project/view/:id", + component: ProjectView, + name: 'Project View' + },{ + path: "/project/edit/:id", + component: ProjectEdit, + name: 'Project Edit' + },{ + path: "/cycle/edit/:id", + component: CycleEdit, + name: 'Cycle Edit' + },{ + path: "/cycle/view", + component: CycleView, + name: 'Cycle View' + },{ + path: "/cycle/view/:id", + component: CycleView, + name: 'Cycle View' + }, { + path: "/cycle/create", + component: CycleCreate, + name: 'Cycle Add' + }, + { + path: "/cycle", + component: CycleList, + name: 'Cycle List' + }, +]; export const RoutedContent = () => { return ( - <Switch> + <Switch> <Redirect from="/" to="/" exact /> - <Route path="/dashboard" exact component={Dashboard} /> - <Route path="/scheduling" exact component={Scheduling} /> + {routes.map(routeProps => <Route {...routeProps} exact key={routeProps.path} />)} </Switch> ); } \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/services/cycle.service.js b/SAS/TMSS/frontend/tmss_webapp/src/services/cycle.service.js new file mode 100644 index 0000000000000000000000000000000000000000..f758c543f5a72a8096175dee6484822dc4a2fb48 --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/services/cycle.service.js @@ -0,0 +1,139 @@ +const axios = require('axios'); + +//axios.defaults.baseURL = 'http://192.168.99.100:8008/api'; +axios.defaults.headers.common['Authorization'] = 'Basic dGVzdDp0ZXN0'; + +const CycleService = { + getAllCycles: async function () { + try { + const url = `/api/cycle`; + const response = await axios.get(url); + return response.data.results; + } catch (error) { + console.error(error); + } + }, + // Duplicate + getCycleById: async function (id) { + try { + const url = `/api/cycle/${id}/project`; + const response = await axios.get(url); + return response.data.results; + } catch (error) { + console.error(error); + } + }, + getAllCycleQuotas: async function () { + let res = []; + // To be changed once the cycle_quota for cycle is available. + await axios.get('/api/cycle_quota/?limit=1000&offset=0') + .then(response => { + res = response.data.results; + }).catch(function (error) { + console.error('[cycle.services.cycle_quota]', error); + }); + return res; + }, + // Duplicate + getCycle: async function(id) { + try { + const response = await axios.get((`/api/cycle/${id}`)); + return response; + } catch (error) { + console.error(error); + } + }, + // To be removed + getAllCycle: async function (){ + let res = []; + await axios.get('/api/cycle/') + .then(response => { + res= response; + }).catch(function(error) { + console.error('[cycle.services.getAllCycle]',error); + }); + + return res; + }, + //Duplicate + getResources: async function() { + try { + const url = `/api/resource_type`; + const response = await axios.get(url); + return response.data.results; + } catch (error) { + console.error('[cycle.services.getResources]',error); + } + }, + getCycleQuota: async function(id) { + try { + const response = await axios.get((`/api/cycle_quota/${id}`)); + return response.data; + } catch (error) { + console.error(error); + } + }, + saveCycle: async function(cycle, cycleQuota) { + try { + const response = await axios.post(('/api/cycle/'), cycle); + cycle = response.data + for (let quota of cycleQuota) { + quota.cycle = cycle.url; + this.saveCycleQuota(quota); + } + return response.data; + } catch (error) { + console.log(error.response.data); + return error.response.data; + } + }, + saveCycleQuota: async function(cycleQuota) { + try { + const response = await axios.post(('/api/cycle_quota/'),cycleQuota); + return response.data; + } catch (error) { + console.error(error); + return null; + } + }, + updateCycle: async function(id, cycle) { + try { + const response = await axios.put((`/api/cycle/${id}/`), cycle); + return response.data; + } catch (error) { + console.log(error.response.data); + return error.response.data; + } + }, + deleteCycleQuota: async function(cycleQuota) { + try { + const response = await axios.delete(`/api/cycle_quota/${cycleQuota.id}/`); + return response.status===204?{message: 'deleted'}:null; + } catch (error) { + console.error(error); + return null; + } + }, + updateCycleQuota: async function(cycleQuota) { + try { + const response = await axios.put(`/api/cycle_quota/${cycleQuota.id}/`, cycleQuota); + return response.data; + } catch (error) { + console.error(error); + return null; + } + }, + //Duplicate + getCycleDetails: async function(id) { + try { + const response = await axios.get((`/api/cycle/${id}`)); + let cycle = response.data; + return cycle; + } catch(error) { + console.error(error); + return null; + } + }, +} + +export default CycleService; diff --git a/SAS/TMSS/frontend/tmss_webapp/src/services/project.service.js b/SAS/TMSS/frontend/tmss_webapp/src/services/project.service.js new file mode 100644 index 0000000000000000000000000000000000000000..18598cc1c90e304931d4f4e55c1a4c39a4d6c69e --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/services/project.service.js @@ -0,0 +1,200 @@ +import _ from 'lodash'; + +import UnitConverter from './../utils/unit.converter' + +const axios = require('axios'); + +axios.defaults.headers.common['Authorization'] = 'Basic dGVzdDp0ZXN0'; + +const ProjectService = { + getProjectCategories: async function() { + try { + const url = `/api/project_category/`; + const response = await axios.get(url); + return response.data.results; + } catch (error) { + console.error(error); + } + }, + getPeriodCategories: async function() { + try { + const url = `/api/period_category/`; + const response = await axios.get(url); + return response.data.results; + } catch (error) { + console.error(error); + } + }, + getResources: async function() { + try { + // const url = `/api/resource_type/?ordering=name`; + const url = `/api/resource_type`; + const response = await axios.get(url); + // console.log(response); + return response.data.results; + } catch (error) { + console.error(error); + } + }, + getDefaultProjectResources: async function() { + try { + return Promise.resolve({'LOFAR Observing Time': 3600, + 'LOFAR Observing Time prio A': 3600, + 'LOFAR Observing Time prio B': 3600, + 'CEP Processing Time': 3600, + 'LTA Storage': 1024*1024*1024*1024, + 'Number of triggers': 1, + 'LOFAR Support Time': 3600}); + } catch (error) { + console.error(error); + } + }, + saveProject: async function(project, projectQuota) { + try { + const response = await axios.post(('/api/project/'), project); + project = response.data + for (let quota of projectQuota) { + quota.project = project.url; + this.saveProjectQuota(quota); + } + return response.data; + } catch (error) { + // console.log(error); + console.log(error.response.data); + return error.response.data; + } + }, + updateProject: async function(id, project) { + try { + const response = await axios.put((`/api/project/${id}/`), project); + return response.data; + } catch (error) { + // console.log(error); + console.log(error.response.data); + return error.response.data; + } + }, + saveProjectQuota: async function(projectQuota) { + try { + const response = await axios.post(('/api/project_quota/'), projectQuota); + return response.data; + } catch (error) { + console.error(error); + return null; + } + }, + updateProjectQuota: async function(projectQuota) { + try { + const response = await axios.put(`/api/project_quota/${projectQuota.id}/`, projectQuota); + return response.data; + } catch (error) { + console.error(error); + return null; + } + }, + deleteProjectQuota: async function(projectQuota) { + try { + const response = await axios.delete(`/api/project_quota/${projectQuota.id}/`); + return response.status===204?{message: 'deleted'}:null; + } catch (error) { + console.error(error); + return null; + } + }, + getProjects: async function() { + try { + const response = await axios.get(('/api/project/')); + let projects = response.data.results; + const response1 = await axios.get(('/api/project_quota')); + const allProjectQuota = response1.data.results; + for (let project of projects) { + let projectQuota = _.filter(allProjectQuota, function(projQuota) { return _.includes(project.project_quota_ids, projQuota.id)}); + for (const quota of projectQuota) { + project[quota.resource_type_id] = quota; + } + } + return response.data.results; + } catch (error) { + console.error(error); + return []; + } + }, + getProjectDetails: async function(id) { + try { + const response = await axios.get((`/api/project/${id}`)); + let project = response.data; + return project; + } catch(error) { + console.error(error); + return null; + } + }, + getProjectQuota: async function(quotaId) { + try { + const response = await axios.get((`/api/project_quota/${quotaId}`)); + return response.data; + } catch (error) { + console.error(error); + return null; + } + }, + getProjectList: async function() { + try { + const response = await axios.get('/api/project/'); + return response.data.results; + } catch (error) { + console.error('[project.services.getProjectList]',error); + } + }, + + getResourceUnitType: async function(resource_type_id, resourceTypes){ + let res_unit_type = ''; + try{ + await resourceTypes.forEach(resourcetype => { + if(resourcetype.name === resource_type_id){ + res_unit_type = resourcetype.quantity_value; + return res_unit_type; + } + }); + } catch (error) { + console.error('[project.services.getResourceUnitType]',error); + } + return res_unit_type; + }, + + getUpdatedProjectQuota: async function(projects) { + let results = {}; + try{ + if(projects){ + await this.getResources() + .then(resourcetypes =>{ + results.resourcetypes = resourcetypes; + }) + .then( async ()=>{ + for(const project of projects){ + for(const id of project.quota_ids){ + await ProjectService.getProjectQuota(id).then(async quota =>{ + const resourceType = _.find(results.resourcetypes, ["name", quota.resource_type_id]); + project[quota.resource_type_id] = UnitConverter.getUIResourceUnit(resourceType.quantity_value, quota.value); + }) + } + projects.map((pro,index) => { + if(pro.name === project.name){ + project['actionpath']= '/project/view'; + projects[index] = project; + } + return pro; + }); + } + }); + results.projects = projects; + return results.projects; + } + } catch (error) { + console.error('[project.services.getUpdatedProjectQuota]',error); + } + return results; + }, +} + +export default ProjectService; \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/services/schedule.service.js b/SAS/TMSS/frontend/tmss_webapp/src/services/schedule.service.js new file mode 100644 index 0000000000000000000000000000000000000000..f09e1da9e877f7867ce4f2614cabadccf3a9f6aa --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/services/schedule.service.js @@ -0,0 +1,124 @@ +import axios from 'axios' +import _ from 'lodash'; + +axios.defaults.headers.common['Authorization'] = 'Basic dGVzdDp0ZXN0'; + +const ScheduleService = { + getSchedulingUnitDraft: async function (){ + let res = []; + await axios.get('/api/scheduling_unit_draft/?ordering=id') + .then(response => { + res= response; + }).catch(function(error) { + console.error('[schedule.services.getSchedulingUnitDraft]',error); + }); + return res; + }, + getSchedulingUnitBlueprint: async function (){ + let res = []; + await axios.get('/api/scheduling_unit_blueprint/?ordering=id') + .then(response => { + res= response; + }).catch(function(error) { + console.error('[schedule.services.getSchedulingUnitBlueprint]',error); + }); + return res; + }, + getSchedulingUnitDraftById: async function (id){ + let res = []; + await axios.get('/api/scheduling_unit_draft/'+id) + .then(response => { + res= response; + }).catch(function(error) { + console.error('[schedule.services.getSchedulingUnitDraftById]',error); + }); + return res; + }, + getScheduleTasksBySchedulingUnitId: async function(id){ + let scheduletasklist=[]; + let taskblueprints = []; + // Common keys for Task and Blueprint + let commonkeys = ['id','created_at','description','name','tags','updated_at','url','do_cancel','relative_start_time','relative_stop_time','start_time','stop_time','duration']; + await this.getTaskBlueprints().then( blueprints =>{ + taskblueprints = blueprints.data.results; + }) + await this.getTasksDraftBySchedulingUnitId(id) + .then(response =>{ + for(const task of response.data.results){ + let scheduletask = []; + scheduletask['tasktype'] = 'Draft'; + scheduletask['actionpath'] = '/task/view/draft/'+task['id']; + scheduletask['blueprint_draft'] = task['task_blueprints']; + + //fetch task draft details + for(const key of commonkeys){ + scheduletask[key] = task[key]; + } + + //Fetch blueprint details for Task Draft + let filteredblueprints = _.filter(taskblueprints, function(o) { + if (o.draft_id === task['id']) return o; + }); + + for(const blueprint of filteredblueprints){ + let taskblueprint = []; + taskblueprint['tasktype'] = 'Blueprint'; + taskblueprint['actionpath'] = '/task/view/blueprint/'+blueprint['id']; + taskblueprint['blueprint_draft'] = blueprint['draft']; + for(const key of commonkeys){ + taskblueprint[key] = blueprint[key]; + } + //Add Blue print details to array + scheduletasklist.push(taskblueprint); + } + //Add Task Draft details to array + scheduletasklist.push(scheduletask); + } + }).catch(function(error) { + console.error('[schedule.services.getScheduleTasksBySchedulingUnitId]',error); + }); + return scheduletasklist; + }, + getTaskBlueprints: async function (){ + let res=[]; + await axios.get('/api/task_blueprint/?ordering=id') + .then(response => { + res= response; + }).catch(function(error) { + console.error('[schedule.services.getTaskBlueprints]',error); + }); + return res; + }, + getTaskBlueprintByTaskDraftId: async function (id){ + let res=[]; + await axios.get('/api/task_draft/'+id+'/task_blueprint/?ordering=id') + .then(response => { + res= response; + }).catch(function(error) { + console.error('[schedule.services.getTaskBlueprintByTaskDraftId]',error); + }); + return res; + }, + getTasksDraftBySchedulingUnitId: async function (id){ + let res=[]; + await axios.get('/api/scheduling_unit_draft/'+id+'/task_draft/?ordering=id') + .then(response => { + res= response; + }).catch(function(error) { + console.error('[schedule.services.getTasksDraftBySchedulingUnitId]',error); + }); + return res; + }, + getBlueprintsByschedulingUnitId: async function (id){ + let res=[]; + await axios.get('/api/scheduling_unit_draft/'+id+'/scheduling_unit_blueprint/?ordering=id') + .then(response => { + res= response; + }).catch(function(error) { + console.error('[schedule.services.getBlueprintsByschedulingUnitId]',error); + }); + return res; + }, +} + +export default ScheduleService; \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/services/task.service.js b/SAS/TMSS/frontend/tmss_webapp/src/services/task.service.js new file mode 100644 index 0000000000000000000000000000000000000000..e55f34d594e5c81fd4aca1d819e9def4820155ac --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/services/task.service.js @@ -0,0 +1,143 @@ +const axios = require('axios'); + +//axios.defaults.baseURL = 'http://192.168.99.100:8008/api'; +axios.defaults.headers.common['Authorization'] = 'Basic dGVzdDp0ZXN0'; + +const TaskService = { + getTaskDetails: async function (taskType, taskId) { + try { + const url = taskType === 'blueprint'? '/api/task_blueprint/': '/api/task_draft/'; + const response = await axios.get(url + taskId); + response.data.predecessors = []; + response.data.successors = []; + if (taskType === 'blueprint') { + response.data.blueprints = []; + } else { + response.data.draftName = null; + } + return this.getTaskRelationsByTask(taskType, response.data) + .then(relations => { + response.data.predecessors = relations.predecessors; + response.data.successors = relations.successors; + if (taskType === 'draft') { + response.data.blueprints = relations.blueprints; + } else { + response.data.draftObject = relations.draft; + } + return response.data; + }); + + } catch (error) { + console.error(error); + } + }, + getTaskTemplate: async function(templateId) { + try { + const response = await axios.get('/api/task_template/' + templateId); + return response.data; + } catch (error) { + console.log(error); + } + }, + getTaskTemplates: async function() { + try { + const response = await axios.get('/api/task_template/'); + return response.data.results; + } catch (error) { + console.log(error); + } + }, + getSchedulingUnit: async function(type, id) { + try { + const response = await axios.get('/api/scheduling_unit_draft/' + id); + return response.data; + } catch (error) { + console.error(error); + } + }, + updateTask: async function(type, task) { + try { + const response = await axios.put(('/api/task_draft/' + task.id + "/"), task); + return response.data; + } catch (error) { + console.error(error); + return null; + } + }, + getTaskRelation: async function(type, id) { + try { + const url = type === 'blueprint'? '/api/task_blueprint/': `/api/task_draft/${id}/task_relation_draft/`; + const response = await axios.get(url); + return response.data; + } catch (error) { + console.error(error); + } + }, + getTaskRelationsByTask: async function(type, task) { + try { + let relations = {}; + return this.getTaskPredecessors(type, task.id) + .then( predecessors => { + relations.predecessors = predecessors; + return this.getTaskSuccessors(type, task.id); + }) + .then( successors => { + relations.successors = successors; + if (type === 'draft') { + return this.getDraftsTaskBlueprints(task.id); + } else { + return this.getTaskdraft(task.draft_id); + } + }) + .then( result => { + if (type === 'draft') { + relations.blueprints = result; + } else { + relations.draft = result; + } + return relations; + }); + } catch (error) { + console.log(error); + } + }, + getTaskPredecessors: async function(type, id) { + try { + const url = type === 'blueprint'? `/api/task_blueprint/${id}/predecessors`: `/api/task_draft/${id}/predecessors/`; + const response = await axios.get(url); + return response.data; + } catch (error) { + console.error(error); + } + }, + getTaskSuccessors: async function(type, id) { + try { + const url = type === 'blueprint'? `/api/task_blueprint/${id}/successors`: `/api/task_draft/${id}/successors/`; + const response = await axios.get(url); + return response.data; + } catch (error) { + console.error(error); + } + }, + getDraftsTaskBlueprints: async function(id) { + try { + const url = `/api/task_draft/${id}/task_blueprint`; + const response = await axios.get(url); + return response.data.results; + } catch (error) { + console.error(error); + } + }, + getTaskdraft: async function(id) { + try { + const url = `/api/task_draft/${id}`; + const response = await axios.get(url); + return response.data; + } catch (error) { + console.error(error); + } + } + +} + +export default TaskService; \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/utils/ui.constants.js b/SAS/TMSS/frontend/tmss_webapp/src/utils/ui.constants.js new file mode 100644 index 0000000000000000000000000000000000000000..732079588cf68c3938c6dc9efb8e86d029b3bb98 --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/utils/ui.constants.js @@ -0,0 +1,5 @@ +const UIConstants = { + tooltipOptions: {position: 'left', event: 'hover', className:"p-tooltip-custom"} +} + +export default UIConstants; \ No newline at end of file diff --git a/SAS/TMSS/frontend/tmss_webapp/src/utils/unit.converter.js b/SAS/TMSS/frontend/tmss_webapp/src/utils/unit.converter.js new file mode 100644 index 0000000000000000000000000000000000000000..4a4e3cee4bb33b08618894fb8611bf0b99989b5e --- /dev/null +++ b/SAS/TMSS/frontend/tmss_webapp/src/utils/unit.converter.js @@ -0,0 +1,24 @@ +const UnitConverter = { + resourceUnitMap: {'time':{display: 'Hours', conversionFactor: 3600, mode:'decimal', minFractionDigits:0, maxFractionDigits: 2 }, + 'bytes': {display: 'TB', conversionFactor: (1024*1024*1024*1024), mode:'decimal', minFractionDigits:0, maxFractionDigits: 3}, + 'number': {display: 'Numbers', conversionFactor: 1, mode:'decimal', minFractionDigits:0, maxFractionDigits: 0}, + 'days': {display: 'Days', conversionFactor: (3600*24), mode:'decimal', minFractionDigits:0, maxFractionDigits: 0}}, + + getDBResourceUnit: function() { + + }, + getUIResourceUnit: function(type, value) { + try{ + if(this.resourceUnitMap[type]){ + var retval = Number.parseFloat(value/(this.resourceUnitMap[type].conversionFactor)).toFixed(this.resourceUnitMap[type].maxFractionDigits) + return retval; + } + + }catch(error){ + console.error('[unit.converter.getUIResourceUnit]',error); + } + return value; + } +}; + +export default UnitConverter; diff --git a/SAS/TMSS/src/remakemigrations.py b/SAS/TMSS/src/remakemigrations.py index ed3475278af7c5c1fee2d8232bbe0250630e3131..6a4ee430ffd683388eb4c0ba5523dfc4d89d4c39 100755 --- a/SAS/TMSS/src/remakemigrations.py +++ b/SAS/TMSS/src/remakemigrations.py @@ -78,7 +78,6 @@ class Migration(migrations.Migration): migrations.RunPython(populate_choices), migrations.RunPython(populate_settings), migrations.RunPython(populate_misc), - migrations.RunPython(populate_lofar_json_schemas), migrations.RunPython(populate_resources), migrations.RunPython(populate_cycles), migrations.RunPython(populate_projects) ] diff --git a/SAS/TMSS/src/tmss/settings.py b/SAS/TMSS/src/tmss/settings.py index 3d72d04cab927d444da5603109c8504376e083e8..db1f35dc924fac94922e19dfdd50268214daf5bb 100644 --- a/SAS/TMSS/src/tmss/settings.py +++ b/SAS/TMSS/src/tmss/settings.py @@ -134,7 +134,7 @@ ROOT_URLCONF = 'lofar.sas.tmss.tmss.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [BASE_DIR, os.path.join(BASE_DIR, 'templates'), os.path.join(BASE_DIR, '../frontend','frontend_poc')], + 'DIRS': [BASE_DIR, os.path.join(BASE_DIR, 'templates'), os.path.join(BASE_DIR, '../frontend','tmss_webapp')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ @@ -147,6 +147,10 @@ TEMPLATES = [ }, ] +STATICFILES_DIRS = [ + os.path.join(BASE_DIR, '../frontend','tmss_webapp/build/static') +] + WSGI_APPLICATION = 'lofar.sas.tmss.tmss.wsgi.application' # Database @@ -257,16 +261,15 @@ if "OIDC_RP_CLIENT_ID" in os.environ.keys(): # OPEN-ID CONNECT OIDC_DRF_AUTH_BACKEND = 'mozilla_django_oidc.auth.OIDCAuthenticationBackend' - # For talking to Mozilla Identity Provider: OIDC_RP_SCOPES = "openid email profile" # todo: groups are not a standard scope, how to handle those? OIDC_RP_CLIENT_ID = os.environ.get('OIDC_RP_CLIENT_ID', '2') # Secret, do not put real credentials on Git OIDC_RP_CLIENT_SECRET = os.environ.get('OIDC_RP_CLIENT_SECRET', 'secret') # Secret, do not put real credentials on Git - OIDC_ENDPOINT_HOST = os.environ.get('OIDC_ENDPOINT_HOST', 'tmss_test_oidc') - OIDC_OP_AUTHORIZATION_ENDPOINT = "http://%s:8088/openid/authorize" % OIDC_ENDPOINT_HOST - OIDC_OP_TOKEN_ENDPOINT = "http://%s:8088/openid/token" % OIDC_ENDPOINT_HOST - OIDC_OP_USER_ENDPOINT = "http://%s:8088/openid/userinfo" % OIDC_ENDPOINT_HOST + OIDC_ENDPOINT_HOST = os.environ.get('OIDC_ENDPOINT_HOST', 'localhost') + OIDC_OP_AUTHORIZATION_ENDPOINT = os.environ.get('OIDC_OP_AUTHORIZATION_ENDPOINT', "http://localhost:8088/openid/authorize/") + OIDC_OP_TOKEN_ENDPOINT = os.environ.get('OIDC_OP_TOKEN_ENDPOINT', "http://localhost:8088/openid/token/") + OIDC_OP_USER_ENDPOINT = os.environ.get('OIDC_OP_USER_ENDPOINT', "http://localhost:8088/openid/userinfo/") AUTHENTICATION_BACKENDS += ('mozilla_django_oidc.auth.OIDCAuthenticationBackend',) MIDDLEWARE.append('mozilla_django_oidc.middleware.SessionRefresh') @@ -329,4 +332,4 @@ SWAGGER_SETTINGS = { } }, -} \ No newline at end of file +} diff --git a/SAS/TMSS/src/tmss/tmssapp/adapters/CMakeLists.txt b/SAS/TMSS/src/tmss/tmssapp/adapters/CMakeLists.txt index 509baa35b2cf9733c312448e087a0578bd72de7c..cac38d8903a5029a44d71f97f4230a30bbaed405 100644 --- a/SAS/TMSS/src/tmss/tmssapp/adapters/CMakeLists.txt +++ b/SAS/TMSS/src/tmss/tmssapp/adapters/CMakeLists.txt @@ -3,6 +3,7 @@ include(PythonInstall) set(_py_files parset.py + sip.py ) python_install(${_py_files} diff --git a/SAS/TMSS/src/tmss/tmssapp/adapters/parset.py b/SAS/TMSS/src/tmss/tmssapp/adapters/parset.py index a1ba725ae13ee35bd77dbb0ccc9ab97cd2e5583a..f925be7e0109c6c4780c1f9e416c66e46a2e7e30 100644 --- a/SAS/TMSS/src/tmss/tmssapp/adapters/parset.py +++ b/SAS/TMSS/src/tmss/tmssapp/adapters/parset.py @@ -45,18 +45,18 @@ def _convert_to_parset_dict_for_observationcontrol_schema(subtask: models.Subtas parset["Observation.otdbID"] = 0 # Needed by MACScheduler; should/can this be the same as subtask.pk? parset["Observation.tmssID"] = subtask.pk parset["Observation.processType"] = subtask.specifications_template.type.value.capitalize() - parset["Observation.processSubtype"] = "Beam Observation" # TODO: where to derive the processSubtype from? + parset["Observation.processSubtype"] = "Beam Observation" parset["Observation.Campaign.name"] = subtask.task_blueprint.scheduling_unit_blueprint.draft.scheduling_set.project.name parset["Observation.startTime"] = formatDatetime(subtask.start_time) if isinstance(subtask.start_time, datetime) else subtask.start_time parset["Observation.stopTime"] = formatDatetime(subtask.stop_time) if isinstance(subtask.stop_time, datetime) else subtask.stop_time parset["Observation.VirtualInstrument.minimalNrStations"] = 1 # maybe not mandatory? parset["Observation.VirtualInstrument.stationSet"] = "Custom" # maybe not mandatory? parset["Observation.VirtualInstrument.stationList"] = "[%s]" % ','.join(s for s in spec["stations"]["station_list"]) - parset["Observation.antennaArray"] = "HBA" if "HBA" in spec["antenna_settings"]["antenna_set"] else "LBA" # maybe not mandatory? - parset["Observation.antennaSet"] = spec["antenna_settings"]["antenna_set"] - parset["Observation.bandFilter"] = spec["antenna_settings"]["filter"] - parset["Observation.sampleClock"] = 200 # why is this not part of the schema? for example as a required setting with a single allowed value. - parset["Observation.nrBitsPerSample"] = 8 # why is this not part of the schema? for example as a required setting with a single allowed value. + parset["Observation.antennaArray"] = "HBA" if "HBA" in spec["stations"]["antenna_set"] else "LBA" # maybe not mandatory? + parset["Observation.antennaSet"] = spec["stations"]["antenna_set"] + parset["Observation.bandFilter"] = spec["stations"]["filter"] + parset["Observation.sampleClock"] = 200 # fixed value, no other values are supported + parset["Observation.nrBitsPerSample"] = 8 # fixed value, no other values are supported. parset["Observation.strategy"] = "default" # maybe not mandatory? digi_beams = spec['digital_pointings'] @@ -160,7 +160,7 @@ def _convert_to_parset_dict_for_pipelinecontrol_schema(subtask: models.Subtask) # General parset["prefix"] = "LOFAR." parset["Observation.processType"] = "Pipeline" - parset["Observation.processSubtype"] = "Averaging Pipeline" # TODO: where to derive the processSubtype from? + parset["Observation.processSubtype"] = "Averaging Pipeline" parset["Observation.ObservationControl.PythonControl.pythonProgram"] = "preprocessing_pipeline.py" parset["Observation.ObservationControl.PythonControl.softwareVersion"] = "" parset["Observation.Campaign.name"] = subtask.task_blueprint.scheduling_unit_blueprint.draft.scheduling_set.project.name @@ -168,8 +168,8 @@ def _convert_to_parset_dict_for_pipelinecontrol_schema(subtask: models.Subtask) parset["Observation.Scheduler.predecessors"] = [] parset["Observation.Cluster.ProcessingCluster.clusterName"] = subtask.cluster.name parset["Observation.Cluster.ProcessingCluster.clusterPartition"] = 'cpu' - parset["Observation.Cluster.ProcessingCluster.numberOfTasks"] = 110 # TODO: compute numberOfTasks - parset["Observation.Cluster.ProcessingCluster.numberOfCoresPerTask"] = 2 # TODO: compute numberOfCoresPerTask + parset["Observation.Cluster.ProcessingCluster.numberOfTasks"] = 110 # deprecated (fixed value) to be completely removed in parset with 'JDM-patch 'soon + parset["Observation.Cluster.ProcessingCluster.numberOfCoresPerTask"] = 2 # deprecated (fixed value) to be completely removed in parset with 'JDM-patch 'soon # DPPP steps dppp_steps = [] @@ -250,7 +250,7 @@ def _convert_to_parset_dict_for_pipelinecontrol_schema(subtask: models.Subtask) parset["Observation.ObservationControl.PythonControl.DPPP.demixer.type"] = "demixer" parset["Observation.ObservationControl.PythonControl.DPPP.steps"] = "[%s]" % ",".join(dppp_steps) - parset["Observation.ObservationControl.PythonControl.DPPP.msout.storagemanager.name"] = spec["storagemanager"] # todo: needs to be emptystring when standard/basic/non-dysco? + parset["Observation.ObservationControl.PythonControl.DPPP.msout.storagemanager.name"] = spec["storagemanager"] # Dataproducts parset["Observation.DataProducts.Input_Correlated.enabled"] = "true" diff --git a/SAS/TMSS/src/tmss/tmssapp/adapters/sip.py b/SAS/TMSS/src/tmss/tmssapp/adapters/sip.py new file mode 100644 index 0000000000000000000000000000000000000000..50e2a205555195be071027cdc0894164c2726335 --- /dev/null +++ b/SAS/TMSS/src/tmss/tmssapp/adapters/sip.py @@ -0,0 +1,433 @@ +from lofar.sas.tmss.tmss.exceptions import * +from lofar.sas.tmss.tmss.tmssapp.models.scheduling import Dataproduct, SubtaskType, Subtask, SubtaskOutput +from lofar.sas.tmss.tmss.tmssapp.models.specification import Datatype, Dataformat +from lofar.lta.sip import siplib, ltasip, validator, constants + +import uuid +import logging +import isodate +logger = logging.getLogger(__name__) + +mapping_antennaset_type_TMSS_2_SIP = { + "HBA_DUAL": constants.ANTENNASETTYPE_HBA_DUAL, + "HBA_DUAL_INNER": constants.ANTENNASETTYPE_HBA_DUAL_INNER, + "HBA_JOINED": constants.ANTENNASETTYPE_HBA_JOINED, + "HBA_JOINED_INNER": constants.ANTENNASETTYPE_HBA_JOINED_INNER, + "HBA_ONE": constants.ANTENNASETTYPE_HBA_ONE, + "HBA_ONE_INNER": constants.ANTENNASETTYPE_HBA_ONE_INNER, + "HBA_ZERO": constants.ANTENNASETTYPE_HBA_ZERO, + "HBA_ZERO_INNER": constants.ANTENNASETTYPE_HBA_ZERO_INNER, + "LBA_INNER": constants.ANTENNASETTYPE_LBA_INNER, + "LBA_OUTER": constants.ANTENNASETTYPE_LBA_OUTER, + "LBA_SPARSE_EVEN": constants.ANTENNASETTYPE_LBA_SPARSE_EVEN, + "LBA_SPARSE_ODD": constants.ANTENNASETTYPE_LBA_SPARSE_ODD, + "LBA_ALL": "NOT SUPPORTED IN LTA YET" +} + +mapping_filterset_type_TMSS_2_SIP = { + "LBA_10_90": constants.FILTERSELECTIONTYPE_10_90_MHZ, + "LBA_30_90": constants.FILTERSELECTIONTYPE_30_90_MHZ, + "HBA_110_190": constants.FILTERSELECTIONTYPE_110_190_MHZ, + "HBA_210_250": constants.FILTERSELECTIONTYPE_210_250_MHZ +} + +def get_number_of_dataproducts_of_type(subtask, dataproduct_datatype): + """ + Retrieve the number of dataproducts of given data type in subtask: + :param subtask: + :param dataproduct_datatype: Datatype like "visibilities", "time series", "instrument model", "image", "quality" + :return: + """ + nbr_dataproduct = 0 + subtask_outputs = list(SubtaskOutput.objects.filter(subtask_id=subtask.id)) + for subtask_output in subtask_outputs: + dataproducts = list(Dataproduct.objects.filter(producer_id=subtask_output.id, + dataformat=dataproduct_datatype)) + nbr_dataproduct += len(dataproducts) + return nbr_dataproduct + + +def get_siplib_stations_list(subtask): + """ + Retrieve a list of siplib Stations objects which is extracted from the station_list and the antennaset + TODO Correct mapping of all different HBA/LBA antennaset flavours to antenna fieldtypes required for SIP + :param subtask: + :return: + """ + siplib_station_list =[] + list_stations = subtask.specifications_doc['stations']['station_list'] + antennafieldtypes = ["HBA"] if "HBA" in subtask.specifications_doc['stations']['antenna_set'] else ["LBA"] + for station in list_stations: + siplib_station_list.append(siplib.Station.preconfigured(station, antennafieldtypes)) + return siplib_station_list + + +# todo: how do we handle IDs? ...use ID service for new dataproducts? ...determine IDs of already ingested dataproducts? +# todo: replace the following hack after a conclusion is reached on how to handle IDs. +# Either use the default constructor of siplib.Identifier to have the ID service generate unique IDs +# Or add a class method to create IDs from within TMSS, by implementing a logic that can generate LTA-wide unique integer identifiers. +def create_fake_identifier_for_testing(unique_id: int=None) -> siplib.Identifier: + """ + Create an Identifier object for testing. + While under deleopment, work around the ID service and create fake identifiers that we are not gonna use anyway: + ! Important: Note that the created identifiers will be unknown to the LTA and must not be used for an actual ingest! + :return: A lofar.lta.sip.siplib.Identifier object + """ + identifier = siplib.Identifier.__new__(siplib.Identifier) + if unique_id is None: + unique_id = uuid.uuid4().int + identifier._set_pyxb_identifier( + ltasip.IdentifierType( + source='tmss_test', + identifier=unique_id, + name=None, + label=None), + suppress_warning=True) + logger.warning("Created fake Identifier %s - do not use for an actual ingest!" % unique_id) + return identifier + + +# todo: TMSS defines relations on task level. Technically, I guess it is more correct to go to subtask level when +# adding provenance info with all intermediate dataproducts. So in case a task consists of several chaines processes, +# you get the individual applies steps described in the SIP. Clarify that this is really what we want. +def add_subbtask_and_input_dataproducts_to_sip(subtask: Subtask, sip: siplib.Sip): + """ + add a subtask including its input dataproducts to the sip, according to the specific observation or pipeline type they represent + :param subtask: the Subtask object to add to the sip + :param sip: the Sip object to add to + """ + logger.info("Adding subtask id %s of type %s to sip." % (subtask.id, subtask.specifications_template.type.value)) + sip_subtask = create_sip_representation_for_subtask(subtask) + if isinstance(sip_subtask, siplib.Observation): + sip.add_observation(observation=sip_subtask) + else: + sip.add_pipelinerun(pipeline=sip_subtask) + for input in subtask.inputs.all(): + for dataproduct in input.dataproducts.all(): + sip_dataproduct = create_sip_representation_for_dataproduct(dataproduct) + sip.add_related_dataproduct(sip_dataproduct, return_xml=False) + + +def create_sip_representation_for_subtask(subtask: Subtask): + """ + Extract info from the TMSS subtask and create a sip object representation corresponding to the type of the subtask + :param subtask: + :return: A siplib.Observation object or one of the various siplib pipeline object flavors + """ + # determine common properties + subtask_sip_identifier = create_fake_identifier_for_testing(unique_id=subtask.id) # todo: use correct id + name = str(subtask.id) + process_map = siplib.ProcessMap(strategyname=subtask.specifications_template.name, + strategydescription=subtask.specifications_template.description, + starttime=subtask.start_time, + duration=isodate.duration_isoformat(subtask.stop_time-subtask.start_time), + identifier=subtask_sip_identifier, + observation_identifier=subtask_sip_identifier, + relations=[]) # todo, not sure this is still needed, can be empty for now (potentially scheduling_unit?) + + # determine subtask specific properties and add subtask representation to Sip object + if subtask.specifications_template.type.value == SubtaskType.Choices.OBSERVATION.value: + observation = siplib.Observation(observingmode=constants.OBSERVINGMODETYPE_BEAM_OBSERVATION, # can be hardcoded for an observation + instrumentfilter=mapping_filterset_type_TMSS_2_SIP[subtask.specifications_doc['stations']['filter']], + clock_frequency="200", # fixed, + clock_frequencyunit=constants.FREQUENCYUNIT_MHZ, # fixed, consider Hz? + stationselection=constants.STATIONSELECTIONTYPE_CUSTOM, # fixed + antennaset=mapping_antennaset_type_TMSS_2_SIP[subtask.specifications_doc['stations']['antenna_set']], + timesystem="UTC", # fixed + numberofstations=len(subtask.specifications_doc['stations']['station_list']), + stations=get_siplib_stations_list(subtask), + numberofsubarraypointings=len(subtask.specifications_doc['stations']['digital_pointings']), + numberoftbbevents=0, # fixed + numberofcorrelateddataproducts=get_number_of_dataproducts_of_type(subtask, Dataformat.Choices.MEASUREMENTSET.value), + numberofbeamformeddataproducts=get_number_of_dataproducts_of_type(subtask, Dataformat.Choices.BEAMFORMED.value), + numberofbitspersample=8, # fixed + process_map=process_map, + channelwidth_frequency=None, # NA any more ('BlueGene compatibility' see comment in LTA-SIP.xsd) + channelwidth_frequencyunit=constants.FREQUENCYUNIT_HZ, # fixed + observationdescription=subtask.task_blueprint.description, + channelspersubband=0, # NA any more ('BlueGene compatibility' see comment in LTA-SIP.xsd) + subarraypointings=None, # todo, subtask.specifications_doc, probably more complex than it looks -> RGOE yes complex type for later + transientbufferboardevents=None # fixed + ) + + return observation + elif subtask.specifications_template.type.value == SubtaskType.Choices.PIPELINE.value: + sourcedata_identifiers = [] + for input in subtask.inputs.all(): + sourcedata_identifiers += [create_fake_identifier_for_testing(unique_id=dp.id) for dp in input.dataproducts.all()] # todo: use correct id, lookup based on TMSS reference or so, tbd + if not sourcedata_identifiers: + raise TMSSException("There seems to be no subtask input associated to your pipeline subtask id %s. Please define what data the pipeline processed." % subtask.id) + + pipeline_map = siplib.PipelineMap( + name=subtask.task_blueprint.name, + version='unknown', # todo subtask.specifications_doc, from feedback? + sourcedata_identifiers=sourcedata_identifiers, + process_map=process_map) + + if subtask.specifications_template.name == "pipelinecontrol schema": # todo: re-evaluate this because schema name might change + pipeline = siplib.AveragingPipeline( # <-- this is what we need for UC1 + pipeline_map, + numberofcorrelateddataproducts=get_number_of_dataproducts_of_type(subtask, Dataformat.Choices.MEASUREMENTSET.value), + frequencyintegrationstep=subtask.specifications_doc['demixer']['frequency_steps'] if 'demix' in subtask.task_blueprint.specifications_doc else 0, + timeintegrationstep=subtask.specifications_doc['demixer']['time_step'] if 'demix' in subtask.task_blueprint.specifications_doc else 0, + flagautocorrelations=subtask.task_blueprint.specifications_doc["flag"]["autocorrelations"], + demixing=True if 'demix' in subtask.task_blueprint.specifications_doc else False + ) + # todo: distinguish and create other pipeline types. Probably most of these can be filled in over time as needed, + # but they are not required for UC1. Here are stubs to start from for the other types the LTA supports: + # elif subtask.specifications_template.name == "<???>": # todo + # pipeline = siplib.ImagingPipeline(pipeline_map, + # imagerintegrationtime=10, # todo + # imagerintegrationtime_unit="ms", #todo + # numberofmajorcycles=5, #todo + # numberofinstrumentmodels=5, #todo + # numberofcorrelateddataproducts=1, #todo + # numberofskyimages=1, #todo + # frequencyintegrationstep=None, #todo + # timeintegrationstep=None, #todo + # skymodeldatabase=None, #todo + # demixing=None) #todo + # elif subtask.specifications_template.name == "<???>": # todo + # pipeline = siplib.CalibrationPipeline( + # pipeline_map, + # skymodeldatabase = "db", #todo + # numberofinstrumentmodels = 1, #todo + # numberofcorrelateddataproducts = 1, #todo + # frequencyintegrationstep = 1, #todo + # timeintegrationstep = 1, #todo + # flagautocorrelations = True, #todo + # demixing = False) #todo + # elif subtask.specifications_template.name == "<???>": # todo + # pipeline = siplib.PulsarPipeline(pipeline_map, + # pulsarselection="Pulsars in observation specs, file and brightest in SAP and TAB", #todo + # pulsars=["J1234+67"], #todo + # dosinglepulseanalysis=False, #todo + # convertRawTo8bit=True, #todo + # subintegrationlength=10, #todo + # subintegrationlength_unit='ns', #todo + # skiprfiexcision=False, #todo + # skipdatafolding=False, #todo + # skipoptimizepulsarprofile=True, #todo + # skipconvertrawintofoldedpsrfits=False, #todo + # runrotationalradiotransientsanalysis=True, #todo + # skipdynamicspectrum=False, #todo + # skipprefold=True) #todo + else: + logger.warning('Could not identify LTA pipeline flavor for subtask=%s, template name=%s). Adding as SimplePipeline to SIP.' + % (subtask, subtask.specifications_template.name)) + pipeline = siplib.SimplePipeline(pipeline_map) + return pipeline + else: + # todo: also cover, if needed: COPY, INSPECTION, QA_FILES, QA_PLOTS, DELETION, MANUAL, OTHER + # could be handled as UnspecifiedProcess, or require modeling in the SIP as well? + raise TMSSException("The Subtask type %s cannot be represented in a SIP" % subtask.specifications_template.type.value) + + +def create_sip_representation_for_dataproduct(dataproduct: Dataproduct): + """ + Extract info from the TMSS dataproduct and creates a SIP object representation + :param dataproduct: + :return: One of the siplib dataproduct object flavors. + """ + # Note: this is for the type property present on all dataproduct flavors, dataproduct classes are + # differentiated in addition to that below + type_map = {Datatype.Choices.VISIBILITIES.value: constants.DATAPRODUCTTYPE_CORRELATOR_DATA, + Datatype.Choices.TIME_SERIES.value: constants.DATAPRODUCTTYPE_BEAM_FORMED_DATA, + Datatype.Choices.INSTRUMENT_MODEL.value : constants.DATAPRODUCTTYPE_INSTRUMENT_MODEL, + Datatype.Choices.IMAGE.value : constants.DATAPRODUCTTYPE_SKY_IMAGE, + Datatype.Choices.QUALITY.value : constants.DATAPRODUCTTYPE_UNKNOWN} + + # Note: this is for the fileformat property present on all dataproduct flavors, + # dataproduct classes are differentiated in addition to that below + fileformat_map = {Dataformat.Choices.MEASUREMENTSET.value: constants.FILEFORMATTYPE_AIPS___CASA, + Dataformat.Choices.BEAMFORMED.value: constants.FILEFORMATTYPE_HDF5, + Dataformat.Choices.QA_HDF5.value: constants.FILEFORMATTYPE_HDF5, + Dataformat.Choices.QA_PLOTS.value: constants.FILEFORMATTYPE_UNDOCUMENTED} + + storage_writer_map = {"dysco": constants.STORAGEWRITERTYPE_DYSCOSTORAGEMANAGER, + "unknown": constants.STORAGEWRITERTYPE_UNKNOWN} + + try: + # todo: why is this not with the data but with the connector? The type of data should not depend on what it is used for? I don't get it... - what if we have several connectors? + dataproduct_type = type_map[dataproduct.producer.subtask.task_blueprint.specifications_template.output_connector_types.first().datatype.value] # todo: does not work on the main dataproduct? + except Exception as err: + dataproduct_type = constants.DATAPRODUCTTYPE_UNKNOWN + logger.warning("Could not determine the type of dataproduct id %s (%s). Falling back to %s" % (dataproduct.id, err, dataproduct_type)) + + try: + dataproduct_fileformat = fileformat_map[dataproduct.producer.subtask.task_blueprint.consumed_by.first().dataformat.value] # todo same as with type? Why is this not with the data? Why is this so different from the LTA datamodel? + except Exception as err: + dataproduct_fileformat = constants.FILEFORMATTYPE_UNDOCUMENTED + logger.warning("Could not determine the type of dataproduct id %s (%s). Falling back to %s" % (dataproduct.id, err, dataproduct_fileformat)) + + dataproduct_map = siplib.DataProductMap(type=dataproduct_type, + identifier=create_fake_identifier_for_testing(unique_id=dataproduct.id), # todo: use correct id + size=dataproduct.size if dataproduct.size else 0, + filename=dataproduct.filename, + fileformat=dataproduct_fileformat, + storage_writer=storage_writer_map[dataproduct.producer.subtask.task_blueprint.specifications_doc.get("storagemanager", 'unknown')], # note: default required because storagemanager is not required by all schemas! + storage_writer_version='Unknown', # todo: not modeled? needs to come from feedback eventually. + process_identifier=create_fake_identifier_for_testing(unique_id=dataproduct.producer.subtask.id)) + + # next TODOs: TMSS-300 + if dataproduct.dataformat.value == Dataformat.Choices.MEASUREMENTSET.value: # <- This is the only one we currently need for UC1 + sip_dataproduct = siplib.CorrelatedDataProduct( + dataproduct_map, + subarraypointing_identifier=create_fake_identifier_for_testing(), # todo, from dataproduct.specifications_doc, Jan David checks how to translate int -> Identifier object + subband="1", # todo, from dataproduct.specifications_doc + starttime="1980-03-23T10:20:15", # todo, from dataproduct.specifications_doc + duration="P6Y3M10DT15H", # todo, from dataproduct.specifications_doc + integrationinterval=10, # todo, double, from dataproduct.specifications_doc + integrationintervalunit="s", + central_frequency=160, # todo, from dataproduct.specifications_doc + central_frequencyunit="Hz", + channelwidth_frequency=200, # todo, from dataproduct.specifications_doc + channelwidth_frequencyunit="Hz", + channelspersubband=122, # todo, from dataproduct.specifications_doc + stationsubband=0 # not correct ;) (see metadata recipe CEP/Pipeline/recipes/sip/helpers/metadata.py) + ) + # todo: distinguish and create other dataproduct types. Probably most of these can be filled in over time as needed, + # but they are not required for UC1. Here are stubs to start from for the other types the LTA supports: + # elif dataproduct.dataformat.value == Dataformat.Choices.<???>.value: # todo + # sip_dataproduct = siplib.SkyModelDataProduct(dataproduct_map) + # elif dataproduct.dataformat.value == Dataformat.Choices. <??? >.value: # todo + # sip_dataproduct = siplip.GenericDataProduct(dataproduct_map) + # elif dataproduct.dataformat.value == Dataformat.Choices. <??? >.value: # todo + # sip_dataproduct = siplip.UnspecifiedDataProduct(dataproduct_map) + # elif dataproduct.dataformat.value == Dataformat.Choices. <??? >.value: # todo + # sip_dataproduct = siplip.PixelMapDataProduct(dataproduct_map, + # numberofaxes=5, # todo + # coordinates=[siplib.SpectralCoordinate( # todo + # quantity_type="Frequency", # todo + # quantity_value=20.0, #todo + # axis=siplib.LinearAxis( #todo + # number=5, #todo + # name="bla", #todo + # units="parsec", #todo + # length=5, #todo + # increment=5, #todo + # referencepixel=7.5, #todo + # referencevalue=7.4))]) #todo + # elif dataproduct.dataformat.value == Dataformat.Choices. <??? >.value: # todo + # sip_dataproduct = siplib.SkyImageDataProduct( + # dataproduct_map, # todo + # numberofaxes=2, # todo + # coordinates=[ # todo + # siplib.SpectralCoordinate( # todo + # quantity_type=constants.SPECTRALQUANTITYTYPE_VELOCITYAPPRADIAL, # todo + # quantity_value=20.0, # todo + # axis=siplib.LinearAxis( # todo + # number=5, # todo + # name="bla", # todo + # units="unit", # todo + # length=5, # todo + # increment=5, # todo + # referencepixel=7.5, # todo + # referencevalue=7.4)), # todo + # siplib.DirectionCoordinate( # todo + # linearaxis_a=siplib.LinearAxis( # todo + # number=5, # todo + # name="bla", # todo + # units="unit", # todo + # length=5, # todo + # increment=5, # todo + # referencepixel=7.5, # todo + # referencevalue=7.4), # todo + # linearaxis_b=siplib.LinearAxis( # todo + # number=5, # todo + # name="blb", # todo + # units="unit", # todo + # length=5, # todo + # increment=5, # todo + # referencepixel=7.5, # todo + # referencevalue=7.4), # todo + # pc0_0=0.0, # todo + # pc0_1=0.1, # todo + # pc1_0=1.0, # todo + # pc1_1=1.1, # todo + # equinox=constants.EQUINOXTYPE_JUPITER, # todo + # radecsystem=constants.RADECSYSTEM_FK4_NO_E, # todo + # projection="rear", # todo + # projectionparameters=[1.0, 1.0, 1.0], # todo + # longitudepole_angle=1.0, # todo + # longitudepole_angleunit=constants.ANGLEUNIT_RADIANS, # todo + # latitudepole_angle=2.0, # todo + # latitudepole_angleunit=constants.ANGLEUNIT_ARCSEC, # todo + # ), + # siplib.PolarizationCoordinate( # todo + # tabularaxis=siplib.TabularAxis( # todo + # number=5, # todo + # name="bla", # todo + # units="someunit", # todo + # length=5, # todo + # ), + # polarizations=[constants.POLARIZATIONTYPE_LR, constants.POLARIZATIONTYPE_XRE] # todo + # ), + # ], + # locationframe=constants.LOCATIONFRAME_LOCAL_GROUP, # todo + # timeframe="timeframe", # todo + # observationpointing=siplib.PointingRaDec( # todo + # ra_angle=1.0, # todo + # ra_angleunit=constants.ANGLEUNIT_DEGREES, # todo + # dec_angle=42.0, # todo + # dec_angleunit=constants.ANGLEUNIT_DEGREES, # todo + # equinox=constants.EQUINOXTYPE_B1950 # todo + # ), + # restoringbeammajor_angle=1.0, # todo + # restoringbeammajor_angleunit=constants.ANGLEUNIT_DEGREES, # todo + # restoringbeamminor_angle=2.0, # todo + # restoringbeamminor_angleunit=constants.ANGLEUNIT_DEGREES, # todo + # rmsnoise=1.0 # todo + # ) + else: + logger.warning('Could not identify corresponding SIP dataproduct flavor for dataproduct=%s, dataformat=%s. Adding as SimpleDataproduct to SIP.' % (dataproduct, dataproduct.dataformat)) + sip_dataproduct = siplib.SimpleDataProduct(dataproduct_map) + return sip_dataproduct + + +def recursively_add_subtasks_to_sip(subtask: Subtask, sip: siplib.Sip): + """ + add a subtask and the whole tree of its predecessor subtasks to the sip + by traversing the subtask tree and repeatedly calling add_subbtask_to_sip(). + This will also add the input dataproducts of each subtask. + :param subtask: the Subtask object to add to the sip + :param sip: the Sip object to add to + :return: + """ + add_subbtask_and_input_dataproducts_to_sip(subtask, sip) + for predecessor in subtask.predecessors.all(): + add_subbtask_and_input_dataproducts_to_sip(predecessor, sip) + if subtask is not None: + recursively_add_subtasks_to_sip(predecessor, sip) + + +def generate_sip_for_dataproduct(dataproduct: Dataproduct) -> siplib.Sip: + """ + generate_sip_from_dataproduct + :param dataproduct: The dataproduct to create the SIP for + :return: The Sip object + """ + + # Create sip representation of the described/main dataproduct + sip_dataproduct = create_sip_representation_for_dataproduct(dataproduct) + + # Gather project details + project = dataproduct.producer.subtask.task_blueprint.scheduling_unit_blueprint.draft.scheduling_set.project + project_code = project.name + project_primaryinvestigator = 'project_primaryinvestigator' + project_contactauthor = 'project_contactauthor' + project_description = 'project_description' + + # Create the Sip object + sip = siplib.Sip(project_code=project_code, + project_primaryinvestigator=project_primaryinvestigator, + project_contactauthor=project_contactauthor, + project_description=project_description, + dataproduct=sip_dataproduct) + + subtask = dataproduct.producer.subtask + recursively_add_subtasks_to_sip(subtask, sip) + + validator.check_consistency(sip) + return sip + diff --git a/SAS/TMSS/src/tmss/tmssapp/migrations/0001_initial.py b/SAS/TMSS/src/tmss/tmssapp/migrations/0001_initial.py index e32e4be72aa612bfc8fd7c58088b19c589f5b9b0..77d47478a440ed426e0b651f522874a8ab2b8fff 100644 --- a/SAS/TMSS/src/tmss/tmssapp/migrations/0001_initial.py +++ b/SAS/TMSS/src/tmss/tmssapp/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.0.9 on 2020-08-28 09:06 +# Generated by Django 2.2.12 on 2020-08-04 12:35 from django.conf import settings import django.contrib.postgres.fields @@ -161,6 +161,9 @@ class Migration(migrations.Migration): ('version', models.CharField(help_text='Version of this template (with respect to other templates of the same name).', max_length=128)), ('schema', django.contrib.postgres.fields.jsonb.JSONField(help_text='Schema for the configurable parameters needed to use this template.')), ], + options={ + 'abstract': False, + }, ), migrations.CreateModel( name='DataproductHash', @@ -187,6 +190,9 @@ class Migration(migrations.Migration): ('version', models.CharField(help_text='Version of this template (with respect to other templates of the same name).', max_length=128)), ('schema', django.contrib.postgres.fields.jsonb.JSONField(help_text='Schema for the configurable parameters needed to use this template.')), ], + options={ + 'abstract': False, + }, ), migrations.CreateModel( name='DataproductTransform', @@ -325,6 +331,9 @@ class Migration(migrations.Migration): ('schema', django.contrib.postgres.fields.jsonb.JSONField(help_text='Schema for the configurable parameters needed to use this template.')), ('create_function', models.CharField(help_text='Python function to call to execute the generator.', max_length=128)), ], + options={ + 'abstract': False, + }, ), migrations.CreateModel( name='PeriodCategory', @@ -466,6 +475,22 @@ class Migration(migrations.Migration): 'abstract': False, }, ), + migrations.CreateModel( + name='SchedulingUnitObservingStrategyTemplate', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('tags', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=128), blank=True, default=list, help_text='User-defined search keywords for object.', size=8)), + ('created_at', models.DateTimeField(auto_now_add=True, help_text='Moment of object creation.')), + ('updated_at', models.DateTimeField(auto_now=True, help_text='Moment of last object update.')), + ('name', models.CharField(help_text='Human-readable name of this object.', max_length=128)), + ('description', models.CharField(help_text='A longer description of this object.', max_length=255)), + ('version', models.CharField(help_text='Version of this template (with respect to other templates of the same name).', max_length=128)), + ('template', django.contrib.postgres.fields.jsonb.JSONField(help_text='JSON-data compliant with the JSON-schema in the scheduling_unit_template. This observation strategy template like a predefined recipe with all the correct settings, and defines which parameters the user can alter.')), + ], + options={ + 'abstract': False, + }, + ), migrations.CreateModel( name='SchedulingUnitTemplate', fields=[ @@ -478,6 +503,9 @@ class Migration(migrations.Migration): ('version', models.CharField(help_text='Version of this template (with respect to other templates of the same name).', max_length=128)), ('schema', django.contrib.postgres.fields.jsonb.JSONField(help_text='Schema for the configurable parameters needed to use this template.')), ], + options={ + 'abstract': False, + }, ), migrations.CreateModel( name='StationType', @@ -566,6 +594,9 @@ class Migration(migrations.Migration): ('queue', models.BooleanField(default=False)), ('realtime', models.BooleanField(default=False)), ], + options={ + 'abstract': False, + }, ), migrations.CreateModel( name='SubtaskType', @@ -665,28 +696,27 @@ class Migration(migrations.Migration): ('version', models.CharField(help_text='Version of this template (with respect to other templates of the same name).', max_length=128)), ('schema', django.contrib.postgres.fields.jsonb.JSONField(help_text='Schema for the configurable parameters needed to use this template.')), ], + options={ + 'abstract': False, + }, ), migrations.CreateModel( - name='TaskSchedulingRelationBlueprint', + name='TaskType', fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('tags', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=128), blank=True, default=list, help_text='User-defined search keywords for object.', size=8)), - ('created_at', models.DateTimeField(auto_now_add=True, help_text='Moment of object creation.')), - ('updated_at', models.DateTimeField(auto_now=True, help_text='Moment of last object update.')), - ('time_offset', models.IntegerField(default=60, help_text='Time offset of start of second task with respect to start of first task.')), + ('value', models.CharField(max_length=128, primary_key=True, serialize=False, unique=True)), ], options={ 'abstract': False, }, ), migrations.CreateModel( - name='TaskSchedulingRelationDraft', + name='Setting', fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('tags', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=128), blank=True, default=list, help_text='User-defined search keywords for object.', size=8)), ('created_at', models.DateTimeField(auto_now_add=True, help_text='Moment of object creation.')), ('updated_at', models.DateTimeField(auto_now=True, help_text='Moment of last object update.')), - ('time_offset', models.IntegerField(default=60, help_text='Time offset of start of second task with respect to start of first task.')), + ('name', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, primary_key=True, serialize=False, to='tmssapp.Flag', unique=True)), + ('value', models.BooleanField()), ], options={ 'abstract': False, @@ -704,58 +734,47 @@ class Migration(migrations.Migration): ('version', models.CharField(help_text='Version of this template (with respect to other templates of the same name).', max_length=128)), ('schema', django.contrib.postgres.fields.jsonb.JSONField(help_text='Schema for the configurable parameters needed to use this template.')), ('validation_code_js', models.CharField(blank=True, default='', help_text='JavaScript code for additional (complex) validation.', max_length=128)), + ('type', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='tmssapp.TaskType')), ], + options={ + 'abstract': False, + }, ), migrations.CreateModel( - name='Setting', + name='TaskSchedulingRelationDraft', fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('tags', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=128), blank=True, default=list, help_text='User-defined search keywords for object.', size=8)), ('created_at', models.DateTimeField(auto_now_add=True, help_text='Moment of object creation.')), ('updated_at', models.DateTimeField(auto_now=True, help_text='Moment of last object update.')), - ('name', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, primary_key=True, serialize=False, to='tmssapp.Flag', unique=True)), - ('value', models.BooleanField()), + ('time_offset', models.IntegerField(default=60, help_text='Time offset of start of second task with respect to start of first task.')), + ('first', models.ForeignKey(help_text='First Task Draft to connect.', on_delete=django.db.models.deletion.CASCADE, related_name='first_to_connect', to='tmssapp.TaskDraft')), + ('placement', models.ForeignKey(help_text='Task scheduling relation placement.', on_delete=django.db.models.deletion.PROTECT, to='tmssapp.SchedulingRelationPlacement')), + ('second', models.ForeignKey(help_text='Second Task Draft to connect.', on_delete=django.db.models.deletion.CASCADE, related_name='second_to_connect', to='tmssapp.TaskDraft')), ], options={ 'abstract': False, }, ), - migrations.AddConstraint( - model_name='tasktemplate', - constraint=models.UniqueConstraint(fields=('name', 'version'), name='TaskTemplate_unique_name_version'), - ), - migrations.AddField( - model_name='taskschedulingrelationdraft', - name='first', - field=models.ForeignKey(help_text='First Task Draft to connect.', on_delete=django.db.models.deletion.CASCADE, related_name='first_to_connect', to='tmssapp.TaskDraft'), - ), - migrations.AddField( - model_name='taskschedulingrelationdraft', - name='placement', - field=models.ForeignKey(help_text='Task scheduling relation placement.', on_delete=django.db.models.deletion.PROTECT, to='tmssapp.SchedulingRelationPlacement'), - ), - migrations.AddField( - model_name='taskschedulingrelationdraft', - name='second', - field=models.ForeignKey(help_text='Second Task Draft to connect.', on_delete=django.db.models.deletion.CASCADE, related_name='second_to_connect', to='tmssapp.TaskDraft'), - ), - migrations.AddField( - model_name='taskschedulingrelationblueprint', - name='first', - field=models.ForeignKey(help_text='First Task Blueprint to connect.', on_delete=django.db.models.deletion.CASCADE, related_name='first_to_connect', to='tmssapp.TaskBlueprint'), - ), - migrations.AddField( - model_name='taskschedulingrelationblueprint', - name='placement', - field=models.ForeignKey(default='after', help_text='Task scheduling relation placement.', on_delete=django.db.models.deletion.PROTECT, to='tmssapp.SchedulingRelationPlacement'), - ), - migrations.AddField( - model_name='taskschedulingrelationblueprint', - name='second', - field=models.ForeignKey(help_text='Second Task Blueprint to connect.', on_delete=django.db.models.deletion.CASCADE, related_name='second_to_connect', to='tmssapp.TaskBlueprint'), + migrations.CreateModel( + name='TaskSchedulingRelationBlueprint', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('tags', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=128), blank=True, default=list, help_text='User-defined search keywords for object.', size=8)), + ('created_at', models.DateTimeField(auto_now_add=True, help_text='Moment of object creation.')), + ('updated_at', models.DateTimeField(auto_now=True, help_text='Moment of last object update.')), + ('time_offset', models.IntegerField(default=60, help_text='Time offset of start of second task with respect to start of first task.')), + ('first', models.ForeignKey(help_text='First Task Blueprint to connect.', on_delete=django.db.models.deletion.CASCADE, related_name='first_to_connect', to='tmssapp.TaskBlueprint')), + ('placement', models.ForeignKey(default='after', help_text='Task scheduling relation placement.', on_delete=django.db.models.deletion.PROTECT, to='tmssapp.SchedulingRelationPlacement')), + ('second', models.ForeignKey(help_text='Second Task Blueprint to connect.', on_delete=django.db.models.deletion.CASCADE, related_name='second_to_connect', to='tmssapp.TaskBlueprint')), + ], + options={ + 'abstract': False, + }, ), migrations.AddConstraint( model_name='taskrelationselectiontemplate', - constraint=models.UniqueConstraint(fields=('name', 'version'), name='TaskRelationSelectionTemplate_unique_name_version'), + constraint=models.UniqueConstraint(fields=('name', 'version'), name='taskrelationselectiontemplate_unique_name_version'), ), migrations.AddField( model_name='taskrelationdraft', @@ -855,7 +874,7 @@ class Migration(migrations.Migration): migrations.AddField( model_name='taskconnectortype', name='input_of', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='inpput_connector_types', to='tmssapp.TaskTemplate'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='input_connector_types', to='tmssapp.TaskTemplate'), ), migrations.AddField( model_name='taskconnectortype', @@ -969,7 +988,12 @@ class Migration(migrations.Migration): ), migrations.AddConstraint( model_name='schedulingunittemplate', - constraint=models.UniqueConstraint(fields=('name', 'version'), name='SchedulingUnitTemplate_unique_name_version'), + constraint=models.UniqueConstraint(fields=('name', 'version'), name='schedulingunittemplate_unique_name_version'), + ), + migrations.AddField( + model_name='schedulingunitobservingstrategytemplate', + name='scheduling_unit_template', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='tmssapp.SchedulingUnitTemplate'), ), migrations.AddField( model_name='schedulingunitdraft', @@ -981,6 +1005,11 @@ class Migration(migrations.Migration): name='copy_reason', field=models.ForeignKey(help_text='Reason why source was copied (NULLable).', null=True, on_delete=django.db.models.deletion.PROTECT, to='tmssapp.CopyReason'), ), + migrations.AddField( + model_name='schedulingunitdraft', + name='observation_strategy_template', + field=models.ForeignKey(help_text='Observation Strategy Template used to create the requirements_doc.', null=True, on_delete=django.db.models.deletion.PROTECT, to='tmssapp.SchedulingUnitObservingStrategyTemplate'), + ), migrations.AddField( model_name='schedulingunitdraft', name='requirements_template', @@ -1048,7 +1077,7 @@ class Migration(migrations.Migration): ), migrations.AddConstraint( model_name='generatortemplate', - constraint=models.UniqueConstraint(fields=('name', 'version'), name='GeneratorTemplate_unique_name_version'), + constraint=models.UniqueConstraint(fields=('name', 'version'), name='generatortemplate_unique_name_version'), ), migrations.AddField( model_name='filesystem', @@ -1097,7 +1126,7 @@ class Migration(migrations.Migration): ), migrations.AddConstraint( model_name='dataproductspecificationstemplate', - constraint=models.UniqueConstraint(fields=('name', 'version'), name='DataproductSpecificationsTemplate_unique_name_version'), + constraint=models.UniqueConstraint(fields=('name', 'version'), name='dataproductspecificationstemplate_unique_name_version'), ), migrations.AddField( model_name='dataproducthash', @@ -1111,7 +1140,7 @@ class Migration(migrations.Migration): ), migrations.AddConstraint( model_name='dataproductfeedbacktemplate', - constraint=models.UniqueConstraint(fields=('name', 'version'), name='DataproductFeedbackTemplate_unique_name_version'), + constraint=models.UniqueConstraint(fields=('name', 'version'), name='dataproductfeedbacktemplate_unique_name_version'), ), migrations.AddField( model_name='dataproductarchiveinfo', @@ -1153,6 +1182,10 @@ class Migration(migrations.Migration): name='station_type', field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='tmssapp.StationType'), ), + migrations.AddConstraint( + model_name='tasktemplate', + constraint=models.UniqueConstraint(fields=('name', 'version'), name='tasktemplate_unique_name_version'), + ), migrations.AddIndex( model_name='taskschedulingrelationdraft', index=django.contrib.postgres.indexes.GinIndex(fields=['tags'], name='tmssapp_tas_tags_d1e21f_gin'), @@ -1175,7 +1208,7 @@ class Migration(migrations.Migration): ), migrations.AddConstraint( model_name='subtasktemplate', - constraint=models.UniqueConstraint(fields=('name', 'version'), name='SubtaskTemplate_unique_name_version'), + constraint=models.UniqueConstraint(fields=('name', 'version'), name='subtasktemplate_unique_name_version'), ), migrations.AddIndex( model_name='subtaskstatelog', diff --git a/SAS/TMSS/src/tmss/tmssapp/models/scheduling.py b/SAS/TMSS/src/tmss/tmssapp/models/scheduling.py index 9cad678f4a1c1e61c80b857578940e24502047b6..dfbed1ea63342741711d96abfdf2cc0b4c09432b 100644 --- a/SAS/TMSS/src/tmss/tmssapp/models/scheduling.py +++ b/SAS/TMSS/src/tmss/tmssapp/models/scheduling.py @@ -106,10 +106,6 @@ class SubtaskTemplate(Template): queue = BooleanField(default=False) realtime = BooleanField(default=False) - class Meta: - # TODO: move up to the abstract base class and replace with django 3.0 UniqueConstraint(... name='%*class)s_unique_name_version) - constraints = [UniqueConstraint(fields=['name', 'version'], name='SubtaskTemplate_unique_name_version')] - class DefaultSubtaskTemplate(BasicCommon): name = CharField(max_length=128, unique=True) @@ -117,9 +113,7 @@ class DefaultSubtaskTemplate(BasicCommon): class DataproductSpecificationsTemplate(Template): - class Meta: - # TODO: move up to the abstract base class and replace with django 3.0 UniqueConstraint(... name='%*class)s_unique_name_version) - constraints = [UniqueConstraint(fields=['name', 'version'], name='DataproductSpecificationsTemplate_unique_name_version')] + pass class DefaultDataproductSpecificationsTemplate(BasicCommon): @@ -128,9 +122,7 @@ class DefaultDataproductSpecificationsTemplate(BasicCommon): class DataproductFeedbackTemplate(Template): - class Meta: - # TODO: move up to the abstract base class and replace with django 3.0 UniqueConstraint(... name='%*class)s_unique_name_version) - constraints = [UniqueConstraint(fields=['name', 'version'], name='DataproductFeedbackTemplate_unique_name_version')] + pass # todo: do we need to specify a default? diff --git a/SAS/TMSS/src/tmss/tmssapp/models/specification.py b/SAS/TMSS/src/tmss/tmssapp/models/specification.py index aa2f641fa89e52e7fe328e31f8d730cd3eb86485..7f98f477ab70452169da0868e53e8e076566a358 100644 --- a/SAS/TMSS/src/tmss/tmssapp/models/specification.py +++ b/SAS/TMSS/src/tmss/tmssapp/models/specification.py @@ -186,6 +186,17 @@ class ProjectCategory(AbstractChoice): TEST = "test" +class TaskType(AbstractChoice): + """Defines the model and predefined list of possible TaskType's for Task. + The items in the Choices class below are automagically populated into the database via a data migration.""" + class Choices(Enum): + OBSERVATION = "observation" + PIPELINE = "pipeline" + INGEST = "ingest" + MAINTENANCE = "maintenance" + OTHER = 'other' + + # concrete models class Setting(BasicCommon): @@ -198,7 +209,7 @@ class TaskConnectorType(BasicCommon): datatype = ForeignKey('Datatype', null=False, on_delete=PROTECT) dataformats = ManyToManyField('Dataformat', blank=True) output_of = ForeignKey("TaskTemplate", related_name='output_connector_types', on_delete=CASCADE) - input_of = ForeignKey("TaskTemplate", related_name='inpput_connector_types', on_delete=CASCADE) + input_of = ForeignKey("TaskTemplate", related_name='input_connector_types', on_delete=CASCADE) # @@ -213,8 +224,7 @@ class Template(NamedCommon): class Meta: abstract = True - # TODO: remove all <class>_unique_name_version UniqueConstraint's from the subclasses and replace by this line below when we start using django 3.0 - # constraints = [UniqueConstraint(fields=['name', 'version'], name='%(class)s_unique_name_version')] + constraints = [UniqueConstraint(fields=['name', 'version'], name='%(class)s_unique_name_version')] def save(self, force_insert=False, force_update=False, using=None, update_fields=None): # if not self.schema.get('$id', '').startswith('http'): @@ -245,20 +255,31 @@ class CommonSchemaTemplate(Template): class GeneratorTemplate(Template): create_function = CharField(max_length=128, help_text='Python function to call to execute the generator.') - class Meta: - # TODO: move up to the abstract base class and replace with django 3.0 UniqueConstraint(... name='%*class)s_unique_name_version) - constraints = [UniqueConstraint(fields=['name', 'version'], name='GeneratorTemplate_unique_name_version')] - class DefaultGeneratorTemplate(BasicCommon): name = CharField(max_length=128, unique=True) template = ForeignKey("GeneratorTemplate", on_delete=PROTECT) +class SchedulingUnitObservingStrategyTemplate(NamedCommon): + ''' + A SchedulingUnitObservingStrategyTemplate is a template in the sense that it serves as a template to fill in json data objects conform its referred scheduling_unit_template. + It is however not derived from the (abstract) Template super-class, because the Template super class is for JSON schemas, not JSON data objects. + ''' + version = CharField(max_length=128, help_text='Version of this template (with respect to other templates of the same name).') + template = JSONField(null=False, help_text='JSON-data compliant with the JSON-schema in the scheduling_unit_template. ' + 'This observation strategy template like a predefined recipe with all the correct settings, and defines which parameters the user can alter.') + scheduling_unit_template = ForeignKey("SchedulingUnitTemplate", on_delete=PROTECT, null=False, help_text="") + + def save(self, force_insert=False, force_update=False, using=None, update_fields=None): + if self.template and self.scheduling_unit_template_id and self.scheduling_unit_template.schema: + validate_json_against_schema(self.template, self.scheduling_unit_template.schema) + + super().save(force_insert, force_update, using, update_fields) + + class SchedulingUnitTemplate(Template): - class Meta: - # TODO: move up to the abstract base class and replace with django 3.0 UniqueConstraint(... name='%*class)s_unique_name_version) - constraints = [UniqueConstraint(fields=['name', 'version'], name='SchedulingUnitTemplate_unique_name_version')] + pass class DefaultSchedulingUnitTemplate(BasicCommon): @@ -268,10 +289,8 @@ class DefaultSchedulingUnitTemplate(BasicCommon): class TaskTemplate(Template): validation_code_js = CharField(max_length=128, blank=True, default="", help_text='JavaScript code for additional (complex) validation.') + type = ForeignKey('TaskType', null=False, on_delete=PROTECT) - class Meta: - # TODO: move up to the abstract base class and replace with django 3.0 UniqueConstraint(... name='%*class)s_unique_name_version) - constraints = [UniqueConstraint(fields=['name', 'version'], name='TaskTemplate_unique_name_version')] class DefaultTaskTemplate(BasicCommon): name = CharField(max_length=128, unique=True) @@ -279,10 +298,7 @@ class DefaultTaskTemplate(BasicCommon): class TaskRelationSelectionTemplate(Template): - class Meta: - # TODO: move up to the abstract base class and replace with django 3.0 UniqueConstraint(... name='%*class)s_unique_name_version) - constraints = [UniqueConstraint(fields=['name', 'version'], name='TaskRelationSelectionTemplate_unique_name_version')] - + pass class DefaultTaskRelationSelectionTemplate(BasicCommon): name = CharField(max_length=128, unique=True) @@ -387,10 +403,16 @@ class SchedulingUnitDraft(NamedCommon): copy_reason = ForeignKey('CopyReason', null=True, on_delete=PROTECT, help_text='Reason why source was copied (NULLable).') generator_instance_doc = JSONField(null=True, help_text='Parameter value that generated this run draft (NULLable).') scheduling_set = ForeignKey('SchedulingSet', related_name='scheduling_unit_drafts', on_delete=CASCADE, help_text='Set to which this scheduling unit draft belongs.') - requirements_template = ForeignKey('SchedulingUnitTemplate', on_delete=CASCADE, help_text='Schema used for requirements_doc.') # todo: 'schema'? + requirements_template = ForeignKey('SchedulingUnitTemplate', on_delete=CASCADE, help_text='Schema used for requirements_doc.') + observation_strategy_template = ForeignKey('SchedulingUnitObservingStrategyTemplate', on_delete=PROTECT, null=True, help_text='Observation Strategy Template used to create the requirements_doc.') def save(self, force_insert=False, force_update=False, using=None, update_fields=None): if self.requirements_doc is not None and self.requirements_template_id and self.requirements_template.schema is not None: + # If this scheduling unit was created from an observation_strategy_template, + # then make sure that the observation_strategy_template validates against this unit's requirements_template.schema + if self.observation_strategy_template_id and self.observation_strategy_template.template: + validate_json_against_schema(self.observation_strategy_template.template, self.requirements_template.schema) + self.requirements_doc['$schema'] = self.requirements_template.schema['$id'] add_defaults_to_json_object_for_schema(self.requirements_doc, self.requirements_template.schema) validate_json_against_schema(self.requirements_doc, self.requirements_template.schema) @@ -706,7 +728,7 @@ class TaskBlueprint(NamedCommon): class TaskRelationDraft(BasicCommon): selection_doc = JSONField(help_text='Filter for selecting dataproducts from the output role.') - selection_template = ForeignKey('TaskRelationSelectionTemplate', on_delete=CASCADE, help_text='Schema used for selection_doc.') # todo: 'schema'? + selection_template = ForeignKey('TaskRelationSelectionTemplate', on_delete=CASCADE, help_text='Schema used for selection_doc.') dataformat = ForeignKey('Dataformat', null=False, on_delete=PROTECT, help_text='Selected data format to use. One of (MS, HDF5).') # caveat: it might look like producer has an incorrect related_name='consumed_by'. But it really is correct, denends on the way you look at it diff --git a/SAS/TMSS/src/tmss/tmssapp/populate.py b/SAS/TMSS/src/tmss/tmssapp/populate.py index 6849411637b5ce8870239dad3839dd665a190682..3c02bb450f543985214cf0bd3ab818438e18502f 100644 --- a/SAS/TMSS/src/tmss/tmssapp/populate.py +++ b/SAS/TMSS/src/tmss/tmssapp/populate.py @@ -36,89 +36,12 @@ def populate_choices(apps, schema_editor): ''' for choice_class in [Role, Datatype, Dataformat, CopyReason, SubtaskState, SubtaskType, StationType, Algorithm, ScheduleMethod, SchedulingRelationPlacement, - Flag, ProjectCategory, PeriodCategory, Quantity]: + Flag, ProjectCategory, PeriodCategory, Quantity, TaskType]: choice_class.objects.bulk_create([choice_class(value=x.value) for x in choice_class.Choices]) def populate_settings(apps, schema_editor): Setting.objects.create(name=Flag.objects.get(value='allow_scheduling_observations'), value=True) - -def populate_lofar_json_schemas(apps, schema_editor): - models.CommonSchemaTemplate.objects.create(name="base", - description='email address schema', - version='1', - schema={"$id": "http://127.0.0.1:8000/api/schemas/common/base/1/#", - "$schema": "http://json-schema.org/draft-06/schema#", - "definitions": { - "email" : { - "type": "string", - "format": "email", - "pattern": "@example\\.com$", - "default": "" } - } } ) - - models.SubtaskTemplate.objects.create(name="user_with_ref", - description='user schema', - version='1', - type=SubtaskType.objects.get(value=SubtaskType.Choices.OTHER.value), - schema={"$id": "http://127.0.0.1:8000/api/schemas/subtask_template/user_with_ref/1/#", - "$schema": "http://json-schema.org/draft-06/schema#", - "type": "object", - "default": {}, - "properties": { - "name": { - "type": "string", - "minLength": 2, - "default": "" - }, - "email": { - "$ref": "http://127.0.0.1:8000/api/schemas/common/base/1/#/definitions/email" - } - }, - "required": ["name", "email"], - "additionalProperties": False - } ) - - models.SubtaskTemplate.objects.create(name="user_without_ref", - description='user schema', - version='1', - type=SubtaskType.objects.get(value=SubtaskType.Choices.OTHER.value), - schema={"$id": "http://127.0.0.1:8000/api/schemas/subtask_template/user_without_ref/1/#", - "$schema": "http://json-schema.org/draft-06/schema#", - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2 - }, - "email": { - "type": "string", - "format": "email", - "pattern": "@example\\.com$" - } - }, - "required": ["name", "email"], - "additionalProperties": True - } ) - - # _populate_base_schema() - # _populate_scheduling_unit_schema() - # # populate task schema's - # _populate_preprocessing_schema() - # _populate_observation_with_stations_schema() - # _populate_calibrator_addon_schema() - # - # _populate_dataproduct_specifications_templates() - # _populate_taskrelation_selection_templates() - # _populate_dataproduct_feedback_templates() - # _populate_obscontrol_schema() - # _populate_pipelinecontrol_schema() - # _populate_connectors() - # - # _populate_qa_files_subtask_template() - # _populate_qa_plots_subtask_template() - - def populate_test_data(): """ Create a Test Schedule Set to be able to refer to when Scheduling Unit Draft is created from a @@ -132,127 +55,51 @@ def populate_test_data(): from lofar.sas.tmss.tmss.exceptions import TMSSException from lofar.sas.tmss.test.tmss_test_data_django_models import SchedulingSet_test_data, SchedulingUnitDraft_test_data from lofar.sas.tmss.tmss.tmssapp.tasks import create_task_blueprints_and_subtasks_from_scheduling_unit_draft, create_task_blueprints_and_subtasks_and_schedule_subtasks_from_scheduling_unit_draft + from lofar.sas.tmss.tmss.tmssapp.subtasks import schedule_subtask # create a Test Scheduling Set UC1 under project TMSS-Commissioning tmss_project = models.Project.objects.get(name="TMSS-Commissioning") for set_nr in range(3): scheduling_set_data = SchedulingSet_test_data(name="Test Scheduling Set UC1 example %s" % (set_nr,), project=tmss_project) scheduling_set = models.SchedulingSet.objects.create(**scheduling_set_data) - scheduling_set.tags = ["TEST"] + scheduling_set.tags = ["TEST", "UC1"] scheduling_set.save() - for unit_nr in range(3): - # construct a scheduling_unit_doc, i.e.: a specification of interrelated tasks which conforms the scheduling unit schema - # by default, this scheduling_unit_doc holds no tasks, so lets setup the UC1 sequence of tasks here, and add it to the scheduling_unit_doc - scheduling_unit_template = models.SchedulingUnitTemplate.objects.get(name="scheduling unit schema") - scheduling_unit_doc = get_default_json_object_for_schema(scheduling_unit_template.schema) - - # create and add a calibrator task spec - scheduling_unit_doc['tasks'].append({"name": "Calibrator Observation 1", - "description": "Calibrator Observation for UC1 HBA scheduling unit", - "specifications_doc": get_default_json_object_for_schema(models.TaskTemplate.objects.get(name="calibrator schema").schema), - "specifications_template": "calibrator schema"}) - - # create and add a calibrator preprocessing spec - scheduling_unit_doc['tasks'].append({"name": "Pipeline Calibrator1", - "description": "Preprocessing Pipeline for Calibrator Observation 1", - "specifications_doc": get_default_json_object_for_schema(models.TaskTemplate.objects.get(name="preprocessing schema").schema), - "specifications_template": "preprocessing schema"}) - - # create and add a target obs spec - scheduling_unit_doc['tasks'].append({"name": "Target Observation", - "description": "Target Observation for UC1 HBA scheduling unit", - "specifications_doc": get_default_json_object_for_schema(models.TaskTemplate.objects.get(name="observation schema").schema), - "specifications_template": "observation schema"}) - - # create and add a target pipeline spec for sap0 - scheduling_unit_doc['tasks'].append({"name": "Preprocessing Pipeline SAP0", - "description": "Preprocessing Pipeline for Target Observation SAP0", - "specifications_doc": get_default_json_object_for_schema(models.TaskTemplate.objects.get(name="preprocessing schema").schema), - "specifications_template": "preprocessing schema"}) - - # create and add a target pipeline spec for sap1 - scheduling_unit_doc['tasks'].append({"name": "Preprocessing Pipeline SAP1", - "description": "Preprocessing Pipeline for Target Observation SAP1", - "specifications_doc": get_default_json_object_for_schema(models.TaskTemplate.objects.get(name="preprocessing schema").schema), - "specifications_template": "preprocessing schema"}) - - # create and add a calibrator task spec - scheduling_unit_doc['tasks'].append({"name": "Calibrator Observation 2", - "description": "Calibrator Observation for UC1 HBA scheduling unit", - "specifications_doc": get_default_json_object_for_schema(models.TaskTemplate.objects.get(name="calibrator schema").schema), - "specifications_template": "calibrator schema"}) - - # create and add a calibrator preprocessing spec - scheduling_unit_doc['tasks'].append({"name": "Pipeline Calibrator2", - "description": "Preprocessing Pipeline for Calibrator Observation 2", - "specifications_doc": get_default_json_object_for_schema(models.TaskTemplate.objects.get(name="preprocessing schema").schema), - "specifications_template": "preprocessing schema"}) - - # ----- end of tasks - - # setup task_scheduling_relations between Target and Calibrator observations - scheduling_unit_doc['task_scheduling_relations'].append({"first": "Calibrator Observation 1", - "second": "Target Observation", - "placement": "before", - "time_offset": 60 }) - scheduling_unit_doc['task_scheduling_relations'].append({"first": "Calibrator Observation 2", - "second": "Target Observation", - "placement": "after", - "time_offset": 60 }) - - # ----- end of task_scheduling_relations - - #TODO: check various input/output datatypes and roles for each task_relation - scheduling_unit_doc['task_relations'].append({"producer": "Calibrator Observation 1", - "consumer": "Pipeline Calibrator1", - "tags": [], - "input": { "role": "input", "datatype": "visibilities" }, - "output": { "role": "correlator", "datatype": "visibilities" }, - "dataformat": "MeasurementSet", - "selection_doc": {}, - "selection_template": "All" }) - - scheduling_unit_doc['task_relations'].append({"producer": "Calibrator Observation 2", - "consumer": "Pipeline Calibrator2", - "tags": [], - "input": { "role": "input", "datatype": "visibilities" }, - "output": { "role": "correlator", "datatype": "visibilities" }, - "dataformat": "MeasurementSet", - "selection_doc": {}, - "selection_template": "All" }) - - scheduling_unit_doc['task_relations'].append({"producer": "Target Observation", - "consumer": "Preprocessing Pipeline SAP0", - "tags": [], - "input": { "role": "input", "datatype": "visibilities" }, - "output": { "role": "correlator", "datatype": "visibilities" }, - "dataformat": "MeasurementSet", - "selection_doc": {"sap": [0]}, - "selection_template": "SAP" }) - - scheduling_unit_doc['task_relations'].append({"producer": "Target Observation", - "consumer": "Preprocessing Pipeline SAP1", - "tags": [], - "input": { "role": "input", "datatype": "visibilities" }, - "output": { "role": "correlator", "datatype": "visibilities" }, - "dataformat": "MeasurementSet", - "selection_doc": {"sap": [1]}, - "selection_template": "SAP" }) - - # finally... add the scheduling_unit_doc to a new SchedulingUnitDraft instance, and were ready to use it! - scheduling_unit_data = SchedulingUnitDraft_test_data(name="Test Scheduling Unit UC1 example %s.%s" % (set_nr, unit_nr), scheduling_set=scheduling_set, - template=scheduling_unit_template, requirements_doc=scheduling_unit_doc) - scheduling_unit_draft = models.SchedulingUnitDraft.objects.create(**scheduling_unit_data) + logger.info('created test scheduling_set: %s', scheduling_set.name) + + for unit_nr in range(2): + strategy_template = models.SchedulingUnitObservingStrategyTemplate.objects.get(name="UC1 observation strategy template") + + + # the 'template' in the strategy_template is a predefined json-data blob which validates against the given scheduling_unit_template + # a user might 'upload' a partial json-data blob, so add all the known defaults + scheduling_unit_spec = add_defaults_to_json_object_for_schema(strategy_template.template, strategy_template.scheduling_unit_template.schema) + + # add the scheduling_unit_doc to a new SchedulingUnitDraft instance, and were ready to use it! + scheduling_unit_draft = models.SchedulingUnitDraft.objects.create(name="UC1 test scheduling unit %s.%s" % (set_nr+1, unit_nr+1), + scheduling_set=scheduling_set, + requirements_template=strategy_template.scheduling_unit_template, + requirements_doc=scheduling_unit_spec, + observation_strategy_template=strategy_template) + scheduling_unit_draft.tags = ["TEST", "UC1"] + scheduling_unit_draft.save() + + logger.info('created test scheduling_unit_draft: %s', scheduling_unit_draft.name) try: if set_nr==0 and unit_nr==0: - create_task_blueprints_and_subtasks_and_schedule_subtasks_from_scheduling_unit_draft(scheduling_unit_draft) + scheduling_unit_blueprint = create_task_blueprints_and_subtasks_from_scheduling_unit_draft(scheduling_unit_draft) + scheduled_subtasks = models.Subtask.objects.filter(task_blueprint__scheduling_unit_blueprint=scheduling_unit_blueprint, task_blueprint__name='Calibrator Observation 1', specifications_template__type='observation').all() + for subtask in scheduled_subtasks: + schedule_subtask(subtask) + for state in [SubtaskState.Choices.QUEUEING, SubtaskState.Choices.QUEUED, SubtaskState.Choices.STARTING, SubtaskState.Choices.STARTED, SubtaskState.Choices.FINISHING, SubtaskState.Choices.FINISHED]: + subtask.state = SubtaskState.objects.get(value=state.value) + subtask.save() else: create_task_blueprints_and_subtasks_from_scheduling_unit_draft(scheduling_unit_draft) - except TMSSException as e: - logger.error(e) + except TMSSException as e: + logger.exception(e) except ImportError: pass @@ -314,192 +161,15 @@ def populate_misc(apps, schema_editor): fs = Filesystem.objects.create(name="LustreFS", cluster=cluster, capacity=3.6e15) -def _populate_scheduling_unit_schema(): - with open(os.path.join(working_dir, "schemas/scheduling-unit.json")) as json_file: - json_data = json.loads(json_file.read()) - - scheduling_unit_template_data = {"name": "scheduling unit schema", - "description": 'Schema for scheduling unit', - "version": '0.1', - "tags": ["UC1"], - "schema": json_data} - SchedulingUnitTemplate.objects.create(**scheduling_unit_template_data) - -def _populate_base_schema(): - with open(os.path.join(working_dir, "schemas/base.json")) as json_file: - json_data = json.loads(json_file.read()) - - models.CommonSchemaTemplate.objects.create(name="base", - description='base schema with common definitions', - version='0.1', - schema=json_data) - - -def _populate_observation_with_stations_schema(): - with open(os.path.join(working_dir, "schemas/task-observation-with-stations.json")) as json_file: - json_data = json.loads(json_file.read()) - task_template_data = {"name": "observation schema", - "description": 'schema for observations', - "version": '0.1', - "tags": [], - "schema": json_data} - TaskTemplate.objects.create(**task_template_data) - - -def _populate_calibrator_addon_schema(): - with open(os.path.join(working_dir, "schemas/task-calibrator-addon.json")) as json_file: - json_data = json.loads(json_file.read()) - task_template_data = {"name": "calibrator schema", - "description": 'addon schema for calibrator observations', - "version": '0.1', - "tags": [], - "schema": json_data} - TaskTemplate.objects.create(**task_template_data) - - -def _populate_obscontrol_schema(): - with open(os.path.join(working_dir, "schemas/subtask-observation-control.json")) as json_file: - json_data = json.loads(json_file.read()) - subtask_template_data = {"type": SubtaskType.objects.get(value='observation'), - "name": "observationcontrol schema", - "description": 'observationcontrol schema for observation subtask', - "version": '0.1', - "realtime": True, - "queue": False, - "tags": [], - "schema": json_data} - SubtaskTemplate.objects.create(**subtask_template_data) - - -def _populate_stations_schema(): - with open(os.path.join(working_dir, "schemas/task-stations.json")) as json_file: - json_data = json.loads(json_file.read()) - task_template_data = {"name": "stations schema", - "description": 'Generic station settings and selection', - "version": '0.1', - "tags": [], - "schema": json_data} - TaskTemplate.objects.create(**task_template_data) - - -def _populate_taskrelation_selection_templates(): - # All - with open(os.path.join(working_dir, "schemas/empty-schema.json")) as json_file: - json_data = json.loads(json_file.read()) - data = {"name": "All", - "description": 'Select all, apply no filtering.', - "version": '1', - "schema": json_data} - TaskRelationSelectionTemplate.objects.create(**data) - - # SAP - with open(os.path.join(working_dir, "schemas/task-relation-sap.json")) as json_file: - json_data = json.loads(json_file.read()) - data = {"name": "SAP", - "description": 'Select by SAP.', - "version": '1', - "tags": [], - "schema": json_data} - TaskRelationSelectionTemplate.objects.create(**data) - - -def _populate_dataproduct_specifications_templates(): - # Note: to some extend, this reflects the TaskRelationSelectionTemplates. That is expected since they define - # the filters that operate on the DataproductSpecificationTemplates defined here. However, filters probably - # will only use a subset of dataproduct specs, but could allow selecting several values of which only one - # can be met by a single dataproduct. - with open(os.path.join(working_dir, "schemas/empty-schema.json")) as json_file: - json_data = json.loads(json_file.read()) - template_data = {"name": "Empty", - "description": 'Empty DataproductSpecificationsTemplate with an empty schema', - "version": '1', - "tags": [], - "schema": json_data} - DataproductSpecificationsTemplate.objects.create(**template_data) - - # SAP - with open(os.path.join(working_dir, "schemas/task-relation-sap.json")) as json_file: - json_data = json.loads(json_file.read()) - template_data = {"name": "SAP", - "description": 'Select by SAP.', - "version": '1', - "schema": json_data} - DataproductSpecificationsTemplate.objects.create(**template_data) - - -def _populate_dataproduct_feedback_templates(): - with open(os.path.join(working_dir, "schemas/empty-schema.json")) as json_file: - json_data = json.loads(json_file.read()) - template_data = {"name": "Empty", - "description": 'Empty DataproductFeedbackTemplate with an empty schema', - "version": '1', - "tags": [], - "schema": json_data} - DataproductFeedbackTemplate.objects.create(**template_data) - - -def _populate_qa_files_subtask_template(): - with open(os.path.join(working_dir, "schemas/subtask-qa-files.json")) as json_file: - json_data = json.loads(json_file.read()) - subtask_template_data = {"type": SubtaskType.objects.get(value=SubtaskType.Choices.QA_FILES.value), - "name": "QA file conversion", - "description": 'QA file conversion subtask template', - "version": '0.1', - "realtime": False, - "queue": True, - "tags": [], - "schema": json_data} - SubtaskTemplate.objects.create(**subtask_template_data) - - -def _populate_qa_plots_subtask_template(): - with open(os.path.join(working_dir, "schemas/subtask-qa-plots.json")) as json_file: - json_data = json.loads(json_file.read()) - subtask_template_data = {"type": SubtaskType.objects.get(value=SubtaskType.Choices.QA_PLOTS.value), - "name": "QA plots", - "description": 'QA plots subtask template', - "version": '0.1', - "realtime": False, - "queue": True, - "tags": [], - "schema": json_data} - SubtaskTemplate.objects.create(**subtask_template_data) - - -def _populate_preprocessing_schema(): - with open(os.path.join(working_dir, "schemas/task-preprocessing.json")) as json_file: - json_data = json.loads(json_file.read()) - task_template_data = {"name": "preprocessing schema", - "description": 'preprocessing settings', - "version": '0.1', - "tags": [], - "schema": json_data} - TaskTemplate.objects.create(**task_template_data) - - -def _populate_pipelinecontrol_schema(): - with open(os.path.join(working_dir, "schemas/subtask-pipeline-control.json")) as json_file: - json_data = json.loads(json_file.read()) - subtask_template_data = {"type": SubtaskType.objects.get(value='pipeline'), - "name": "pipelinecontrol schema", - "description": 'pipelinecontrol schema for pipeline subtask', - "version": '0.1', - "realtime": True, - "queue": False, - "tags": [], - "schema": json_data} - SubtaskTemplate.objects.create(**subtask_template_data) - - -def _populate_connectors(): +def populate_connectors(): # the TaskConnectorType's define how the Task[Draft/Blueprint] *can* be connected. # TODO Need overview which we do actually need TaskConnectorType.objects.create(role=Role.objects.get(value=Role.Choices.INPUT.value), datatype=Datatype.objects.get(value=Datatype.Choices.VISIBILITIES.value), - output_of=TaskTemplate.objects.get(name='observation schema'), - input_of=TaskTemplate.objects.get(name='preprocessing schema')) + output_of=TaskTemplate.objects.get(name='calibrator observation'), + input_of=TaskTemplate.objects.get(name='preprocessing pipeline')) TaskConnectorType.objects.create(role=Role.objects.get(value=Role.Choices.CORRELATOR.value), datatype=Datatype.objects.get(value=Datatype.Choices.VISIBILITIES.value), - output_of=TaskTemplate.objects.get(name='calibrator schema'), - input_of=TaskTemplate.objects.get(name='preprocessing schema')) \ No newline at end of file + output_of=TaskTemplate.objects.get(name='calibrator observation'), + input_of=TaskTemplate.objects.get(name='preprocessing pipeline')) \ No newline at end of file diff --git a/SAS/TMSS/src/tmss/tmssapp/schemas/UC1-scheduling-unit-observation-strategy.json b/SAS/TMSS/src/tmss/tmssapp/schemas/UC1-scheduling-unit-observation-strategy.json new file mode 100644 index 0000000000000000000000000000000000000000..760f43b19e2d240272508892b4248cf515187768 --- /dev/null +++ b/SAS/TMSS/src/tmss/tmssapp/schemas/UC1-scheduling-unit-observation-strategy.json @@ -0,0 +1,299 @@ +{ + "tasks": { + "Calibrator Observation 1": { + "description": "Calibrator Observation for UC1 HBA scheduling unit", + "tags": [], + "specifications_doc": { + "duration": 600, + "autoselect": false, + "pointing": { + "direction_type": "J2000", + "angle1": 0, + "angle2": 0, + "angle3": 0 + } + }, + "specifications_template": "calibrator schema" + }, + "Pipeline 1": { + "description": "Preprocessing Pipeline for Calibrator Observation 1", + "tags": [], + "specifications_doc": { + "flag": { + "rfi_strategy": "auto", + "outerchannels": true, + "autocorrelations": true + }, + "demix": { + "sources": {}, + "time_steps": 10, + "ignore_target": false, + "frequency_steps": 64 + }, + "average": { + "time_steps": 1, + "frequency_steps": 4 + }, + "storagemanager": "dysco" + }, + "specifications_template": "preprocessing schema" + }, + "Target Observation": { + "description": "Target Observation for UC1 HBA scheduling unit", + "tags": [], + "specifications_doc": { + "QA": { + "plots": { + "enabled": true, + "autocorrelation": true, + "crosscorrelation": true + }, + "file_conversion": { + "enabled": true, + "nr_of_subbands": -1, + "nr_of_timestamps": 256 + } + }, + "duration": 28800, + "correlator": { + "storage_cluster": "CEP4", + "integration_time": 1, + "channels_per_subband": 64 + }, + "antenna_set": "HBA_DUAL_INNER", + "filter": "HBA_110_190", + "stations": [ + { + "group": "ALL", + "min_stations": 1 + } + ], + "tile_beam": { + "direction_type": "J2000", + "angle1": 42, + "angle2": 42, + "angle3": 42 + }, + "SAPs": [ + { + "name": "target0", + "digital_pointing": { + "direction_type": "J2000", + "angle1": 24, + "angle2": 24, + "angle3": 24 + }, + "subbands": [ + 349, + 372 + ] + }, + { + "name": "target1", + "digital_pointing": { + "direction_type": "J2000", + "angle1": 24, + "angle2": 24, + "angle3": 24 + }, + "subbands": [ + 349, + 372 + ] + } + ] + }, + "specifications_template": "observation schema" + }, + "Pipeline SAP0": { + "description": "Preprocessing Pipeline for Target Observation SAP0", + "tags": [], + "specifications_doc": { + "flag": { + "rfi_strategy": "auto", + "outerchannels": true, + "autocorrelations": true + }, + "demix": { + "sources": {}, + "time_steps": 10, + "ignore_target": false, + "frequency_steps": 64 + }, + "average": { + "time_steps": 1, + "frequency_steps": 4 + }, + "storagemanager": "dysco" + }, + "specifications_template": "preprocessing schema" + }, + "Pipeline SAP1": { + "description": "Preprocessing Pipeline for Target Observation SAP1", + "tags": [], + "specifications_doc": { + "flag": { + "rfi_strategy": "auto", + "outerchannels": true, + "autocorrelations": true + }, + "demix": { + "sources": {}, + "time_steps": 10, + "ignore_target": false, + "frequency_steps": 64 + }, + "average": { + "time_steps": 1, + "frequency_steps": 4 + }, + "storagemanager": "dysco" + }, + "specifications_template": "preprocessing schema" + }, + "Calibrator Observation 2": { + "description": "Calibrator Observation for UC1 HBA scheduling unit", + "tags": [], + "specifications_doc": { + "duration": 600, + "autoselect": false, + "pointing": { + "direction_type": "J2000", + "angle1": 0, + "angle2": 0, + "angle3": 0 + } + }, + "specifications_template": "calibrator schema" + }, + "Pipeline 2": { + "description": "Preprocessing Pipeline for Calibrator Observation 2", + "tags": [], + "specifications_doc": { + "flag": { + "rfi_strategy": "auto", + "outerchannels": true, + "autocorrelations": true + }, + "demix": { + "sources": {}, + "time_steps": 10, + "ignore_target": false, + "frequency_steps": 64 + }, + "average": { + "time_steps": 1, + "frequency_steps": 4 + }, + "storagemanager": "dysco" + }, + "specifications_template": "preprocessing schema" + } + }, + "task_relations": [ + { + "producer": "Calibrator Observation 1", + "consumer": "Pipeline 1", + "tags": [], + "input": { + "role": "input", + "datatype": "visibilities" + }, + "output": { + "role": "correlator", + "datatype": "visibilities" + }, + "dataformat": "MeasurementSet", + "selection_doc": {}, + "selection_template": "All" + }, + { + "producer": "Calibrator Observation 2", + "consumer": "Pipeline 2", + "tags": [], + "input": { + "role": "input", + "datatype": "visibilities" + }, + "output": { + "role": "correlator", + "datatype": "visibilities" + }, + "dataformat": "MeasurementSet", + "selection_doc": {}, + "selection_template": "All" + }, + { + "producer": "Target Observation", + "consumer": "Pipeline SAP0", + "tags": [], + "input": { + "role": "input", + "datatype": "visibilities" + }, + "output": { + "role": "correlator", + "datatype": "visibilities" + }, + "dataformat": "MeasurementSet", + "selection_doc": { + "sap": [ + 0 + ] + }, + "selection_template": "SAP" + }, + { + "producer": "Target Observation", + "consumer": "Pipeline SAP1", + "tags": [], + "input": { + "role": "input", + "datatype": "visibilities" + }, + "output": { + "role": "correlator", + "datatype": "visibilities" + }, + "dataformat": "MeasurementSet", + "selection_doc": { + "sap": [ + 1 + ] + }, + "selection_template": "SAP" + } + ], + "task_scheduling_relations": [ + { + "first": "Calibrator Observation 1", + "second": "Target Observation", + "placement": "before", + "time_offset": 60 + }, + { + "first": "Calibrator Observation 2", + "second": "Target Observation", + "placement": "after", + "time_offset": 60 + } + ], + "parameters": [ + { + "refs": [ + "#/tasks/Target Observation/specifications_doc/SAPs/0/digital_pointing" + ], + "name": "Target Pointing 0" + },{ + "refs": [ + "#/tasks/Target Observation/specifications_doc/SAPs/1/digital_pointing" + ], + "name": "Target Pointing 1" + },{ + "refs": [ + "#/tasks/Target Observation/specifications_doc/tile_beam" + ], + "name": "Tile Beam" + } + ] +} \ No newline at end of file diff --git a/SAS/TMSS/src/tmss/tmssapp/schemas/scheduling_unit_template-scheduling_unit-1.json b/SAS/TMSS/src/tmss/tmssapp/schemas/scheduling_unit_template-scheduling_unit-1.json index d2a9d2e492ed12fc089ecfc91e751358425e091e..3e1ae1679e9eb07d5aa360c5fd65fe552b7378b2 100644 --- a/SAS/TMSS/src/tmss/tmssapp/schemas/scheduling_unit_template-scheduling_unit-1.json +++ b/SAS/TMSS/src/tmss/tmssapp/schemas/scheduling_unit_template-scheduling_unit-1.json @@ -7,6 +7,7 @@ "task_connector": { "type": "object", "additionalProperties": false, + "default": {}, "properties": { "role": { "type": "string", @@ -26,21 +27,15 @@ "properties": { "tasks": { "title": "Tasks", - "type": "array", - "additionalItems": false, + "type": "object", "uniqueItems": true, - "default": [], - "items": { + "default": {}, + "additionalProperties": { "type": "object", "title": "Task", "additionalProperties": false, "default": {}, "properties": { - "name": { - "type": "string", - "title": "Name (unique)", - "default": "Default Task" - }, "description": { "type": "string", "title": "Description", @@ -64,12 +59,11 @@ }, "specifications_template": { "type": "string", - "title": "Name of Template for Specifications", + "title": "URI of Template for Specifications", "default": "" } }, "required": [ - "name", "specifications_doc", "specifications_template" ] @@ -78,9 +72,9 @@ "task_relations": { "title": "Task Relations", "type": "array", + "default": [], "additionalItems": false, "uniqueItems": true, - "default": [], "items": { "type": "object", "title": "Task Relation", @@ -126,7 +120,7 @@ }, "selection_template": { "type": "string", - "title": "Name of Template for Selection" + "title": "URI of Template for Selection" } }, "required": [ @@ -141,9 +135,9 @@ "task_scheduling_relations": { "title": "Task Scheduling Relations", "type": "array", + "default": [], "additionalItems": false, "uniqueItems": true, - "default": [], "items": { "type": "object", "title": "Task Scheduling Relation", @@ -181,7 +175,47 @@ "placement" ] } - } - }, + }, + "parameters": { + "title": "Parameters", + "description": "Schema for instance-specific parameters", + "type": "array", + "additionalItems": false, + "uniqueItems": true, + "items": { + "type": "object", + "title": "Parameter", + "additionalProperties": false, + "properties": { + "refs": { + "title": "References", + "description": "JSON Pointers to locations within this schema that will hold this value", + "type": "array", + "additionalItems": false, + "uniqueItems": true, + "minItems": 1, + "items": { + "type": "string", + "title": "Reference", + "default": "#", + "description": "JSON Pointer to parameter location within this schema" + } + }, + "name": { + "type": "string", + "title": "Name", + "description": "Name override" + }, + "description": { + "type": "string", + "title": "Description", + "description": "Description override" + } + }, + "required": [ + "refs" + ] + }, "required": [] -} \ No newline at end of file + }} +} diff --git a/SAS/TMSS/src/tmss/tmssapp/schemas/templates.json b/SAS/TMSS/src/tmss/tmssapp/schemas/templates.json index 4e16a362927aa771f86b8d296ad0bfc44a451adc..68e03afdef399b41fdebf0089d9f879f0ab3a393 100644 --- a/SAS/TMSS/src/tmss/tmssapp/schemas/templates.json +++ b/SAS/TMSS/src/tmss/tmssapp/schemas/templates.json @@ -23,6 +23,7 @@ "file_name": "task_template-calibrator_observation-1.json", "template": "task_template", "name": "calibrator observation", + "type": "observation", "version": 1, "validation_code_js": "", "description": "This schema defines the parameters for a calibrator observation." @@ -31,6 +32,7 @@ "file_name": "task_template-target_observation-1.json", "template": "task_template", "name": "target observation", + "type": "observation", "version": 1, "validation_code_js": "", "description": "This schema defines the parameters for a target observation." @@ -39,6 +41,7 @@ "file_name": "task_template-preprocessing_pipeline-1.json", "template": "task_template", "name": "preprocessing pipeline", + "type": "pipeline", "version": 1, "validation_code_js": "", "description": "This schema defines the parameters for a preprocessing pipeline." @@ -82,5 +85,14 @@ "type": "qa_files", "realtime": true, "queue": false + }, + { + "file_name": "UC1-scheduling-unit-observation-strategy.json", + "template": "scheduling_unit_observing_strategy_template", + "scheduling_unit_template_name": "scheduling unit", + "scheduling_unit_template_version": "1", + "name": "UC1 CTC+pipelines", + "description": "This observation strategy template defines a Calibrator-Target-Calibrator observation chain, plus a preprocessing pipeline for each.", + "version": 1 } ] \ No newline at end of file diff --git a/SAS/TMSS/src/tmss/tmssapp/serializers/specification.py b/SAS/TMSS/src/tmss/tmssapp/serializers/specification.py index 04d15e74cd67079ad1d1adc2a5e43fa3e39093a6..05e3e53ac0d18a0761c95d11bc03f9362c763f52 100644 --- a/SAS/TMSS/src/tmss/tmssapp/serializers/specification.py +++ b/SAS/TMSS/src/tmss/tmssapp/serializers/specification.py @@ -115,6 +115,14 @@ class DefaultGeneratorTemplateSerializer(RelationalHyperlinkedModelSerializer): fields = '__all__' +class SchedulingUnitObservingStrategyTemplateSerializer(RelationalHyperlinkedModelSerializer): + template = JSONEditorField(schema_source="scheduling_unit_template.schema") + + class Meta: + model = models.SchedulingUnitObservingStrategyTemplate + fields = '__all__' + + class SchedulingUnitTemplateSerializer(AbstractTemplateSerializer): class Meta: model = models.SchedulingUnitTemplate @@ -337,5 +345,8 @@ class TaskSchedulingRelationBlueprintSerializer(RelationalHyperlinkedModelSerial fields = '__all__' - +class TaskTypeSerializer(RelationalHyperlinkedModelSerializer): + class Meta: + model = models.TaskType + fields = '__all__' diff --git a/SAS/TMSS/src/tmss/tmssapp/subtasks.py b/SAS/TMSS/src/tmss/tmssapp/subtasks.py index b5e541a53fdcc512c1433472a99236f6f91e0a52..7466db2e440c3d8843d95bc316983b3a36e0bbca 100644 --- a/SAS/TMSS/src/tmss/tmssapp/subtasks.py +++ b/SAS/TMSS/src/tmss/tmssapp/subtasks.py @@ -18,6 +18,7 @@ from lofar.sas.tmss.tmss.tmssapp.models import * from lofar.sas.resourceassignment.resourceassigner.rarpc import RARPC from lofar.sas.resourceassignment.resourceassignmentservice.rpc import RADBRPC from lofar.sas.tmss.tmss.tmssapp.adapters.parset import convert_to_parset_dict +from lofar.sas.resourceassignment.taskprescheduler.cobaltblocksize import CorrelatorSettings, BlockConstraints, BlockSize # ==== various create* methods to convert/create a TaskBlueprint into one or more Subtasks ==== @@ -31,6 +32,17 @@ def create_subtasks_from_task_blueprint(task_blueprint: TaskBlueprint) -> [Subta '''Generic create-method for subtasks. Calls the appropriate create method based on the task_blueprint specifications_template name.''' check_prerequities_for_subtask_creation(task_blueprint) + subtasks = [] + + # recurse over predecessors, so that all dependencies in predecessor subtasks can be met. + for predecessor in task_blueprint.predecessors.all(): + subtasks.extend(create_subtasks_from_task_blueprint(predecessor)) + + if task_blueprint.subtasks.count() > 0: + logger.debug("skipping creation of subtasks because they already exist for task_blueprint id=%s, name='%s', task_template_name='%s'", + task_blueprint.id, task_blueprint.name, task_blueprint.specifications_template.name) + return subtasks + # fixed mapping from template name to generator functions which create the list of subtask(s) for this task_blueprint generators_mapping = {'observation schema': [create_observation_control_subtask_from_task_blueprint, create_qafile_subtask_from_task_blueprint, @@ -41,7 +53,6 @@ def create_subtasks_from_task_blueprint(task_blueprint: TaskBlueprint) -> [Subta template_name = task_blueprint.specifications_template.name if template_name in generators_mapping: generators = generators_mapping[template_name] - subtasks = [] for generator in generators: try: subtask = generator(task_blueprint) @@ -51,6 +62,7 @@ def create_subtasks_from_task_blueprint(task_blueprint: TaskBlueprint) -> [Subta logger.error(e) return subtasks else: + logger.error('Cannot create subtasks for task id=%s because no generator exists for its schema name=%s' % (task_blueprint.pk, template_name)) raise SubtaskCreationException('Cannot create subtasks for task id=%s because no generator exists for its schema name=%s' % (task_blueprint.pk, template_name)) @@ -79,26 +91,39 @@ def create_observation_subtask_specifications_from_observation_task_blueprint(ta # The rest of it's specs are 'shared' with the target observation. # So... copy the calibrator specs first, then loop over the shared target/calibrator specs... if 'calibrator' in task_blueprint.specifications_template.name.lower(): - subtask_spec['analog_pointing'] = {"direction_type": task_spec["pointing"]["direction_type"], - "angle1": task_spec["pointing"]["angle1"], - "angle2": task_spec["pointing"]["angle2"]} - # for the calibrator, the digital pointing is equal to the analog pointing - subtask_spec['digital_pointings'] = [ {'name': 'calibrator', # there is no name for the calibrator pointing in the task spec - 'subbands': list(range(0,488)), # there are no subbands for the calibrator pointing in the task spec - 'pointing': subtask_spec['analog_pointing'] } ] - - if task_spec.get('autoselect', False): - logger.info("auto-selecting calibrator target based on elevation of target observation...") - # what to do? overrive the pointing??? - #TODO: implement - + # Calibrator requires related Target Task Observation for some specifications target_task_blueprint = get_related_target_observation_task_blueprint(task_blueprint) if target_task_blueprint is None: raise SubtaskCreationException("Cannot create calibrator observation subtask specifications from task_blueprint id=%s with template name='%s' because no related target observation task_blueprint is found" % ( task_blueprint.id, task_blueprint.specifications_template.name)) + target_task_spec = target_task_blueprint.specifications_doc - task_spec = target_task_blueprint.specifications_doc - logger.info("Using station and correlator settings for calibrator observation task_blueprint id=%s from target observation task_blueprint id=%s", task_blueprint.id, target_task_blueprint.id) + if task_spec.get('autoselect', True): + logger.info("auto-selecting calibrator target based on elevation of target observation...") + # Get related Target Observation Task + if "tile_beam" in target_task_spec: + subtask_spec['stations']['analog_pointing'] = { + "direction_type": target_task_spec["tile_beam"]["direction_type"], + "angle1": target_task_spec["tile_beam"]["angle1"], + "angle2": target_task_spec["tile_beam"]["angle2"]} + else: + raise SubtaskCreationException("Cannot determine the pointing specification from task_blueprint " + "id=%s in auto-select mode, because the related target observation " + "task_blueprint id=%s has no tile beam pointing defined" % ( + task_blueprint.id, target_task_blueprint.id)) + else: + subtask_spec['stations']['analog_pointing'] = {"direction_type": task_spec["pointing"]["direction_type"], + "angle1": task_spec["pointing"]["angle1"], + "angle2": task_spec["pointing"]["angle2"]} + + # for the calibrator, the digital pointing is equal to the analog pointing + subtask_spec['digital_pointings'] = [ {'name': 'calibrator', # there is no name for the calibrator pointing in the task spec + 'subbands': list(range(0,488)), # there are no subbands for the calibrator pointing in the task spec + 'pointing': subtask_spec['stations']['analog_pointing'] } ] + # Use the Task Specification of the Target Observation + task_spec = target_task_spec + logger.info("Using station and correlator settings for calibrator observation task_blueprint id=%s from target observation task_blueprint id=%s", + task_blueprint.id, target_task_blueprint.id) subtask_spec["antenna_settings"] = task_spec["antenna_settings"] @@ -131,11 +156,12 @@ def create_observation_subtask_specifications_from_observation_task_blueprint(ta "angle2": task_spec["tile_beam"]["angle2"] } if "correlator" in task_spec: - subtask_spec["COBALT"]["correlator"]["channels_per_subband"] = task_spec["correlator"]["channels_per_subband"] - - # TODO: compute remaining subtask correlator settings from task_spec ? - # subtask_spec["COBALT"]["correlator"]["integration_time"] = task_spec["correlator"]["integration_time"] - # subtask_spec["COBALT"]["correlator"]["storage_cluster"] = task_spec["correlator"]["storage_cluster"] + corr = CorrelatorSettings() + corr.nrChannelsPerSubband = task_spec["correlator"]["channels_per_subband"] + corr.integrationTime = task_spec["correlator"]["integration_time"] + calculator = BlockSize(constraints=BlockConstraints(correlatorSettings=corr)) + subtask_spec["COBALT"]["correlator"]["blocks_per_integration"] = calculator.nrBlocks + subtask_spec["COBALT"]["correlator"]["integrations_per_block"] = calculator.nrSubblocks # make sure that the subtask_spec is valid conform the schema validate_json_against_schema(subtask_spec, subtask_template.schema) @@ -244,7 +270,7 @@ def create_qafile_subtask_from_observation_subtask(observation_subtask: Subtask) raise ValueError("Cannot create %s subtask for subtask id=%d because it is not DEFINED" % ( SubtaskType.Choices.QA_FILES.value, observation_subtask.pk)) - obs_task_spec = observation_subtask.task_blueprint.specifications_doc + obs_task_spec = get_observation_task_specification_with_check_for_calibrator(observation_subtask) obs_task_qafile_spec = obs_task_spec.get("QA", {}).get("file_conversion", {}) if not obs_task_qafile_spec.get("enabled", False): @@ -287,6 +313,7 @@ def create_qafile_subtask_from_observation_subtask(observation_subtask: Subtask) def create_qaplots_subtask_from_task_blueprint(task_blueprint: TaskBlueprint) -> Subtask: + qafile_subtasks = [st for st in task_blueprint.subtasks.all() if st.specifications_template.type.value == SubtaskType.Choices.QA_FILES.value] if qafile_subtasks: qafile_subtask = qafile_subtasks[0] # TODO: decide what to do when there are multiple qafile subtasks? @@ -308,7 +335,7 @@ def create_qaplots_subtask_from_qafile_subtask(qafile_subtask: Subtask) -> Subta SubtaskType.Choices.QA_PLOTS.value, qafile_subtask.pk, qafile_subtask.specifications_template.type, SubtaskType.Choices.QA_FILES.value)) - obs_task_spec = qafile_subtask.task_blueprint.specifications_doc + obs_task_spec = get_observation_task_specification_with_check_for_calibrator(qafile_subtask) obs_task_qaplots_spec = obs_task_spec.get("QA", {}).get("plots", {}) if not obs_task_qaplots_spec.get("enabled", False): @@ -349,6 +376,7 @@ def create_qaplots_subtask_from_qafile_subtask(qafile_subtask: Subtask) -> Subta # done, now return the subtask, and allow the system to wait for the predecessors to be finished before we schedule this qaplots_subtask return qaplots_subtask + def create_preprocessing_subtask_from_task_blueprint(task_blueprint: TaskBlueprint) -> Subtask: ''' Create a subtask to for the preprocessing pipeline. This method implements "Instantiate subtasks" step from the "Specification Flow" @@ -356,11 +384,12 @@ def create_preprocessing_subtask_from_task_blueprint(task_blueprint: TaskBluepri ''' # step 0: check pre-requisites check_prerequities_for_subtask_creation(task_blueprint) - # TODO: go more elegant lookup of predecessor observation task - observation_predecessor_tasks = [t for t in task_blueprint.predecessors.all() if any(st for st in t.subtasks.all() if st.specifications_template.type.value == SubtaskType.Choices.OBSERVATION.value)] + observation_predecessor_tasks = [t for t in task_blueprint.predecessors.all() if any(st for st in t.subtasks.all() + if st.specifications_template.type.value == SubtaskType.Choices.OBSERVATION.value)] if not observation_predecessor_tasks: - raise SubtaskCreationException("Cannot create a subtask for task_blueprint id=%s because it is not connected to an observation predecessor (sub)task." % task_blueprint.pk) + raise SubtaskCreationException("Cannot create a subtask for task_blueprint id=%s because it is not connected " + "to an observation predecessor (sub)task." % task_blueprint.pk) # step 1: create subtask in defining state, with filled-in subtask_template subtask_template = SubtaskTemplate.objects.get(name='pipelinecontrol schema') @@ -419,7 +448,8 @@ def schedule_subtask(subtask: Subtask) -> Subtask: if subtask.specifications_template.type.value == SubtaskType.Choices.QA_PLOTS.value: return schedule_qaplots_subtask(subtask) - raise SubtaskSchedulingException("Cannot schedule subtask id=%d because there is no schedule-method known for this subtasktype=%s." % (subtask.pk, subtask.specifications_template.type.value)) + raise SubtaskSchedulingException("Cannot schedule subtask id=%d because there is no schedule-method known for this subtasktype=%s." % + (subtask.pk, subtask.specifications_template.type.value)) except Exception as e: try: # set the subtask to state 'ERROR'... @@ -438,7 +468,8 @@ def check_prerequities_for_scheduling(subtask: Subtask) -> bool: for predecessor in subtask.predecessors.all(): if predecessor.state.value != SubtaskState.Choices.FINISHED.value: - raise SubtaskSchedulingException("Cannot schedule subtask id=%d because its predecessor id=%s in not FINISHED but state=%s" % (subtask.pk, predecessor.pk, predecessor.state.value)) + raise SubtaskSchedulingException("Cannot schedule subtask id=%d because its predecessor id=%s in not FINISHED but state=%s" + % (subtask.pk, predecessor.pk, predecessor.state.value)) # check if settings allow scheduling observations setting = Setting.objects.get(name='allow_scheduling_observations') @@ -450,7 +481,8 @@ def check_prerequities_for_scheduling(subtask: Subtask) -> bool: def _assign_resources(subtask: Subtask): if subtask.state.value != SubtaskState.Choices.SCHEDULING.value: - raise SubtaskSchedulingException("Cannot assign resources for subtask id=%d because it is not in SCHEDULING state. Current state=%s" % (subtask.pk, subtask.state.value)) + raise SubtaskSchedulingException("Cannot assign resources for subtask id=%d because it is not in SCHEDULING state. " + "Current state=%s" % (subtask.pk, subtask.state.value)) def create_ra_specification(_subtask): parset_dict = convert_to_parset_dict(_subtask) @@ -677,15 +709,18 @@ def schedule_observation_subtask(observation_subtask: Subtask): directory = "/data/%s/%s/L%s/uv" % ("projects" if isProductionEnvironment() else "test-projects", observation_subtask.task_blueprint.scheduling_unit_blueprint.draft.scheduling_set.project.name, observation_subtask.id) - for sb_nr in specifications_doc['digital_pointings'][0]['subbands']: - Dataproduct.objects.create(filename="L%d_SB%03d_uv.MS" % (observation_subtask.id, sb_nr), - directory=directory, - dataformat=Dataformat.objects.get(value="MeasurementSet"), - producer=subtask_output, - specifications_doc={"sap": [0]}, # todo: set correct value. This will be provided by the RA somehow - specifications_template=dataproduct_specifications_template, - feedback_doc="", - feedback_template=dataproduct_feedback_template) + for sap_nr, pointing in enumerate(specifications_doc['stations']['digital_pointings']): + for sb_nr in pointing['subbands']: + Dataproduct.objects.create(filename="L%d_SAP%03d_SB%03d_uv.MS" % (observation_subtask.id, sap_nr, sb_nr), + directory=directory, + dataformat=Dataformat.objects.get(value="MeasurementSet"), + producer=subtask_output, + specifications_doc={"sap": [sap_nr]}, # todo: set correct value. This will be provided by the RA somehow + specifications_template=dataproduct_specifications_template, + feedback_doc="", + feedback_template=dataproduct_feedback_template, + size=0 if sb_nr%10==0 else 1024*1024*1024*sb_nr, + expected_size=1024*1024*1024*sb_nr) # step 4: resource assigner (if possible) _assign_resources(observation_subtask) @@ -789,10 +824,6 @@ def schedule_independent_subtasks_in_task_blueprint(task_blueprint: TaskBlueprin '''Convenience method: Schedule the subtasks in the task_blueprint that are not dependend on predecessors''' subtasks = list(task_blueprint.subtasks.all()) - # sort them in 'data-flow'-order, - # because successors can depend on predecessors, so the first tbp's need to be subtask'd first. - subtasks.sort(key=cmp_to_key(lambda st_a, st_b: -1 if st_a in st_b.predecessors else 1 if st_b in st_a.predecessors else 0)) - for subtask in subtasks: if len(subtask.predecessors.all()) == len(subtask.predecessors.filter(state__value='finished').all()): schedule_subtask(subtask) @@ -886,3 +917,23 @@ def specifications_doc_meets_selection_doc(specifications_doc, selection_doc): logger.debug("specs %s matches selection %s: %s" % (specifications_doc, selection_doc, meets_criteria)) return meets_criteria + + +def get_observation_task_specification_with_check_for_calibrator(subtask): + """ + Retrieve the observation task blueprint specifications_doc from the given subtask object + If the Task is a calibrator then the related Target Observation specification should be returned + :param: subtask object + :return: task_spec: the specifications_doc of the blue print task which is allways a target observation + """ + if 'calibrator' in subtask.task_blueprint.specifications_template.name.lower(): + # Calibrator requires related Target Task Observation for some specifications + target_task_blueprint = get_related_target_observation_task_blueprint(subtask.task_blueprint) + if target_task_blueprint is None: + raise SubtaskCreationException("Cannot retrieve specifications for subtask id=%d because no related target observation is found " % subtask.pk) + task_spec = target_task_blueprint.specifications_doc + logger.info("Using specifications for calibrator observation (id=%s) from target observation task_blueprint id=%s", + subtask.task_blueprint.id, target_task_blueprint.id) + else: + task_spec = subtask.task_blueprint.specifications_doc + return task_spec diff --git a/SAS/TMSS/src/tmss/tmssapp/tasks.py b/SAS/TMSS/src/tmss/tmssapp/tasks.py index 5153d5e1c30535b940e42f8a99866b4d1f0b6207..0bc760ad2318aab6228232365d78d75f2ef3f9d3 100644 --- a/SAS/TMSS/src/tmss/tmssapp/tasks.py +++ b/SAS/TMSS/src/tmss/tmssapp/tasks.py @@ -6,6 +6,7 @@ from lofar.sas.tmss.tmss.tmssapp.models.specification import TaskBlueprint, Sche from lofar.sas.tmss.tmss.tmssapp.subtasks import create_and_schedule_subtasks_from_task_blueprint, \ create_subtasks_from_task_blueprint, schedule_independent_subtasks_in_task_blueprint from functools import cmp_to_key +from lofar.common.json_utils import add_defaults_to_json_object_for_schema import logging logger = logging.getLogger(__name__) @@ -18,7 +19,6 @@ def create_scheduling_unit_blueprint_from_scheduling_unit_draft(scheduling_unit_ """ logger.debug("create_scheduling_unit_blueprint_from_scheduling_unit_draft(scheduling_unit_draft.id=%s name='%s')", scheduling_unit_draft.pk, scheduling_unit_draft.name) - # TODO: copy/fill-in the properties from the draft to the blueprint scheduling_unit_blueprint = SchedulingUnitBlueprint.objects.create( name="%s (SchedulingUnitBlueprint)" % (scheduling_unit_draft.name,), description="%s (SchedulingUnitBlueprint)" % (scheduling_unit_draft.description or "<no description>",), @@ -38,29 +38,32 @@ def create_task_drafts_from_scheduling_unit_draft(scheduling_unit_draft: models. """ logger.debug("create_task_drafts_from_scheduling_unit_draft(scheduling_unit_draft.id=%s, name='%s') ...", scheduling_unit_draft.pk, scheduling_unit_draft.name) - if len(scheduling_unit_draft.requirements_doc.get("tasks",[])) == 0: + if len(scheduling_unit_draft.requirements_doc.get("tasks", {})) == 0: raise BlueprintCreationException("create_task_drafts_from_scheduling_unit_draft: scheduling_unit_draft.id=%s has no tasks defined in its requirements_doc" % (scheduling_unit_draft.pk,)) - for task_definition in scheduling_unit_draft.requirements_doc["tasks"]: + for task_name, task_definition in scheduling_unit_draft.requirements_doc["tasks"].items(): task_template_name = task_definition["specifications_template"] task_template = models.TaskTemplate.objects.get(name=task_template_name) - if scheduling_unit_draft.task_drafts.filter(name=task_definition["name"], specifications_template=task_template).count() > 0: - logger.debug("skipping creation of task draft because it is already in the scheduling_unit... task_name='%s', task_template_name='%s'", task_definition["name"], task_template_name) + task_specifications_doc = task_definition["specifications_doc"] + task_specifications_doc = add_defaults_to_json_object_for_schema(task_specifications_doc, task_template.schema) + + if scheduling_unit_draft.task_drafts.filter(name=task_name, specifications_template=task_template).count() > 0: + logger.debug("skipping creation of task draft because it is already in the scheduling_unit... task_name='%s', task_template_name='%s'", task_name, task_template_name) continue - logger.debug("creating task draft... task_name='%s', task_template_name='%s'", task_definition["name"], task_template_name) + logger.debug("creating task draft... task_name='%s', task_template_name='%s'", task_template_name, task_template_name) - task_draft = models.TaskDraft.objects.create(name=task_definition["name"], + task_draft = models.TaskDraft.objects.create(name=task_name, description=task_definition.get("description",""), tags=task_definition.get("tags",[]), - specifications_doc=task_definition["specifications_doc"], + specifications_doc=task_specifications_doc, copy_reason=models.CopyReason.objects.get(value='template'), copies=None, scheduling_unit_draft=scheduling_unit_draft, specifications_template=task_template) - logger.info("created task draft id=%s task_name='%s', task_template_name='%s'", task_draft.pk, task_definition["name"], task_template_name) + logger.info("created task draft id=%s task_name='%s', task_template_name='%s'", task_draft.pk, task_name, task_template_name) # Now create task relations for task_relation_definition in scheduling_unit_draft.requirements_doc["task_relations"]: @@ -78,7 +81,7 @@ def create_task_drafts_from_scheduling_unit_draft(scheduling_unit_draft: models. output_role=output_role, selection_template=selection_template, selection_doc=task_relation_definition["selection_doc"]).count() > 0: - logger.debug("skipping creation of task_relation between task draft '%s' and '%s' because it is already in the scheduling_unit...", task_relation_definition["producer"], task_relation_definition["consumer"]) + logger.info("skipping creation of task_relation between task draft '%s' and '%s' because it is already in the scheduling_unit...", task_relation_definition["producer"], task_relation_definition["consumer"]) continue task_relation = models.TaskRelationDraft.objects.create(tags=task_relation_definition.get("tags",[]), @@ -104,7 +107,7 @@ def create_task_drafts_from_scheduling_unit_draft(scheduling_unit_draft: models. time_offset=time_offset, first=first_task_draft, second=second_task_draft).count() > 0: - logger.debug("skipping creation of task_scheduling_relation between task draft '%s' and '%s' because it is already in the scheduling_unit...", + logger.info("skipping creation of task_scheduling_relation between task draft '%s' and '%s' because it is already in the scheduling_unit...", task_scheduling_relation_definition["first"], task_scheduling_relation_definition["second"]) continue @@ -252,13 +255,7 @@ def create_task_blueprints_and_subtasks_from_scheduling_unit_blueprint(schedulin '''Convenience method: Create the scheduling_unit_blueprint's task_blueprint(s), then create each task_blueprint's subtasks''' scheduling_unit_blueprint = create_task_blueprints_from_scheduling_unit_blueprint(scheduling_unit_blueprint) - task_blueprints = list(scheduling_unit_blueprint.task_blueprints.all()) - - # sort task_blueprint(s) in 'data-flow'-order, - # because successors can depend on predecessors, so the first tbp's need to be subtask'd first. - task_blueprints.sort(key=cmp_to_key(lambda tbp_a, tbp_b: -1 if tbp_a in tbp_b.predecessors else 1 if tbp_b in tbp_a.predecessors else 0)) - - for task_blueprint in task_blueprints: + for task_blueprint in scheduling_unit_blueprint.task_blueprints.all(): create_subtasks_from_task_blueprint(task_blueprint) # refresh so all related fields are updated. diff --git a/SAS/TMSS/src/tmss/tmssapp/views.py b/SAS/TMSS/src/tmss/tmssapp/views.py index 72e8f23bf6dfcd4e1d0e3fd294c04018c4fd096b..9cf93ceffcf081c5742ca524341616b71a18ed82 100644 --- a/SAS/TMSS/src/tmss/tmssapp/views.py +++ b/SAS/TMSS/src/tmss/tmssapp/views.py @@ -29,7 +29,7 @@ def subtask_parset(request, subtask_pk:int): return HttpResponse(str(parset), content_type='text/plain') def index(request): - return render(request, os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), '../../frontend','frontend_poc/build/index.html')) + return render(request, os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), '../../frontend','tmss_webapp/build/index.html')) #return render(request, "../../../frontend/frontend_poc/build/index.html") def task_specify_observation(request, pk=None): diff --git a/SAS/TMSS/src/tmss/tmssapp/viewsets/scheduling.py b/SAS/TMSS/src/tmss/tmssapp/viewsets/scheduling.py index 7237399251266f124e63e3b460cfd23dd68d222e..7c83ea2cbb3861b4d1561677b2871873dd25e067 100644 --- a/SAS/TMSS/src/tmss/tmssapp/viewsets/scheduling.py +++ b/SAS/TMSS/src/tmss/tmssapp/viewsets/scheduling.py @@ -34,6 +34,8 @@ from lofar.sas.tmss.tmss.tmssapp.renderers import PlainTextRenderer from rest_framework.views import APIView from rest_framework.decorators import api_view, renderer_classes +from lofar.sas.tmss.tmss.tmssapp.adapters.sip import generate_sip_for_dataproduct +from lofar.lta.sip import visualizer class TextPlainAutoSchema(SwaggerAutoSchema): def get_produces(self): @@ -252,6 +254,22 @@ class DataproductViewSet(LOFARViewSet): queryset = models.Dataproduct.objects.all() serializer_class = serializers.DataproductSerializer + @swagger_auto_schema(responses={200: 'The SIP for this dataproduct', + 403: 'forbidden'}, + operation_description="Get the Submission Information Package (SIP) for this dataproduct") + @action(methods=['get'], detail=True, url_name="sip") + def sip(self, request, pk=None): + dataproduct = get_object_or_404(models.Dataproduct, pk=pk) + return HttpResponse(generate_sip_for_dataproduct(dataproduct).get_prettyxml(), content_type='application/xml') + + @swagger_auto_schema(responses={200: 'The SIP graph for this dataproduct', + 403: 'forbidden'}, + operation_description="Get a visualization of the Submission Information Package (SIP) for this dataproduct") + @action(methods=['get'], detail=True, url_name="sip_graph") + def sip_graph(self, request, pk=None): + dataproduct = get_object_or_404(models.Dataproduct, pk=pk) + return HttpResponse(visualizer.visualize_sip(generate_sip_for_dataproduct(dataproduct)), content_type='image/svg+xml') + class AntennaSetViewSet(LOFARViewSet): queryset = models.AntennaSet.objects.all() diff --git a/SAS/TMSS/src/tmss/tmssapp/viewsets/specification.py b/SAS/TMSS/src/tmss/tmssapp/viewsets/specification.py index bfc8ebf7f1ab2108f739adde3f83b78c0a7e683a..fb59811c5baafa46d5efd0537b3f30fbcc476035 100644 --- a/SAS/TMSS/src/tmss/tmssapp/viewsets/specification.py +++ b/SAS/TMSS/src/tmss/tmssapp/viewsets/specification.py @@ -14,6 +14,7 @@ from rest_framework.permissions import IsAuthenticatedOrReadOnly, DjangoModelPer from rest_framework.decorators import action from drf_yasg.utils import swagger_auto_schema +from drf_yasg.openapi import Parameter from lofar.sas.tmss.tmss.tmssapp.viewsets.lofar_viewset import LOFARViewSet, LOFARNestedViewSet, AbstractTemplateViewSet from lofar.sas.tmss.tmss.tmssapp import models @@ -54,6 +55,45 @@ class DefaultGeneratorTemplateViewSet(LOFARViewSet): queryset = models.DefaultGeneratorTemplate.objects.all() serializer_class = serializers.DefaultGeneratorTemplateSerializer + +class SchedulingUnitObservingStrategyTemplateViewSet(LOFARViewSet): + queryset = models.SchedulingUnitObservingStrategyTemplate.objects.all() + serializer_class = serializers.SchedulingUnitObservingStrategyTemplateSerializer + + @swagger_auto_schema(responses={status.HTTP_201_CREATED: 'The newly created scheduling unit', + status.HTTP_403_FORBIDDEN: 'forbidden'}, + operation_description="Create a new SchedulingUnit based on this SchedulingUnitObservingStrategyTemplate, with the given <name> and <description> and make it a child of the given <scheduling_set_id>", + manual_parameters=[Parameter(name='scheduling_set_id', required=True, type='integer', in_='query', + description="the id of the scheduling_set which will be the parent of the newly created scheduling_unit"), + Parameter(name='name', required=False, type='string', in_='query', + description="The name for the newly created scheduling_unit"), + Parameter(name='description', required=False, type='string', in_='query', + description="The description for the newly created scheduling_unit")]) + @action(methods=['get'], detail=True) + def create_scheduling_unit(self, request, pk=None): + strategy_template = get_object_or_404(models.SchedulingUnitObservingStrategyTemplate, pk=pk) + spec = add_defaults_to_json_object_for_schema(strategy_template.template, + strategy_template.scheduling_unit_template.schema) + + scheduling_set = get_object_or_404(models.SchedulingSet, pk=request.query_params['scheduling_set_id']) + + scheduling_unit_draft = models.SchedulingUnitDraft.objects.create(name=request.query_params.get('name', "scheduling unit"), + description=request.query_params.get('description', ""), + requirements_doc=spec, + scheduling_set=scheduling_set, + requirements_template=strategy_template.scheduling_unit_template, + observation_strategy_template=strategy_template) + + scheduling_unit_observation_strategy_template_path = request._request.path + base_path = scheduling_unit_observation_strategy_template_path[:scheduling_unit_observation_strategy_template_path.find('/scheduling_unit_observing_strategy_template')] + scheduling_unit_draft_path = '%s/scheduling_unit_draft/%s/' % (base_path, scheduling_unit_draft.id,) + + # return a response with the new serialized SchedulingUnitDraft, and a Location to the new instance in the header + return Response(serializers.SchedulingUnitDraftSerializer(scheduling_unit_draft, context={'request':request}).data, + status=status.HTTP_201_CREATED, + headers={'Location': scheduling_unit_draft_path}) + + class SchedulingUnitTemplateFilter(filters.FilterSet): class Meta: model = models.SchedulingUnitTemplate @@ -584,3 +624,8 @@ class TaskRelationBlueprintNestedViewSet(LOFARNestedViewSet): return task_relation_draft.related_task_relation_blueprint.all() else: return models.TaskRelationBlueprint.objects.all() + + +class TaskTypeViewSet(LOFARViewSet): + queryset = models.TaskType.objects.all() + serializer_class = serializers.TaskTypeSerializer \ No newline at end of file diff --git a/SAS/TMSS/src/tmss/urls.py b/SAS/TMSS/src/tmss/urls.py index a20319ac67ca6ab1aaf0f2981a3ff1b8b99b8243..23933e6feeb45c4a4e09d73a9032a853c3dbb999 100644 --- a/SAS/TMSS/src/tmss/urls.py +++ b/SAS/TMSS/src/tmss/urls.py @@ -19,7 +19,7 @@ from django.contrib import admin from django.contrib.auth.views import LoginView, LogoutView from django.urls import path, re_path from django.conf.urls import url, include -from django.views.generic.base import TemplateView +from django.views.generic.base import TemplateView, RedirectView from collections import OrderedDict from rest_framework import routers, permissions @@ -76,7 +76,14 @@ class TMSSAPIRootView(routers.APIRootView): return response -router = routers.DefaultRouter() +class OptionalSlashRouter(routers.DefaultRouter): + + def __init__(self): + super(routers.DefaultRouter, self).__init__() + self.trailing_slash = '/?' + + +router = OptionalSlashRouter() router.APIRootView = TMSSAPIRootView router.register(r'tags', viewsets.TagsViewSet) @@ -91,10 +98,12 @@ router.register(r'flag', viewsets.FlagViewSet) router.register(r'period_category', viewsets.PeriodCategoryViewSet) router.register(r'project_category', viewsets.ProjectCategoryViewSet) router.register(r'quantity', viewsets.QuantityViewSet) +router.register(r'task_type', viewsets.TaskTypeViewSet) # templates router.register(r'common_schema_template', viewsets.CommonSchemaTemplateViewSet) router.register(r'generator_template', viewsets.GeneratorTemplateViewSet) +router.register(r'scheduling_unit_observing_strategy_template', viewsets.SchedulingUnitObservingStrategyTemplateViewSet) router.register(r'scheduling_unit_template', viewsets.SchedulingUnitTemplateViewSet) router.register(r'task_template', viewsets.TaskTemplateViewSet) router.register(r'task_relation_selection_template', viewsets.TaskRelationSelectionTemplateViewSet) @@ -175,6 +184,4 @@ frontend_urlpatterns = [ # prefix everything for proxy #urlpatterns = [url(r'^api/', include(urlpatterns)), url(r'^oidc/', include('mozilla_django_oidc.urls')),] -urlpatterns = [url(r'^api/', include(urlpatterns)), url(r'^oidc/', include('mozilla_django_oidc.urls')), url(r'^frontend/', include(frontend_urlpatterns)) , url(r'^frontend/(?:.*)/?$', include(frontend_urlpatterns)),] - - +urlpatterns = [url(r'^api$', RedirectView.as_view(url='/api/')), url(r'^api/', include(urlpatterns)), url(r'^oidc$', RedirectView.as_view(url='/oidc/')), url(r'^oidc/', include('mozilla_django_oidc.urls')), url(r'^.*', include(frontend_urlpatterns)),] diff --git a/SAS/TMSS/test/CMakeLists.txt b/SAS/TMSS/test/CMakeLists.txt index 0df3c7d58b658d2358bc94157165a40a77e8ef9f..b19ddcd546e283f0e176ecaf57711bb3b8b8f03c 100644 --- a/SAS/TMSS/test/CMakeLists.txt +++ b/SAS/TMSS/test/CMakeLists.txt @@ -29,7 +29,7 @@ if(BUILD_TESTING) lofar_add_test(t_tmssapp_specification_permissions) lofar_add_test(t_tmss_session_auth) lofar_add_test(t_subtasks) - lofar_add_test(t_parset_adapter) + lofar_add_test(t_adapter) lofar_add_test(t_tasks) lofar_add_test(t_scheduling) diff --git a/SAS/TMSS/test/t_parset_adapter.py b/SAS/TMSS/test/t_adapter.py similarity index 69% rename from SAS/TMSS/test/t_parset_adapter.py rename to SAS/TMSS/test/t_adapter.py index 6146d8e486d330f82a0e61546861b62f65de83a4..a468918ab9b752ee3743dc181672938256fabe43 100755 --- a/SAS/TMSS/test/t_parset_adapter.py +++ b/SAS/TMSS/test/t_adapter.py @@ -40,7 +40,9 @@ rest_data_creator = TMSSRESTTestDataCreator(BASE_URL, AUTH) from lofar.sas.tmss.tmss.tmssapp import models from lofar.sas.tmss.tmss.tmssapp.adapters.parset import convert_to_parset -from lofar.sas.tmss.tmss.tmssapp.validation import get_default_json_object_for_schema +from lofar.common.json_utils import get_default_json_object_for_schema +from lofar.sas.tmss.tmss.tmssapp.adapters.sip import generate_sip_for_dataproduct + class ParsetAdapterTest(unittest.TestCase): def test_01(self): @@ -55,6 +57,23 @@ class ParsetAdapterTest(unittest.TestCase): parset = convert_to_parset(subtask) + +class SIPdapterTest(unittest.TestCase): + def test_simple_sip_generate_from_dataproduct(self): + subtask_template = models.SubtaskTemplate.objects.get(name='observationcontrol schema') + specifications_doc = get_default_json_object_for_schema(subtask_template.schema) + for dp in specifications_doc['stations']['digital_pointings']: + dp['subbands'] = list(range(8)) + subtask_data = Subtask_test_data(subtask_template=subtask_template, specifications_doc=specifications_doc) + subtask:models.Subtask = models.Subtask.objects.create(**subtask_data) + subtask_output = models.SubtaskOutput.objects.create(**SubtaskOutput_test_data(subtask=subtask)) + dataproduct:models.Dataproduct = models.Dataproduct.objects.create(**Dataproduct_test_data(producer=subtask_output)) + + sip = generate_sip_for_dataproduct(dataproduct) + # TODO: Although validate succeed at this step, would be interesting to check some xml values + # print(sip.get_prettyxml()) + + if __name__ == "__main__": os.environ['TZ'] = 'UTC' unittest.main() diff --git a/SAS/TMSS/test/t_parset_adapter.run b/SAS/TMSS/test/t_adapter.run similarity index 54% rename from SAS/TMSS/test/t_parset_adapter.run rename to SAS/TMSS/test/t_adapter.run index 0ec442af1b13271e84299c07fc7966bc7560ac82..f5d8bcd080af64a1006f5aff4846f4be6c40c101 100755 --- a/SAS/TMSS/test/t_parset_adapter.run +++ b/SAS/TMSS/test/t_adapter.run @@ -2,5 +2,5 @@ # Run the unit test source python-coverage.sh -python_coverage_test "*tmss*" t_parset_adapter.py +python_coverage_test "*tmss*" t_adapter.py diff --git a/SAS/TMSS/test/t_adapter.sh b/SAS/TMSS/test/t_adapter.sh new file mode 100755 index 0000000000000000000000000000000000000000..6ac64453a78317185c89c01ab422cb52077227c5 --- /dev/null +++ b/SAS/TMSS/test/t_adapter.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +./runctest.sh t_adapter \ No newline at end of file diff --git a/SAS/TMSS/test/t_parset_adapter.sh b/SAS/TMSS/test/t_parset_adapter.sh deleted file mode 100755 index d75b13ea9fd228e65ff103625be8bda753a84b6a..0000000000000000000000000000000000000000 --- a/SAS/TMSS/test/t_parset_adapter.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -./runctest.sh t_parset_adapter \ No newline at end of file diff --git a/SAS/TMSS/test/t_scheduling.py b/SAS/TMSS/test/t_scheduling.py index a575c0d7e73baac92b5cc1dc409755692e7e4d4a..daf067312b94506db9d46eea198dc2e4a90169f7 100755 --- a/SAS/TMSS/test/t_scheduling.py +++ b/SAS/TMSS/test/t_scheduling.py @@ -59,6 +59,22 @@ from lofar.sas.tmss.test.tmss_test_data_rest import TMSSRESTTestDataCreator test_data_creator = TMSSRESTTestDataCreator(tmss_test_env.django_server.url, (tmss_test_env.ldap_server.dbcreds.user, tmss_test_env.ldap_server.dbcreds.password)) from datetime import datetime, timedelta from lofar.sas.resourceassignment.resourceassigner.rarpc import RARPC +from lofar.sas.tmss.tmss.tmssapp import models +from lofar.sas.tmss.tmss.tmssapp.subtasks import * + + +def create_subtask_object_for_testing(subtask_type_value, subtask_state_value): + """ + Helper function to create a subtask object for testing with given subtask value and subtask state value + as string (no object) + For these testcases 'pipelinecontrol schema' and 'observationcontrol schema' is relevant + """ + subtask_template_obj = models.SubtaskTemplate.objects.get(name="%scontrol schema" % subtask_type_value) + subtask_state_obj = models.SubtaskState.objects.get(value=subtask_state_value) + subtask_data = Subtask_test_data(subtask_template=subtask_template_obj, state=subtask_state_obj) + return models.Subtask.objects.create(**subtask_data) + + class SchedulingTest(unittest.TestCase): def setUp(self): @@ -75,7 +91,8 @@ class SchedulingTest(unittest.TestCase): subtask_data = test_data_creator.Subtask(specifications_template_url=subtask_template['url'], specifications_doc=spec, - cluster_url=cluster_url) + cluster_url=cluster_url, + task_blueprint_url=test_data_creator.post_data_and_get_url(test_data_creator.TaskBlueprint(), '/task_blueprint/')) subtask = test_data_creator.post_data_and_get_response_as_json_object(subtask_data, '/subtask/') subtask_id = subtask['id'] test_data_creator.post_data_and_get_url(test_data_creator.SubtaskOutput(subtask_url=subtask['url']), '/subtask_output/') @@ -112,7 +129,8 @@ class SchedulingTest(unittest.TestCase): subtask_data = test_data_creator.Subtask(specifications_template_url=subtask_template['url'], specifications_doc=spec, - cluster_url=cluster_url) + cluster_url=cluster_url, + task_blueprint_url=test_data_creator.post_data_and_get_url(test_data_creator.TaskBlueprint(), '/task_blueprint/')) subtask = test_data_creator.post_data_and_get_response_as_json_object(subtask_data, '/subtask/') subtask_id = subtask['id'] test_data_creator.post_data_and_get_url(test_data_creator.SubtaskOutput(subtask_url=subtask['url']), '/subtask_output/') @@ -137,7 +155,8 @@ class SchedulingTest(unittest.TestCase): obs_subtask_data = test_data_creator.Subtask(specifications_template_url=obs_subtask_template['url'], specifications_doc=obs_spec, - cluster_url=cluster_url) + cluster_url=cluster_url, + task_blueprint_url=test_data_creator.post_data_and_get_url(test_data_creator.TaskBlueprint(), '/task_blueprint/')) obs_subtask = test_data_creator.post_data_and_get_response_as_json_object(obs_subtask_data, '/subtask/') obs_subtask_output_url = test_data_creator.post_data_and_get_url(test_data_creator.SubtaskOutput(subtask_url=obs_subtask['url']), '/subtask_output/') test_data_creator.post_data_and_get_url(test_data_creator.Dataproduct(filename="L%s_SB000.MS"%obs_subtask['id'], @@ -178,14 +197,12 @@ class SchedulingTest(unittest.TestCase): obs_task['QA']['plots']['enabled'] = False obs_task['QA']['file_conversion']['enabled'] = False obs_task['SAPs'][0]['subbands'] = [0,1] - scheduling_unit_doc['tasks'].append({"name": "Observation", - "specifications_doc": obs_task, - "specifications_template": "observation schema"}) + scheduling_unit_doc['tasks']["Observation"] = {"specifications_doc": obs_task, + "specifications_template": "observation schema"} # define a pipeline - scheduling_unit_doc['tasks'].append({"name": "Pipeline", - "specifications_doc": get_default_json_object_for_schema(client.get_task_template(name="preprocessing schema")['schema']), - "specifications_template": "preprocessing schema"}) + scheduling_unit_doc['tasks']["Pipeline"] = { "specifications_doc": get_default_json_object_for_schema(client.get_task_template(name="preprocessing schema")['schema']), + "specifications_template": "preprocessing schema"} # connect obs to pipeline scheduling_unit_doc['task_relations'].append({"producer": "Observation", @@ -224,6 +241,51 @@ class SchedulingTest(unittest.TestCase): client.set_subtask_status(subtask['id'], 'finished') +class SubtaskInputOutputTest(unittest.TestCase): + """ + Subtask Input and Output test + These testcases are located in the t_scheduling module, because during scheduling the output + dataproducts are assigned + """ + + def setUp(self) -> None: + # make sure we're allowed to schedule + setting = Setting.objects.get(name='allow_scheduling_observations') + setting.value = True + setting.save() + + def test_schedule_pipeline_subtask_filters_predecessor_output_dataproducts_for_input(self): + # setup: + # create observation subtask and outputs and dataproducts + obs_st = create_subtask_object_for_testing('observation', 'finished') + obs_out1 = models.SubtaskOutput.objects.create(**SubtaskOutput_test_data(subtask=obs_st)) + obs_out2 = models.SubtaskOutput.objects.create(**SubtaskOutput_test_data(subtask=obs_st)) + + # create connected pipeline subtask and inputs, specify input filtering + pipe_st = create_subtask_object_for_testing('pipeline', 'defined') + pipe_out = models.SubtaskOutput.objects.create(**SubtaskOutput_test_data(subtask=pipe_st)) # required by scheduling function + pipe_in1 = models.SubtaskInput.objects.create(**SubtaskInput_test_data(subtask=pipe_st, producer=obs_out1, selection_doc={'sap': [0]})) + pipe_in2 = models.SubtaskInput.objects.create(**SubtaskInput_test_data(subtask=pipe_st, producer=obs_out2, selection_doc={'sap': [1]})) + + # create obs output dataproducts with specs we can filter on + dp1_1 = models.Dataproduct.objects.create(**Dataproduct_test_data(producer=obs_out1, specifications_doc={'sap': [0]})) + dp1_2 = models.Dataproduct.objects.create(**Dataproduct_test_data(producer=obs_out1, specifications_doc={'sap': [1]})) + dp1_3 = models.Dataproduct.objects.create(**Dataproduct_test_data(producer=obs_out1, specifications_doc={'sap': [0]})) + + dp2_1 = models.Dataproduct.objects.create(**Dataproduct_test_data(producer=obs_out2, specifications_doc={'sap': [0]})) + dp2_2 = models.Dataproduct.objects.create(**Dataproduct_test_data(producer=obs_out2, specifications_doc={'sap': [1]})) + + # uncomment when RA scheduler works + # # trigger: + # # schedule pipeline, which should attach the correct subset of dataproducts to the pipeline inputs + # schedule_pipeline_subtask(pipe_st) + # + # # assert: + # # check correct input filtering + # self.assertEqual(set(pipe_in1.dataproducts.all()), {dp1_1, dp1_3}) + # self.assertEqual(set(pipe_in2.dataproducts.all()), {dp2_2}) + + if __name__ == "__main__": os.environ['TZ'] = 'UTC' unittest.main() diff --git a/SAS/TMSS/test/t_subtasks.py b/SAS/TMSS/test/t_subtasks.py index 32de3e5628b7aa8acd8fd07cddb758786f8a8676..2421ab66d1b5817adb87df5c902b637cbf500007 100755 --- a/SAS/TMSS/test/t_subtasks.py +++ b/SAS/TMSS/test/t_subtasks.py @@ -41,48 +41,88 @@ from lofar.sas.tmss.tmss.tmssapp import models from lofar.sas.tmss.tmss.tmssapp.subtasks import * -# The following methods should be tested too - -# schedule_subtask -# check_prerequities_for_scheduling -# schedule_qafile_subtask -# schedule_qaplots_subtask -# schedule_observation_subtask -# schedule_pipeline_subtask -# create_and_schedule_subtasks_from_task_blueprint - - - - +def create_subtask_object_for_testing(subtask_type_value, subtask_state_value): + """ + Helper function to create a subtask object for testing with given subtask value and subtask state value + as string (no object) + """ + template_type = models.SubtaskType.objects.get(value=subtask_type_value) + subtask_template_obj = create_subtask_template_for_testing(template_type) + subtask_state_obj = models.SubtaskState.objects.get(value=subtask_state_value) + subtask_data = Subtask_test_data(subtask_template=subtask_template_obj, state=subtask_state_obj) + return models.Subtask.objects.create(**subtask_data) + + +def create_subtask_template_for_testing(template_type: object): + """ + Helper function + :param template_type: + :return: + """ + subtask_template_data = SubtaskTemplate_test_data() + subtask_template_data['type'] = template_type + return models.SubtaskTemplate.objects.create(**subtask_template_data) + + +def create_task_blueprint_object_for_testing(task_template_name="observation schema", QA_enabled=False): + """ + Helper function to create a task blueprint object for testing with given task template name value + as string (no object) + :param task_template_name: (Optional) name of schema observation schema is target observation + :param QA_enabled: (Optional) QA plots and file_conversion + :return: task_blueprint_obj: Created Task Blueprint object + """ + task_template = models.TaskTemplate.objects.get(name=task_template_name) + task_spec = get_default_json_object_for_schema(task_template.schema) + if 'QA' in task_spec: + task_spec["QA"]['plots']['enabled'] = QA_enabled + task_spec["QA"]['file_conversion']['enabled'] = QA_enabled + task_draft_data = TaskDraft_test_data(specifications_template=task_template, specifications_doc=task_spec) + task_draft_obj = models.TaskDraft.objects.create(**task_draft_data) + + task_name = "BlueprintTask with %s" % task_template_name + task_blueprint_data = TaskBlueprint_test_data(name=task_name, task_draft=task_draft_obj) + task_blueprint_obj = models.TaskBlueprint.objects.create(**task_blueprint_data) + return task_blueprint_obj + + +def create_relation_task_blueprint_object_for_testing(blueprint_task_producer, blueprint_task_consumer): + """ + Helper function to create a task relation blueprint object for testing for given task objects consumer and producer + :param blueprint_task_producer: Blueprint task of producer, typical an observation + :param blueprint_task_consumer: Blueprint task of consumer, typical a preprocessing pipeline + :return: task_relation_obj: Created Task Relation Blueprint object + """ + task_relation_data = TaskRelationBlueprint_test_data(blueprint_task_producer, blueprint_task_consumer) + task_relation_obj = models.TaskRelationBlueprint.objects.create(**task_relation_data) + return task_relation_obj + + +def create_scheduling_relation_task_blueprint_for_testing(first_task_blueprint, second_task_blueprint): + """ + Helper function to create a task blueprint relation object between two task blueprint (calibrator and target observation) + :param first_task_blueprint: + :param second_task_blueprint: + :return: task_relation_blueprint_obj: Created Task Relation Blueprint object + """ + task_scheduling_rel_obj = models.TaskSchedulingRelationBlueprint.objects.create( + tags=[], + first=first_task_blueprint, + second=second_task_blueprint, + placement=models.SchedulingRelationPlacement.objects.get(value='before'), + time_offset=60) + return task_scheduling_rel_obj class SubTasksCreationFromSubTask(unittest.TestCase): - @staticmethod - def create_subtask_object(subtask_type_value, subtask_state_value): - """ - Helper function to create a subtask object for testing with given subtask value and subtask state value - as string (no object) - """ - template_type = models.SubtaskType.objects.get(value=subtask_type_value) - subtask_template_obj = SubTasksCreationFromSubTask.create_subtask_template(template_type) - subtask_state_obj = models.SubtaskState.objects.get(value=subtask_state_value) - subtask_data = Subtask_test_data(subtask_template=subtask_template_obj, state=subtask_state_obj) - return models.Subtask.objects.create(**subtask_data) - - @staticmethod - def create_subtask_template(template_type: object): - subtask_template_data = SubtaskTemplate_test_data() - subtask_template_data['type'] = template_type - return models.SubtaskTemplate.objects.create(**subtask_template_data) - def test_create_qafile_subtask_from_observation_subtask_failed(self): """ Test if creation of subtask qafile failed due to wrong state or wrong type of the predecessor subtask Correct state should be 'defined' and correct type should be 'observation' (for this test of course it is not) """ - subtasks = [self.create_subtask_object("pipeline", "defined"), - self.create_subtask_object("observation", "defining"), - self.create_subtask_object("observation", "defining") ] + subtasks = [create_subtask_object_for_testing("pipeline", "defined"), + create_subtask_object_for_testing("observation", "defining"), + create_subtask_object_for_testing("observation", "defining") ] for subtask in subtasks: with self.assertRaises(ValueError): create_qafile_subtask_from_observation_subtask(subtask) @@ -90,11 +130,10 @@ class SubTasksCreationFromSubTask(unittest.TestCase): def test_create_qafile_subtask_from_observation_subtask_succeed(self): """ Test if creation of subtask qafile succeed - Check if the created subtask has correct subtask state and value (TODO) + Subtask object is None because QA file conversion is by default not enabled!!!! """ - predecessor_subtask = self.create_subtask_object("observation", "defined") + predecessor_subtask = create_subtask_object_for_testing("observation", "defined") subtask = create_qafile_subtask_from_observation_subtask(predecessor_subtask) - # subtask object is None because QA file conversion is by default not enabled!!!! self.assertEqual(None, subtask) def test_create_qaplots_subtask_from_qafile_subtask_failed(self): @@ -102,9 +141,9 @@ class SubTasksCreationFromSubTask(unittest.TestCase): Test if creation of subtask qaplots failed due to wrong state or wrong type of the predecessor subtask Correct type should be 'qa_files' (for this test of course it is not) """ - subtasks = [self.create_subtask_object("pipeline", "defined"), - self.create_subtask_object("observation", "defining"), - self.create_subtask_object("observation", "defining") ] + subtasks = [create_subtask_object_for_testing("pipeline", "defined"), + create_subtask_object_for_testing("observation", "defining"), + create_subtask_object_for_testing("observation", "defining") ] for subtask in subtasks: with self.assertRaises(ValueError): create_qaplots_subtask_from_qafile_subtask(subtask) @@ -112,41 +151,21 @@ class SubTasksCreationFromSubTask(unittest.TestCase): def test_create_qaplots_subtask_from_qafile_subtask_succeed(self): """ Test if creation of subtask qaplots succeed - Check if the created subtask has correct subtask state and value (TODO) + Subtask object is None because QA plots is by default not enabled!!!! """ - predecessor_subtask = self.create_subtask_object("qa_files", "defined") + predecessor_subtask = create_subtask_object_for_testing("qa_files", "defined") subtask = create_qaplots_subtask_from_qafile_subtask(predecessor_subtask) - # subtask object is None because QA plots is by default not enabled!!!! self.assertEqual(None, subtask) class SubTasksCreationFromTaskBluePrint(unittest.TestCase): - @staticmethod - def create_task_blueprint_object(task_template_name="observation schema", QA_enabled=False): - """ - Helper function to create a task blueprint object for testing with given task template name value - as string (no object) - """ - task_template = TaskTemplate.objects.get(name=task_template_name) - task_spec = get_default_json_object_for_schema(task_template.schema) - if 'QA' in task_spec: - task_spec["QA"]['plots']['enabled'] = QA_enabled - task_spec["QA"]['file_conversion']['enabled'] = QA_enabled - - task_draft_data = TaskDraft_test_data(specifications_template=task_template, specifications_doc=task_spec) - task_draft_obj = models.TaskDraft.objects.create(**task_draft_data) - - task_blueprint_data = TaskBlueprint_test_data(task_draft=task_draft_obj) - task_blueprint_obj = models.TaskBlueprint.objects.create(**task_blueprint_data) - return task_blueprint_obj - def test_create_sequence_of_subtask_from_task_blueprint(self): """ Create multiple subtasks from a task blueprint, executed in correct order. No exception should occur, check name, type and state of the subtask """ - task_blueprint = self.create_task_blueprint_object() + task_blueprint = create_task_blueprint_object_for_testing() subtask = create_observation_control_subtask_from_task_blueprint(task_blueprint) self.assertEqual("defined", str(subtask.state)) @@ -163,7 +182,6 @@ class SubTasksCreationFromTaskBluePrint(unittest.TestCase): with self.assertRaises(SubtaskCreationException): subtask = create_qaplots_subtask_from_task_blueprint(task_blueprint) - # subtask = create_preprocessing_subtask_from_task_blueprint(task_blueprint) def test_create_sequence_of_subtask_from_task_blueprint_with_QA_enabled(self): """ @@ -171,9 +189,9 @@ class SubTasksCreationFromTaskBluePrint(unittest.TestCase): QA plots and QA file conversion enabled No exception should occur, check name, type and state of the subtasks """ - # Enable QA plot and QA conversion - task_blueprint = self.create_task_blueprint_object(QA_enabled=True) - task_blueprint_preprocessing = self.create_task_blueprint_object("preprocessing schema") + # Create Observation Task Enable QA plot and QA conversion + task_blueprint = create_task_blueprint_object_for_testing(QA_enabled=True) + task_blueprint_preprocessing = create_task_blueprint_object_for_testing("preprocessing schema") subtask = create_observation_control_subtask_from_task_blueprint(task_blueprint) self.assertEqual("defined", str(subtask.state)) @@ -189,24 +207,63 @@ class SubTasksCreationFromTaskBluePrint(unittest.TestCase): self.assertEqual("defined", str(subtask.state)) self.assertEqual("QA plots", str(subtask.specifications_template.name)) self.assertEqual("qa_plots", str(subtask.specifications_template.type)) - # TODO: check why next call failed? - #subtask = create_preprocessing_subtask_from_task_blueprint(task_blueprint_preprocessing) - #self.assertEqual("defined", str(subtask.state)) - + # Next call will fail due to missing task relation + with self.assertRaises(SubtaskCreationException): + create_preprocessing_subtask_from_task_blueprint(task_blueprint_preprocessing) + # Create that relation and check again + create_relation_task_blueprint_object_for_testing(task_blueprint, task_blueprint_preprocessing) + subtask = create_preprocessing_subtask_from_task_blueprint(task_blueprint_preprocessing) + self.assertEqual("defined", str(subtask.state)) + self.assertEqual("pipelinecontrol schema", str(subtask.specifications_template.name)) + self.assertEqual("pipeline", str(subtask.specifications_template.type)) def test_create_subtasks_from_task_blueprint_succeed(self): """ """ - task_blueprint = self.create_task_blueprint_object(QA_enabled=True) + task_blueprint = create_task_blueprint_object_for_testing(QA_enabled=True) subtasks = create_subtasks_from_task_blueprint(task_blueprint) self.assertEqual(3, len(subtasks)) -# TODO Test the Schedule calls +class SubTasksCreationFromTaskBluePrintCalibrator(unittest.TestCase): -class SubtaskInputSelectionFilteringTest(unittest.TestCase): + def test_create_sequence_of_subtask_from_task_blueprint_calibrator_failure(self): + """ + Create multiple subtasks from a task blueprint when task is a calibrator + Check that exception should occur due too missing related target observation + """ + task_blueprint = create_task_blueprint_object_for_testing(task_template_name="calibrator schema") + with self.assertRaises(SubtaskCreationException): + create_observation_control_subtask_from_task_blueprint(task_blueprint) + + def test_create_sequence_of_subtask_from_task_blueprint_calibrator(self): + """ + Create multiple subtasks from a task blueprint when task is a calibrator and is related to task blueprint + of a target observation + Check that exception should occur due too missing pointing setting in target observation, + the calibrator default is AutoSelect=True + Check NO exception, when AutoSelect=False + """ + cal_task_blueprint = create_task_blueprint_object_for_testing(task_template_name="calibrator schema") + target_task_blueprint = create_task_blueprint_object_for_testing() + create_scheduling_relation_task_blueprint_for_testing(cal_task_blueprint, target_task_blueprint) + + with self.assertRaises(SubtaskCreationException): + create_observation_control_subtask_from_task_blueprint(cal_task_blueprint) + + cal_task_blueprint.specifications_doc['autoselect'] = False + cal_task_blueprint.specifications_doc['pointing']['angle1'] = 11.11 + cal_task_blueprint.specifications_doc['pointing']['angle2'] = 22.22 + subtask = create_observation_control_subtask_from_task_blueprint(cal_task_blueprint) + self.assertEqual("defined", str(subtask.state)) + self.assertEqual("observationcontrol schema", str(subtask.specifications_template.name)) + self.assertEqual("observation", str(subtask.specifications_template.type)) + self.assertEqual('J2000', subtask.specifications_doc['stations']['analog_pointing']['direction_type']) + self.assertEqual(11.11, subtask.specifications_doc['stations']['analog_pointing']['angle1']) + self.assertEqual(22.22, subtask.specifications_doc['stations']['analog_pointing']['angle2']) - # todo: merge in tests from TMSS-207 and deduplicate staticmethods + +class SubtaskInputSelectionFilteringTest(unittest.TestCase): def setUp(self) -> None: # make sure we're allowed to schedule @@ -214,24 +271,6 @@ class SubtaskInputSelectionFilteringTest(unittest.TestCase): setting.value = True setting.save() - @staticmethod - def create_subtask_object(subtask_type_value, subtask_state_value): - """ - Helper function to create a subtask object for testing with given subtask value and subtask state value - as string (no object) - """ - template_type = models.SubtaskType.objects.get(value=subtask_type_value) - subtask_template_obj = SubtaskInputSelectionFilteringTest.create_subtask_template(template_type) - subtask_state_obj = models.SubtaskState.objects.get(value=subtask_state_value) - subtask_data = Subtask_test_data(subtask_template=subtask_template_obj, state=subtask_state_obj) - return models.Subtask.objects.create(**subtask_data) - - @staticmethod - def create_subtask_template(template_type: object): - subtask_template_data = SubtaskTemplate_test_data() - subtask_template_data['type'] = template_type - return models.SubtaskTemplate.objects.create(**subtask_template_data) - def test_specifications_doc_meets_selection_doc_returns_true_on_empty_filter(self): specs = {} selection = {} @@ -269,38 +308,6 @@ class SubtaskInputSelectionFilteringTest(unittest.TestCase): selection = {'sap': [0], 'is_relevant': True} self.assertFalse(specifications_doc_meets_selection_doc(specs, selection)) - # TODO: move to t_scheduling, cause during scheduling the output dataproducts are assigned - # def test_schedule_pipeline_subtask_filters_predecessor_output_dataproducts_for_input(self): - # - # # setup: - # # create observation subtask and outputs and dataproducts - # obs_st = self.create_subtask_object('observation', 'finished') - # obs_out1 = models.SubtaskOutput.objects.create(**SubtaskOutput_test_data(subtask=obs_st)) - # obs_out2 = models.SubtaskOutput.objects.create(**SubtaskOutput_test_data(subtask=obs_st)) - # - # # create connected pipeline subtask and inputs, specify input filtering - # pipe_st = self.create_subtask_object('pipeline', 'defined') - # pipe_out = models.SubtaskOutput.objects.create(**SubtaskOutput_test_data(subtask=pipe_st)) # required by scheduling function - # pipe_in1 = models.SubtaskInput.objects.create(**SubtaskInput_test_data(subtask=pipe_st, producer=obs_out1, selection_doc={'sap': [0]})) - # pipe_in2 = models.SubtaskInput.objects.create(**SubtaskInput_test_data(subtask=pipe_st, producer=obs_out2, selection_doc={'sap': [1]})) - # - # # create obs output dataproducts with specs we can filter on - # dp1_1 = models.Dataproduct.objects.create(**Dataproduct_test_data(producer=obs_out1, specifications_doc={'sap': [0]})) - # dp1_2 = models.Dataproduct.objects.create(**Dataproduct_test_data(producer=obs_out1, specifications_doc={'sap': [1]})) - # dp1_3 = models.Dataproduct.objects.create(**Dataproduct_test_data(producer=obs_out1, specifications_doc={'sap': [0]})) - # - # dp2_1 = models.Dataproduct.objects.create(**Dataproduct_test_data(producer=obs_out2, specifications_doc={'sap': [0]})) - # dp2_2 = models.Dataproduct.objects.create(**Dataproduct_test_data(producer=obs_out2, specifications_doc={'sap': [1]})) - # - # # trigger: - # # schedule pipeline, which should attach the correct subset of dataproducts to the pipeline inputs - # schedule_pipeline_subtask(pipe_st) - # - # # assert: - # # check correct input filtering - # self.assertEqual(set(pipe_in1.dataproducts.all()), {dp1_1, dp1_3}) - # self.assertEqual(set(pipe_in2.dataproducts.all()), {dp2_2}) - class SettingTest(unittest.TestCase): @@ -308,11 +315,12 @@ class SettingTest(unittest.TestCase): setting = Setting.objects.get(name='allow_scheduling_observations') setting.value = False setting.save() - obs_st = SubtaskInputSelectionFilteringTest.create_subtask_object('observation', 'defined') + obs_st = create_subtask_object_for_testing('observation', 'defined') with self.assertRaises(SubtaskSchedulingException): schedule_observation_subtask(obs_st) + if __name__ == "__main__": os.environ['TZ'] = 'UTC' unittest.main() diff --git a/SAS/TMSS/test/t_tasks.py b/SAS/TMSS/test/t_tasks.py index 05cb7e958324c029e95a2655d73ec3006af0330b..cc51eec0313d0ec53004e36e802bfbc8cb07495c 100755 --- a/SAS/TMSS/test/t_tasks.py +++ b/SAS/TMSS/test/t_tasks.py @@ -65,24 +65,24 @@ class CreationFromSchedulingUnitDraft(unittest.TestCase): 6. create_task_drafts_from_scheduling_unit_draft(scheduling_unit_draft: models.SchedulingUnitDraft) -> [TaskDraft]: 3. create_task_blueprints_and_subtasks_from_scheduling_unit_draft(scheduling_unit_draft: models.SchedulingUnitDraft) -> models.SchedulingUnitBlueprint: """ - @staticmethod - def create_scheduling_unit_draft_object(scheduling_unit_draft_name, requirements_doc=None): - """ - Helper function to create a scheduling unit object for testing - """ - scheduling_unit_draft_data = SchedulingUnitDraft_test_data(name=scheduling_unit_draft_name, - requirements_doc=requirements_doc, - template=models.SchedulingUnitTemplate.objects.get(name="scheduling unit schema")) - draft_obj = models.SchedulingUnitDraft.objects.create(**scheduling_unit_draft_data) - return draft_obj - def test_create_scheduling_unit_blueprint_from_scheduling_unit_draft(self): """ Create Scheduling Unit Draft Check if the name draft (specified) is equal to name blueprint (created) Check with REST-call if NO tasks are created """ - scheduling_unit_draft = self.create_scheduling_unit_draft_object("Test Scheduling Unit 1") + strategy_template = models.SchedulingUnitObservingStrategyTemplate.objects.get(name="UC1 observation strategy template") + strategy_template.template['tasks'] = {} + + scheduling_unit_draft = models.SchedulingUnitDraft.objects.create( + name="Test Scheduling Unit UC1", + requirements_doc=strategy_template.template, + requirements_template=strategy_template.scheduling_unit_template, + observation_strategy_template=strategy_template, + copy_reason=models.CopyReason.objects.get(value='template'), + generator_instance_doc="para", + copies=None, + scheduling_set=models.SchedulingSet.objects.create(**SchedulingSet_test_data())) scheduling_unit_blueprint = create_scheduling_unit_blueprint_from_scheduling_unit_draft(scheduling_unit_draft) self.assertEqual(scheduling_unit_draft.name, scheduling_unit_blueprint.draft.name) @@ -94,7 +94,19 @@ class CreationFromSchedulingUnitDraft(unittest.TestCase): Check if NO tasks are created Check with REST-call if NO tasks are created """ - scheduling_unit_draft = self.create_scheduling_unit_draft_object("Test Scheduling Unit 2", requirements_doc={'tasks': []}) + strategy_template = models.SchedulingUnitObservingStrategyTemplate.objects.get(name="UC1 observation strategy template") + strategy_template.template['tasks'] = {} + + scheduling_unit_draft = models.SchedulingUnitDraft.objects.create( + name="Test Scheduling Unit UC1", + requirements_doc=strategy_template.template, + requirements_template=strategy_template.scheduling_unit_template, + observation_strategy_template=strategy_template, + copy_reason=models.CopyReason.objects.get(value='template'), + generator_instance_doc="para", + copies=None, + scheduling_set=models.SchedulingSet.objects.create(**SchedulingSet_test_data())) + with self.assertRaises(BlueprintCreationException): create_task_drafts_from_scheduling_unit_draft(scheduling_unit_draft) @@ -106,17 +118,16 @@ class CreationFromSchedulingUnitDraft(unittest.TestCase): def test_create_task_drafts_from_scheduling_unit_draft_with_UC1_requirements(self): """ Create Scheduling Unit Draft with requirements_doc (read from file) + Create Task Blueprints (only) Check if tasks (7) are created - Check with REST-call if tasks are created """ - working_dir = os.path.dirname(os.path.abspath(__file__)) - with open(os.path.join(working_dir, "testdata/example_UC1_scheduling_unit.json")) as json_file: - json_requirements_doc = json.loads(json_file.read()) + strategy_template = models.SchedulingUnitObservingStrategyTemplate.objects.get(name="UC1 observation strategy template") scheduling_unit_draft = models.SchedulingUnitDraft.objects.create( name="Test Scheduling Unit UC1", - requirements_doc=json_requirements_doc, - requirements_template=models.SchedulingUnitTemplate.objects.get(name="scheduling unit schema"), + requirements_doc=strategy_template.template, + requirements_template=strategy_template.scheduling_unit_template, + observation_strategy_template=strategy_template, copy_reason=models.CopyReason.objects.get(value='template'), generator_instance_doc="para", copies=None, @@ -128,21 +139,26 @@ class CreationFromSchedulingUnitDraft(unittest.TestCase): task_drafts = scheduling_unit_draft.task_drafts.all() self.assertEqual(7, len(task_drafts)) - - def test_create_task_blueprints_and_subtasks_subtasks_from_scheduling_unit_draft_with_UC1_requirements(self): + def test_create_task_blueprints_and_subtasks_from_scheduling_unit_draft_with_UC1_requirements(self): """ Create Scheduling Unit Draft with requirements_doc (read from file) - Check if tasks (7) are created - Check with REST-call if tasks are created + Create Task Blueprints and Subtasks + Check if tasks (7) are created: + Calibration 1 : 1 Observation and 1 Pipeline task + Target Observation: 1 Observation and 2 Pipeline tasks + Calibration 2 : 1 Observation and 1 Pipeline task + Check if subtasks (13) are created: + Every Observation Task: 3 subtasks (1 control, 2 QA) + Every Pipeline Task: 1 subtasks (1 control) + makes 3x3 + 4x1 = 13 """ - working_dir = os.path.dirname(os.path.abspath(__file__)) - with open(os.path.join(working_dir, "testdata/example_UC1_scheduling_unit.json")) as json_file: - json_requirements_doc = json.loads(json_file.read()) + strategy_template = models.SchedulingUnitObservingStrategyTemplate.objects.get(name="UC1 observation strategy template") scheduling_unit_draft = models.SchedulingUnitDraft.objects.create( name="Test Scheduling Unit UC1", - requirements_doc=json_requirements_doc, - requirements_template=models.SchedulingUnitTemplate.objects.get(name="scheduling unit schema"), + requirements_doc=strategy_template.template, + requirements_template=strategy_template.scheduling_unit_template, + observation_strategy_template=strategy_template, copy_reason=models.CopyReason.objects.get(value='template'), generator_instance_doc="para", copies=None, @@ -160,14 +176,29 @@ class CreationFromSchedulingUnitDraft(unittest.TestCase): scheduling_unit_blueprint = scheduling_unit_blueprints[0] task_blueprints = scheduling_unit_blueprint.task_blueprints.all() self.assertEqual(7, len(task_blueprints)) + total_subtasks = 0 + for task_blueprint in task_blueprints: + total_subtasks += task_blueprint.subtasks.count() + self.assertEqual(13, total_subtasks) - def test_create_task_blueprints_and_subtasks_subtasks_from_scheduling_unit_draft(self): + def test_create_task_blueprints_and_subtasks_from_scheduling_unit_draft(self): """ Create Scheduling Unit Draft Check if the name draft (specified) is equal to name blueprint (created) Check with REST-call if NO tasks are created """ - scheduling_unit_draft = self.create_scheduling_unit_draft_object("Test Scheduling Unit 3", {'tasks': []}) + strategy_template = models.SchedulingUnitObservingStrategyTemplate.objects.get(name="UC1 observation strategy template") + strategy_template.template['tasks'] = {} + + scheduling_unit_draft = models.SchedulingUnitDraft.objects.create( + name="Test Scheduling Unit UC1", + requirements_doc=strategy_template.template, + requirements_template=strategy_template.scheduling_unit_template, + observation_strategy_template=strategy_template, + copy_reason=models.CopyReason.objects.get(value='template'), + generator_instance_doc="para", + copies=None, + scheduling_set=models.SchedulingSet.objects.create(**SchedulingSet_test_data())) with self.assertRaises(BlueprintCreationException): create_task_blueprints_and_subtasks_from_scheduling_unit_draft(scheduling_unit_draft) @@ -184,7 +215,8 @@ class CreationFromSchedulingUnitBluePrint(unittest.TestCase): def test_create_task_blueprints_and_subtasks_from_scheduling_unit_blueprint(self): """ Create Scheduling Unit BluePrint - Check with REST-call if NO tasks are created + Check with REST-call if NO tasks are created, an Exception is raised becaus the requirements_doc of the + scheduling_unit (draft) has no tasks defined, it is an empty list """ scheduling_unit_blueprint_data = SchedulingUnitBlueprint_test_data(name="Test Scheduling Unit BluePrint") scheduling_unit_blueprint = models.SchedulingUnitBlueprint.objects.create(**scheduling_unit_blueprint_data) @@ -205,15 +237,11 @@ class CreationFromTaskDraft(unittest.TestCase): def create_task_object(task_draft_name): """ Helper function to create a task object for testing - TODO change schema to observation schema, correlator schema wil be removed - using the observation schema results in jsonschema.exceptions.ValidationError: 'stations' is a required property - so somehow its does not fill in the required fields ?? """ obs_task_template = models.TaskTemplate.objects.get(name='observation schema') task_draft_data = TaskDraft_test_data(name=task_draft_name, specifications_template=obs_task_template) models.TaskDraft.objects.create(**task_draft_data) - def test_create_task_blueprint_and_subtasks(self): """ Create task draft diff --git a/SAS/TMSS/test/t_tmssapp_scheduling_REST_API.py b/SAS/TMSS/test/t_tmssapp_scheduling_REST_API.py index 132b434cc424099d19172cd131f9e27184b6bb81..ec07eacc9f05774a3491beb36498369a819c9843 100755 --- a/SAS/TMSS/test/t_tmssapp_scheduling_REST_API.py +++ b/SAS/TMSS/test/t_tmssapp_scheduling_REST_API.py @@ -22,10 +22,10 @@ # This functional test talks to the API like a regular user would. # It is supposed to cover all REST http methods for all ViewSets. -# todo: I am still a bit under the impression that we re-test Django functionality that we can expect to just work -# todo: with some of these tests. On the other hand a lot of these provide us a nice basis for differentiating out -# todo: behavior in a controlled way. -# todo: We should probably also fully test behavior wrt mandatory and nullable fields. +# I am still a bit under the impression that we re-test Django functionality that we can expect to just work +# with some of these tests. On the other hand a lot of these provide us a nice basis for differentiating out +# behavior in a controlled way. +# We should probably also fully test behavior wrt mandatory and nullable fields. from datetime import datetime, timedelta import unittest @@ -92,7 +92,7 @@ class SubtaskTemplateTestCase(unittest.TestCase): url = r_dict['url'] GET_OK_and_assert_equal_expected_response(self, url, st_test_data) - test_patch = {"type": BASE_URL + '/subtask_type/inspection/', + test_patch = {"type": BASE_URL + '/subtask_type/inspection', "version": 'v6.28318530718', "schema": {"mykey": "my better value"}, } @@ -120,7 +120,7 @@ class SubtaskTemplateTestCase(unittest.TestCase): # create dependency that is safe to delete (enums are not populated / re-established between tests) type_data = {'value': 'kickme'} POST_and_assert_expected_response(self, BASE_URL + '/subtask_type/', type_data, 201, type_data) - type_url = BASE_URL + '/subtask_type/kickme/' + type_url = BASE_URL + '/subtask_type/kickme' # POST new item and verify test_data = dict(st_test_data) @@ -370,7 +370,7 @@ class SubtaskTestCase(unittest.TestCase): # create dependency that is safe to delete (enums are not populated / re-established between tests) state_data = {'value': 'kickme'} POST_and_assert_expected_response(self, BASE_URL + '/subtask_state/', state_data, 201, state_data) - state_url = BASE_URL + '/subtask_state/kickme/' + state_url = BASE_URL + '/subtask_state/kickme' # POST new item and verify test_data = dict(st_test_data) @@ -473,7 +473,7 @@ class SubtaskTestCase(unittest.TestCase): GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/subtask_state_log/?subtask=' + identifier, {"count": 1}) # PATCH item with state update and verify log record is created - test_patch = {"state": BASE_URL + "/subtask_state/finishing/"} + test_patch = {"state": BASE_URL + "/subtask_state/finishing"} PATCH_and_assert_expected_response(self, url, test_patch, 200, test_patch) GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/subtask_state_log/?subtask=' + identifier, {"count": 2}) @@ -553,7 +553,7 @@ class DataproductTestCase(unittest.TestCase): # create dependency that is safe to delete (enums are not populated / re-established between tests) dataformat_data = {'value': 'kickme'} POST_and_assert_expected_response(self, BASE_URL + '/dataformat/', dataformat_data, 201, dataformat_data) - dataformat_url = BASE_URL + '/dataformat/kickme/' + dataformat_url = BASE_URL + '/dataformat/kickme' # POST new item and verify test_data = dict(dp_test_data) @@ -934,7 +934,7 @@ class AntennaSetTestCase(unittest.TestCase): GET_OK_and_assert_equal_expected_response(self, url, antennaset_test_data) test_patch = {"rcus": [11, 12, 13, 14, 15], - "station_type": BASE_URL + '/station_type/remote/'} + "station_type": BASE_URL + '/station_type/remote'} # PATCH item and verify PATCH_and_assert_expected_response(self, url, test_patch, 200, test_patch) @@ -959,7 +959,7 @@ class AntennaSetTestCase(unittest.TestCase): # create dependency that is safe to delete (enums are not populated / re-established between tests) dataformat_data = {'value': 'kickme'} POST_and_assert_expected_response(self, BASE_URL + '/station_type/', dataformat_data, 201, dataformat_data) - dataformat_url = BASE_URL + '/station_type/kickme/' + dataformat_url = BASE_URL + '/station_type/kickme' # POST new item and verify test_data = dict(antennaset_test_data) @@ -1362,7 +1362,7 @@ class DataproductHashTestCase(unittest.TestCase): url = r_dict['url'] GET_OK_and_assert_equal_expected_response(self, url, dph_test_data) - test_patch = {"algorithm": BASE_URL + '/algorithm/aes256/', + test_patch = {"algorithm": BASE_URL + '/algorithm/aes256', "hash": 'bender-was-here'} # PATCH item and verify diff --git a/SAS/TMSS/test/t_tmssapp_specification_REST_API.py b/SAS/TMSS/test/t_tmssapp_specification_REST_API.py index bc95e9ccebc694054c9bdc87772d8b5aab58e0bb..6d922605dbb7a553227bd142e508d731bf620b47 100755 --- a/SAS/TMSS/test/t_tmssapp_specification_REST_API.py +++ b/SAS/TMSS/test/t_tmssapp_specification_REST_API.py @@ -22,10 +22,10 @@ # This functional test talks to the API like a regular user would. # It is supposed to cover all REST http methods for all ViewSets. -# todo: I am still a bit under the impression that we re-test Django functionality that we can expect to just work -# todo: with some of these tests. On the other hand a lot of these provide us a nice basis for differentiating out -# todo: behavior in a controlled way. -# todo: We should probably also fully test behavior wrt mandatory and nullable fields. +# I am still a bit under the impression that we re-test Django functionality that we can expect to just work +# with some of these tests. On the other hand a lot of these provide us a nice basis for differentiating out +# behavior in a controlled way. +# We should probably also fully test behavior wrt mandatory and nullable fields. from datetime import datetime import unittest @@ -125,8 +125,8 @@ class GeneratorTemplateTestCase(unittest.TestCase): test_data_2 = GeneratorTemplate_test_data("test_generator_template_2") id1 = models.GeneratorTemplate.objects.create(**test_data_1).id id2 = models.GeneratorTemplate.objects.create(**test_data_2).id - GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/generator_template/' + str(id1), test_data_1) - GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/generator_template/' + str(id2), test_data_2) + GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/generator_template/' + str(id1) + '/', test_data_1) + GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/generator_template/' + str(id2) + '/', test_data_2) class SchedulingUnitTemplateTestCase(unittest.TestCase): @@ -197,8 +197,8 @@ class SchedulingUnitTemplateTestCase(unittest.TestCase): test_data_2 = SchedulingUnitTemplate_test_data("scheduling_unit_template_2") id1 = models.SchedulingUnitTemplate.objects.create(**test_data_1).id id2 = models.SchedulingUnitTemplate.objects.create(**test_data_2).id - GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/scheduling_unit_template/' + str(id1), test_data_1) - GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/scheduling_unit_template/' + str(id2), test_data_2) + GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/scheduling_unit_template/' + str(id1) + '/', test_data_1) + GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/scheduling_unit_template/' + str(id2) + '/', test_data_2) class TaskTemplateTestCase(unittest.TestCase): @@ -216,7 +216,7 @@ class TaskTemplateTestCase(unittest.TestCase): test_data = test_data_creator.TaskTemplate() r_dict = POST_and_assert_expected_response(self, BASE_URL + '/task_template/', test_data, 201, test_data) url = r_dict['url'] - GET_OK_and_assert_equal_expected_response(self, url + '?format=json', test_data) + GET_OK_and_assert_equal_expected_response(self, url, test_data) def test_task_template_PUT_invalid_raises_error(self): test_data = test_data_creator.TaskTemplate() @@ -266,8 +266,29 @@ class TaskTemplateTestCase(unittest.TestCase): test_data_2 = TaskTemplate_test_data("task_template_2") id1 = models.TaskTemplate.objects.create(**test_data_1).id id2 = models.TaskTemplate.objects.create(**test_data_2).id - GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/task_template/' + str(id1), test_data_1) - GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/task_template/' + str(id2), test_data_2) + GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/task_template/' + str(id1) + '/', test_data_1) + GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/task_template/' + str(id2) + '/', test_data_2) + + def test_task_template_PROTECT_behavior_on_type_choice_deleted(self): + st_test_data = test_data_creator.TaskTemplate() + + # create dependency that is safe to delete (enums are not populated / re-established between tests) + type_data = {'value': 'kickme'} + POST_and_assert_expected_response(self, BASE_URL + '/task_type/', type_data, 201, type_data) + type_url = BASE_URL + '/task_type/kickme' + + # POST new item and verify + test_data = dict(st_test_data) + test_data['type'] = type_url + url = POST_and_assert_expected_response(self, BASE_URL + '/task_template/', test_data, 201, test_data)['url'] + GET_OK_and_assert_equal_expected_response(self, url, test_data) + + # Try to DELETE dependency, verify that was not successful + # Unfortunately we don't get a nice error in json, but a Django debug page on error 500... + response = requests.delete(type_url, auth=AUTH) + self.assertEqual(500, response.status_code) + self.assertTrue("ProtectedError" in str(response.content)) + GET_OK_and_assert_equal_expected_response(self, type_url, type_data) class TaskRelationSelectionTemplateTestCase(unittest.TestCase): @@ -339,8 +360,8 @@ class TaskRelationSelectionTemplateTestCase(unittest.TestCase): test_data_2 = TaskRelationSelectionTemplate_test_data("task_relation_selection_template_2") id1 = models.TaskRelationSelectionTemplate.objects.create(**test_data_1).id id2 = models.TaskRelationSelectionTemplate.objects.create(**test_data_2).id - GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/task_relation_selection_template/' + str(id1), test_data_1) - GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/task_relation_selection_template/' + str(id2), test_data_2) + GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/task_relation_selection_template/' + str(id1) + '/', test_data_1) + GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/task_relation_selection_template/' + str(id2) + '/', test_data_2) class TaskConnectorTestCase(unittest.TestCase): @@ -440,9 +461,9 @@ class TaskConnectorTestCase(unittest.TestCase): url = r_dict['url'] GET_OK_and_assert_equal_expected_response(self, url, tc_test_data) - test_patch = {"role": BASE_URL + '/role/calibrator/', - "dataformats": [BASE_URL + '/dataformat/Beamformed/', - BASE_URL + '/dataformat/MeasurementSet/']} + test_patch = {"role": BASE_URL + '/role/calibrator', + "dataformats": [BASE_URL + '/dataformat/Beamformed', + BASE_URL + '/dataformat/MeasurementSet']} # PATCH item and verify PATCH_and_assert_expected_response(self, url, test_patch, 200, test_patch) @@ -491,8 +512,8 @@ class TaskConnectorTestCase(unittest.TestCase): test_data_2 = TaskConnectorType_test_data() id1 = models.TaskConnectorType.objects.create(**test_data_1).id id2 = models.TaskConnectorType.objects.create(**test_data_2).id - GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/task_connector_type/' + str(id1), test_data_1) - GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/task_connector_type/' + str(id2), test_data_2) + GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/task_connector_type/' + str(id1) + '/', test_data_1) + GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/task_connector_type/' + str(id2) + '/', test_data_2) class DefaultTemplates(unittest.TestCase): @@ -688,8 +709,8 @@ class CycleTestCase(unittest.TestCase): test_data_2 = Cycle_test_data() id1 = models.Cycle.objects.create(**test_data_1).name # name is pk id2 = models.Cycle.objects.create(**test_data_2).name # name is pk - GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/cycle/' + str(id1), test_data_1) - GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/cycle/' + str(id2), test_data_2) + GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/cycle/' + str(id1) + '/', test_data_1) + GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/cycle/' + str(id2) + '/', test_data_2) def test_cycle_contains_list_of_releated_projects(self): @@ -704,7 +725,7 @@ class CycleTestCase(unittest.TestCase): project2 = models.Project.objects.create(**project_test_data_2) project2.cycles.set([cycle]) project2.save() - response_data = GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/cycle/' + cycle.name, cycle_test_data_1) + response_data = GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/cycle/' + cycle.name + '/', cycle_test_data_1) assertUrlList(self, response_data['projects'], [project1, project2]) @@ -822,8 +843,8 @@ class ProjectTestCase(unittest.TestCase): test_data_2 = Project_test_data() id1 = models.Project.objects.create(**test_data_1).name # name is pk id2 = models.Project.objects.create(**test_data_2).name - GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/project/' + str(id1), test_data_1) - GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/project/' + str(id2), test_data_2) + GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/project/' + str(id1) + '/', test_data_1) + GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/project/' + str(id2) + '/', test_data_2) def test_nested_projects_are_filtered_according_to_cycle(self): @@ -1053,8 +1074,8 @@ class SchedulingSetTestCase(unittest.TestCase): test_data_2 = SchedulingSet_test_data() id1 = models.SchedulingSet.objects.create(**test_data_1).id id2 = models.SchedulingSet.objects.create(**test_data_2).id - GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/scheduling_set/' + str(id1), test_data_1) - GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/scheduling_set/' + str(id2), test_data_2) + GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/scheduling_set/' + str(id1) + '/', test_data_1) + GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/scheduling_set/' + str(id2) + '/', test_data_2) def test_SchedulingSet_contains_list_of_releated_SchedulingUnitDraft(self): @@ -1066,7 +1087,7 @@ class SchedulingSetTestCase(unittest.TestCase): scheduling_unit_draft_2 = models.SchedulingUnitDraft.objects.create(**SchedulingUnitDraft_test_data("scheduler draft one")) scheduling_unit_draft_2.scheduling_set = scheduling_set scheduling_unit_draft_2.save() - response_data = GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/scheduling_set/%d' % scheduling_set.id, test_data_1) + response_data = GET_OK_and_assert_equal_expected_response(self, BASE_URL + '/scheduling_set/%d/' % scheduling_set.id, test_data_1) assertUrlList(self, response_data['scheduling_unit_drafts'], [scheduling_unit_draft_1, scheduling_unit_draft_2]) @@ -1119,7 +1140,7 @@ class SchedulingUnitDraftTestCase(unittest.TestCase): GET_OK_and_assert_equal_expected_response(self, url, schedulingunitdraft_test_data) test_patch = {"description": "This is a new and improved description", - "requirements_doc": '{"para": "meter"}'} + "requirements_doc": '{"foo": "barbar"}'} # PATCH item and verify PATCH_and_assert_expected_response(self, url, test_patch, 200, test_patch) diff --git a/SAS/TMSS/test/t_tmssapp_specification_permissions.py b/SAS/TMSS/test/t_tmssapp_specification_permissions.py index 0e8ebd686bd17a53a0746993d73ec7e4127604d6..ad0576a81665b650b63245a3a2f5faff396299fd 100755 --- a/SAS/TMSS/test/t_tmssapp_specification_permissions.py +++ b/SAS/TMSS/test/t_tmssapp_specification_permissions.py @@ -42,7 +42,7 @@ class CyclePermissionTestCase(unittest.TestCase): @classmethod def setUpClass(cls): cls.test_data_creator = TMSSRESTTestDataCreator(BASE_URL, requests.auth.HTTPBasicAuth('paulus', 'pauluspass')) - response = requests.get(cls.test_data_creator.django_api_url, auth=cls.test_data_creator.auth) + response = requests.get(cls.test_data_creator.django_api_url + '/', auth=cls.test_data_creator.auth) cls.support_group = Group.objects.create(name='support') cls.support_group.permissions.add(Permission.objects.get(codename='add_cycle')) diff --git a/SAS/TMSS/test/test_utils.py b/SAS/TMSS/test/test_utils.py index 0a6297162e0c4f2a32b79bcad60f1fe4f8008aca..0a7a2eec0cffed6b6fe808d5f5514558f7ac38f5 100644 --- a/SAS/TMSS/test/test_utils.py +++ b/SAS/TMSS/test/test_utils.py @@ -21,6 +21,7 @@ import os import time +import datetime from multiprocessing import Process, Event import django @@ -53,9 +54,13 @@ def assertDataWithUrls(self, data, expected): err_msg = "The value '%s' (key is %s) is not in expected %s" % (str(v), str(data[k]), k) self.assertTrue(str(v) in data[k], err_msg) + elif isinstance(v, datetime.datetime): + # URL (data[k]) is string but the test_data object (v) is datetime format, convert latter to string format to compare + self.assertEqual(v.isoformat(), data[k]) else: self.assertEqual(v, data[k]) + def assertUrlList(self, url_list, expected_objects): """ object instances get returned as urls, check that the expected projects are in that list @@ -136,12 +141,12 @@ class TMSSDjangoServerInstance(): @property def url(self): ''':returns the http url to the django server''' - return "http://%s/api" % self.address + return "http://%s/api/" % self.address @property def oidc_url(self): ''':returns the http url to the django server''' - return "http://%s/oidc" % self.address + return "http://%s/oidc/" % self.address @property def database_dbcreds_id(self) -> str: @@ -263,6 +268,10 @@ class TMSSTestEnvironment: broker=broker) self.client_credentials = TemporaryCredentials(user=self.ldap_server.dbcreds.user, password=self.ldap_server.dbcreds.password) + # Check for correct Django version, should be at least 3.0 + if django.VERSION[0] < 3: + print("\nWARNING: YOU ARE USING DJANGO VERSION '%s', WHICH WILL NOT SUPPORT ALL FEATURES IN TMSS!\n" % + django.get_version()) def start(self): self.ldap_server.start() @@ -356,7 +365,8 @@ def main_test_environment(): from lofar.sas.tmss.client.populate import populate_schemas populate_schemas() - from lofar.sas.tmss.tmss.tmssapp.populate import populate_test_data + from lofar.sas.tmss.tmss.tmssapp.populate import populate_test_data, populate_connectors + populate_connectors() populate_test_data() # print some nice info for the user to use the test servers... @@ -385,4 +395,4 @@ def main_test_environment(): if __name__ == '__main__': - main_test_environment() \ No newline at end of file + main_test_environment() diff --git a/SAS/TMSS/test/tmss_test_data_django_models.py b/SAS/TMSS/test/tmss_test_data_django_models.py index a717f4ea8a947e87fa950fd69746eb96535f2f4b..8caab1fae3c438cdda8a9b39ba2339faaef18411 100644 --- a/SAS/TMSS/test/tmss_test_data_django_models.py +++ b/SAS/TMSS/test/tmss_test_data_django_models.py @@ -30,7 +30,7 @@ which is automatically destroyed at the end of the unittest session. from lofar.sas.tmss.tmss.tmssapp import models from lofar.sas.tmss.tmss.tmssapp.validation import get_default_json_object_for_schema -from datetime import datetime +from datetime import datetime, timedelta import uuid import json @@ -50,26 +50,54 @@ def DefaultGeneratorTemplate_test_data(name=None, template=None) -> dict: 'template': template, 'tags':[]} -def SchedulingUnitTemplate_test_data(name="my_SchedulingUnitTemplate", version:str=None) -> dict: +def SchedulingUnitTemplate_test_data(name="my_SchedulingUnitTemplate", version:str=None, schema:dict=None) -> dict: if version is None: version = str(uuid.uuid4()) + if schema is None: + schema = { "$schema": "https://json-schema.org/draft/2019-09/schema", + "type": "object", + "properties": { "foo" : { "type": "string", "default": "bar" } }, + "required": ["foo"], + "default": {} + } + return {"name": name, "description": 'My SchedulingUnitTemplate description', "version": version, - "schema": {"mykey": "my value"}, + "schema": schema, + "tags": ["TMSS", "TESTING"]} + +def SchedulingUnitObservingStrategyTemplate_test_data(name="my_SchedulingUnitObservingStrategyTemplate", version:str=None, + scheduling_unit_template:models.SchedulingUnitTemplate=None, + template:dict=None) -> dict: + if version is None: + version = str(uuid.uuid4()) + + if scheduling_unit_template is None: + scheduling_unit_template = models.SchedulingUnitTemplate.objects.create(**SchedulingUnitTemplate_test_data()) + + if template is None: + template = get_default_json_object_for_schema(scheduling_unit_template.schema) + + return {"name": name, + "description": 'My SchedulingUnitTemplate description', + "version": version, + "template": template, + "scheduling_unit_template": scheduling_unit_template, "tags": ["TMSS", "TESTING"]} def TaskTemplate_test_data(name="my TaskTemplate", version:str=None) -> dict: if version is None: version = str(uuid.uuid4()) - return {"validation_code_js":"", - "name": name, - "description": 'My TaskTemplate description', - "version": version, - "schema": {"mykey": "my value"}, - "tags": ["TMSS", "TESTING"]} + return {"type": models.TaskType.objects.get(value='observation'), + "validation_code_js":"", + "name": name, + "description": 'My TaskTemplate description', + "version": version, + "schema": {"mykey": "my value"}, + "tags": ["TMSS", "TESTING"]} def TaskRelationSelectionTemplate_test_data(name="my_TaskRelationSelectionTemplate", version:str=None) -> dict: if version is None: @@ -134,7 +162,9 @@ def SchedulingSet_test_data(name="my_scheduling_set", project: models.Project=No "generator_template": models.GeneratorTemplate.objects.create(**GeneratorTemplate_test_data()), "generator_source": None} -def SchedulingUnitDraft_test_data(name="my_scheduling_unit_draft", scheduling_set: models.SchedulingSet=None, template: models.SchedulingUnitTemplate=None, requirements_doc: dict=None) -> dict: +def SchedulingUnitDraft_test_data(name="my_scheduling_unit_draft", scheduling_set: models.SchedulingSet=None, + template: models.SchedulingUnitTemplate=None, requirements_doc: dict=None, + observation_strategy_template: models.SchedulingUnitObservingStrategyTemplate=None) -> dict: if scheduling_set is None: scheduling_set = models.SchedulingSet.objects.create(**SchedulingSet_test_data()) @@ -144,6 +174,9 @@ def SchedulingUnitDraft_test_data(name="my_scheduling_unit_draft", scheduling_se if requirements_doc is None: requirements_doc = get_default_json_object_for_schema(template.schema) + if observation_strategy_template is None: + observation_strategy_template = models.SchedulingUnitObservingStrategyTemplate.objects.create(**SchedulingUnitObservingStrategyTemplate_test_data()) + return {"name": name, "description": "", "tags": [], @@ -152,7 +185,8 @@ def SchedulingUnitDraft_test_data(name="my_scheduling_unit_draft", scheduling_se "generator_instance_doc": "para", "copies": None, "scheduling_set": scheduling_set, - "requirements_template": template } + "requirements_template": template, + "observation_strategy_template": observation_strategy_template } def TaskDraft_test_data(name: str="my_task_draft", specifications_template: models.TaskTemplate=None, specifications_doc: dict=None, scheduling_unit_draft: models.SchedulingUnitDraft=None) -> dict: if specifications_template is None: @@ -326,11 +360,12 @@ def Subtask_test_data(task_blueprint: models.TaskBlueprint=None, subtask_templat if specifications_doc is None: specifications_doc = get_default_json_object_for_schema(subtask_template.schema) + # Type need to be a datetime object not a str so do not add .isoformat() if start_time is None: - start_time = datetime.utcnow().isoformat() + start_time = datetime.utcnow() if stop_time is None: - stop_time = datetime.utcnow().isoformat() + stop_time = datetime.utcnow() + timedelta(minutes=10) if cluster is None: cluster = models.Cluster.objects.create(name="dummy cluster", location="downstairs", tags=[]) @@ -345,7 +380,7 @@ def Subtask_test_data(task_blueprint: models.TaskBlueprint=None, subtask_templat "task_blueprint": task_blueprint, "specifications_template": subtask_template, "tags": ["TMSS", "TESTING"], - "do_cancel": datetime.utcnow().isoformat(), + "do_cancel": datetime.utcnow(), "priority": 1, "schedule_method": models.ScheduleMethod.objects.get(value='manual'), "cluster": cluster} diff --git a/SAS/TMSS/test/tmss_test_data_rest.py b/SAS/TMSS/test/tmss_test_data_rest.py index b34a5105e636603f0482c59240e2d53eea8b65ae..d919fbbcc46cddd25b80ccc6e091b43802775c64 100644 --- a/SAS/TMSS/test/tmss_test_data_rest.py +++ b/SAS/TMSS/test/tmss_test_data_rest.py @@ -25,11 +25,13 @@ from datetime import datetime import uuid import requests import json -from lofar.sas.tmss.tmss.tmssapp.validation import get_default_json_object_for_schema +from lofar.common.json_utils import get_default_json_object_for_schema +from http import HTTPStatus class TMSSRESTTestDataCreator(): def __init__(self, django_api_url: str, auth: requests.auth.HTTPBasicAuth): - self.django_api_url = django_api_url + self.django_api_url = django_api_url[:-1] if django_api_url.endswith('/') else django_api_url + self.auth = auth def get_response_as_json_object(self, url): @@ -42,7 +44,10 @@ class TMSSRESTTestDataCreator(): def post_data_and_get_response_as_json_object(self, data, url_postfix): """POST the given data the self.django_api_url+url_postfix, and return the response""" - return json.loads(self.post_data_and_get_response(data, url_postfix).content.decode('utf-8')) + response = self.post_data_and_get_response(data, url_postfix) + if response.status_code == HTTPStatus.CREATED: + return json.loads(response.content.decode('utf-8')) + raise Exception("Error during POST request of '%s' status=%s content: %s" % (url_postfix, response.status_code, response.content.decode('utf-8'))) def post_data_and_get_url(self, data, url_postfix): """POST the given data the self.django_api_url+url_postfix, and return the response's url""" @@ -71,25 +76,57 @@ class TMSSRESTTestDataCreator(): "create_function": 'Funky', "tags": ["TMSS", "TESTING"]} - def SchedulingUnitTemplate(self, name="schedulingunittemplate1", version:str=None) -> dict: + def SchedulingUnitTemplate(self, name="schedulingunittemplate1", version:str=None, schema:dict=None) -> dict: if version is None: version = str(uuid.uuid4()) + if schema is None: + schema = {"$schema": "https://json-schema.org/draft/2019-09/schema", + "type": "object", + "properties": {"foo": {"type": "string", "default": "bar"}}, + "required": ["foo"], + "default": {} + } + return { "name": name, "description": 'My description', "version": version, - "schema": {"mykey": "my value"}, + "schema": schema, "tags": ["TMSS", "TESTING"]} - - def TaskTemplate(self, name="tasktemplate1", version:str=None) -> dict: + + def SchedulingUnitObservingStrategyTemplate(self, name="my_SchedulingUnitObservingStrategyTemplate", version:str=None, + scheduling_unit_template_url=None, + template:dict=None) -> dict: if version is None: version = str(uuid.uuid4()) + if scheduling_unit_template_url is None: + scheduling_unit_template_url = self.post_data_and_get_url(self.SchedulingUnitTemplate(), '/scheduling_unit_template/') + + if template is None: + scheduling_unit_template = self.get_response_as_json_object(scheduling_unit_template_url) + template = get_default_json_object_for_schema(scheduling_unit_template['schema']) + + return {"name": name, + "description": 'My SchedulingUnitTemplate description', + "version": version, + "template": template, + "scheduling_unit_template": scheduling_unit_template_url, + "tags": ["TMSS", "TESTING"]} + + def TaskTemplate(self, name="tasktemplate1", task_type_url: str = None, version: str = None) -> dict: + if version is None: + version = str(uuid.uuid4()) + + if task_type_url is None: + task_type_url = self.django_api_url + '/task_type/observation' + return {"name": name, "description": 'My one observation', "version": version, "schema": {"mykey": "my value"}, "tags": ["TMSS", "TESTING"], + "type": task_type_url, "validation_code_js": "???"} def TaskRelationSelectionTemplate(self, name="taskrelationselectiontemplate1", version:str=None) -> dict: @@ -109,9 +146,9 @@ class TMSSRESTTestDataCreator(): if output_of_url is None: output_of_url = self.post_data_and_get_url(self.TaskTemplate(), '/task_template/') - return {"role": self.django_api_url + '/role/%s/'%role, - "datatype": self.django_api_url + '/datatype/image/', - "dataformats": [self.django_api_url + '/dataformat/Beamformed/'], + return {"role": self.django_api_url + '/role/%s'%role, + "datatype": self.django_api_url + '/datatype/image', + "dataformats": [self.django_api_url + '/dataformat/Beamformed'], "output_of": output_of_url, "input_of": input_of_url, "tags": []} @@ -146,7 +183,7 @@ class TMSSRESTTestDataCreator(): "tags": [], "description": description, "name": 'my_resource_type_' + str(uuid.uuid4()), - "quantity": self.django_api_url + '/quantity/number/' + "quantity": self.django_api_url + '/quantity/number' } @@ -180,7 +217,7 @@ class TMSSRESTTestDataCreator(): "generator_source": None, "scheduling_unit_drafts": []} - def SchedulingUnitDraft(self, name="my_scheduling_unit_draft", scheduling_set_url=None, template_url=None, requirements_doc=None): + def SchedulingUnitDraft(self, name="my_scheduling_unit_draft", scheduling_set_url=None, template_url=None, requirements_doc=None, observation_strategy_template_url=None): if scheduling_set_url is None: scheduling_set_url = self.post_data_and_get_url(self.SchedulingSet(), '/scheduling_set/') @@ -191,15 +228,19 @@ class TMSSRESTTestDataCreator(): scheduling_unit_template = self.get_response_as_json_object(template_url) requirements_doc = get_default_json_object_for_schema(scheduling_unit_template['schema']) + # if observation_strategy_template_url is None: + # observation_strategy_template_url = self.post_data_and_get_url(self.SchedulingUnitObservingStrategyTemplate(scheduling_unit_template_url=template_url), '/scheduling_unit_observing_strategy_template/') + return {"name": name, "description": "This is my run draft", "tags": [], "requirements_doc": requirements_doc, - "copy_reason": self.django_api_url + '/copy_reason/template/', + "copy_reason": self.django_api_url + '/copy_reason/template', "generator_instance_doc": "{}", "copies": None, "scheduling_set": scheduling_set_url, "requirements_template": template_url, + "observation_strategy_template": observation_strategy_template_url, "scheduling_unit_blueprints": [], "task_drafts": []} @@ -214,7 +255,7 @@ class TMSSRESTTestDataCreator(): "description": "This is my task draft", "tags": [], "specifications_doc": "{}", - "copy_reason": self.django_api_url + '/copy_reason/template/', + "copy_reason": self.django_api_url + '/copy_reason/template', "copies": None, "scheduling_unit_draft": scheduling_unit_draft_url, "specifications_template": template_url, @@ -243,7 +284,7 @@ class TMSSRESTTestDataCreator(): return {"tags": [], "selection_doc": "{}", - "dataformat": self.django_api_url + "/dataformat/Beamformed/", + "dataformat": self.django_api_url + "/dataformat/Beamformed", "producer": producer_url, "consumer": consumer_url, "input_role": input_role_url, @@ -251,17 +292,21 @@ class TMSSRESTTestDataCreator(): "selection_template": template_url, 'related_task_relation_blueprint': []} - def SchedulingUnitBlueprint(self, name="my_scheduling_unit_blueprint", scheduling_unit_draft_url=None, template_url=None): - if scheduling_unit_draft_url is None: - scheduling_unit_draft_url = self.post_data_and_get_url(self.SchedulingUnitDraft(), '/scheduling_unit_draft/') - + def SchedulingUnitBlueprint(self, name="my_scheduling_unit_blueprint", scheduling_unit_draft_url=None, template_url=None, requirements_doc:dict=None): if template_url is None: template_url = self.post_data_and_get_url(self.SchedulingUnitTemplate(), '/scheduling_unit_template/') - + + if scheduling_unit_draft_url is None: + scheduling_unit_draft_url = self.post_data_and_get_url(self.SchedulingUnitDraft(template_url=template_url), '/scheduling_unit_draft/') + + if requirements_doc is None: + scheduling_unit_template = self.get_response_as_json_object(template_url) + requirements_doc = get_default_json_object_for_schema(scheduling_unit_template['schema']) + return {"name": name, "description": "This is my run blueprint", "tags": [], - "requirements_doc": "{}", + "requirements_doc": requirements_doc, "do_cancel": False, "draft": scheduling_unit_draft_url, "requirements_template": template_url, @@ -314,7 +359,7 @@ class TMSSRESTTestDataCreator(): # test data return {"tags": [], "selection_doc": "{}", - "dataformat": self.django_api_url + '/dataformat/MeasurementSet/', + "dataformat": self.django_api_url + '/dataformat/MeasurementSet', "input_role": input_role_url, "output_role": output_role_url, "draft": draft_url, @@ -330,7 +375,7 @@ class TMSSRESTTestDataCreator(): schema = {} if subtask_type_url is None: - subtask_type_url = self.django_api_url + '/subtask_type/observation/' + subtask_type_url = self.django_api_url + '/subtask_type/observation' return {"type": subtask_type_url, "name": name, @@ -352,7 +397,7 @@ class TMSSRESTTestDataCreator(): return {"tags": [], "first": first_url, "second": second_url, - "placement": self.django_api_url + '/scheduling_relation_placement/%s/'%placement, + "placement": self.django_api_url + '/scheduling_relation_placement/%s'%placement, "time_offset":60} def TaskSchedulingRelationDraft(self, first_url=None, second_url=None, placement="after"): @@ -364,7 +409,7 @@ class TMSSRESTTestDataCreator(): return {"tags": [], "first": first_url, "second": second_url, - "placement": self.django_api_url + '/scheduling_relation_placement/%s/'%placement, + "placement": self.django_api_url + '/scheduling_relation_placement/%s'%placement, "time_offset":60} def DataproductSpecificationsTemplate(self, name="my_DataproductSpecificationsTemplate", version:str=None) -> dict: @@ -405,9 +450,9 @@ class TMSSRESTTestDataCreator(): if cluster_url is None: cluster_url = self.post_data_and_get_url(self.Cluster(), '/cluster/') - if task_blueprint_url is None: - task_blueprint = self.TaskBlueprint() - task_blueprint_url = self.post_data_and_get_url(task_blueprint, '/task_blueprint/') + # if task_blueprint_url is None: + # task_blueprint = self.TaskBlueprint() + # task_blueprint_url = self.post_data_and_get_url(task_blueprint, '/task_blueprint/') if specifications_template_url is None: specifications_template_url = self.post_data_and_get_url(self.SubtaskTemplate(), '/subtask_template/') @@ -417,14 +462,14 @@ class TMSSRESTTestDataCreator(): return {"start_time": datetime.utcnow().isoformat(), "stop_time": datetime.utcnow().isoformat(), - "state": self.django_api_url + '/subtask_state/%s/' % (state,), + "state": self.django_api_url + '/subtask_state/%s' % (state,), "specifications_doc": specifications_doc, "task_blueprint": task_blueprint_url, "specifications_template": specifications_template_url, "tags": ["TMSS", "TESTING"], "do_cancel": datetime.utcnow().isoformat(), "priority": 1, - "schedule_method": self.django_api_url + '/schedule_method/manual/', + "schedule_method": self.django_api_url + '/schedule_method/manual', "cluster": cluster_url} def SubtaskOutput(self, subtask_url=None): @@ -447,7 +492,7 @@ class TMSSRESTTestDataCreator(): return {"filename": filename, "directory": directory, - "dataformat": "%s/dataformat/%s/" % (self.django_api_url, dataformat), + "dataformat": "%s/dataformat/%s" % (self.django_api_url, dataformat), "deleted_since": None, "pinned_since": None, "specifications_doc": "{}", @@ -464,7 +509,7 @@ class TMSSRESTTestDataCreator(): def AntennaSet(self, name="antennaset1"): return {"name": name, "description": 'My one observation', - "station_type": self.django_api_url + '/station_type/core/', + "station_type": self.django_api_url + '/station_type/core', "rcus": [1,2,3,4,5], "inputs": ['input1', 'input2'], "tags": ['tmss', 'testing']} @@ -483,7 +528,7 @@ class TMSSRESTTestDataCreator(): def DataproductHash(self, algorithm_url=None, hash="my_hash", dataproduct_url=None): if algorithm_url is None: - algorithm_url = self.django_api_url + '/algorithm/md5/' + algorithm_url = self.django_api_url + '/algorithm/md5' if dataproduct_url is None: dataproduct_url = self.post_data_and_get_url(self.Dataproduct(), '/dataproduct/') diff --git a/SAS/TMSS/test/tmss_test_environment_unittest_setup.py b/SAS/TMSS/test/tmss_test_environment_unittest_setup.py index 98375bb80e3b66b19320ef3c129d4757f1bbc7b6..6dc906b94d38860d3bacf11393ea58a5e006a1d4 100644 --- a/SAS/TMSS/test/tmss_test_environment_unittest_setup.py +++ b/SAS/TMSS/test/tmss_test_environment_unittest_setup.py @@ -46,9 +46,10 @@ def tearDownModule(): import json import requests +import datetime AUTH = requests.auth.HTTPBasicAuth(tmss_test_env.ldap_server.dbcreds.user, tmss_test_env.ldap_server.dbcreds.password) -BASE_URL = tmss_test_env.django_server.url -OIDC_URL = tmss_test_env.django_server.oidc_url +BASE_URL = tmss_test_env.django_server.url[:-1] if tmss_test_env.django_server.url.endswith('/') else tmss_test_env.django_server.url +OIDC_URL = tmss_test_env.django_server.oidc_url[:-1] if tmss_test_env.django_server.oidc_url.endswith('/') else tmss_test_env.django_server.oidc_url from lofar.sas.tmss.test.test_utils import assertDataWithUrls import lofar.sas.tmss.tmss.settings as TMSS_SETTINGS @@ -91,7 +92,11 @@ def _call_API_and_assert_expected_response(test_instance, url, call, data, expec test_instance.assertTrue(str(value) in r_dict[key]) elif type(value) is list: test_instance.assertEqual(sorted(value), sorted(r_dict[key]), msg="lists differ for key=%s"%key) # compare lists independent of ordering + elif isinstance(value, datetime.datetime): + # URL (r_dict[key]) is string but the test_data object (value) is datetime format, convert latter to string format to compare + test_instance.assertEqual(value.isoformat(), r_dict[key]) else: + test_instance.assertEqual(value, r_dict[key]) return r_dict diff --git a/SAS/TriggerEmailService/Server/bin/TriggerEmailService b/SAS/TriggerEmailService/Server/bin/TriggerEmailService old mode 100755 new mode 100644 diff --git a/SAS/TriggerEmailService/Server/test/t_TriggerEmailService.py b/SAS/TriggerEmailService/Server/test/t_TriggerEmailService.py old mode 100755 new mode 100644