Source code for cngi._utils._specials

#  CASA Next Generation Infrastructure
#  Copyright (C) 2021 AUI, Inc. Washington DC, USA
#
#  This program 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.
#
#  This program 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 this program.  If not, see <https://www.gnu.org/licenses/>.

#################################
# Helper File
#
# Not exposed in API
#
#################################

""" Describe anything in the standard ngCASA dataset format that needs special treatment.

General rules, to which this file provides exceptions:
1. Attributes are fleeting. Any cngi/ngcasa function should expect any attribute to be overwritten at any time."""

import copy

[docs]class specials: """ Don't access these variables directly. Use one of the associated functions instead in order to avoid accidentally changing these variables. """ _attributes = { 'ddi': { 'desc': 'Data Description Identifier for a dataset. Should be unique to each dataset. Can be a number or a string.'
}, # 'units': {}, # 'topo': {} }
[docs]def attrs(): """ Retrieves a copy of the attribute names that require special treatment and should not be overwritten without careful consideration. """ return copy.deepcopy(specials._attributes)