diff --git a/CMakeLists.txt b/CMakeLists.txt index 6da73e3bf..7e1d52963 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -418,7 +418,7 @@ ecbuild_dont_pack( DIRS concepts tests.ecmwf doxygen confluence examples.dev templates parameters java perl config m4 rpms gaussian_experimental gribex examples/F77 examples/extra examples/deprecated bamboo fortran/fortranCtypes tigge/tools - share/eccodes .settings python3 ) + share/eccodes .settings ) #ecbuild_dont_pack( DIRS data/bufr DONT_PACK_REGEX "*.bufr" ) #ecbuild_dont_pack( DIRS data/tigge DONT_PACK_REGEX "*.grib" ) diff --git a/examples/python/include.ctest.sh.in b/examples/python/include.ctest.sh.in index eef69671a..9d745450f 100644 --- a/examples/python/include.ctest.sh.in +++ b/examples/python/include.ctest.sh.in @@ -25,7 +25,7 @@ if [ $HAVE_MEMFS -eq 1 ]; then unset ECCODES_DEFINITION_PATH fi -PYTHONPATH=@PROJECT_BINARY_DIR@/@ECCODES_PYTHON_DIR@:$PYTHONPATH +PYTHONPATH=@PROJECT_BINARY_DIR@/python:$PYTHONPATH export PYTHONPATH echo "Current directory: `pwd`" diff --git a/python3/CMakeLists.txt b/python3/CMakeLists.txt deleted file mode 100644 index 33aa1f0c1..000000000 --- a/python3/CMakeLists.txt +++ /dev/null @@ -1,86 +0,0 @@ -if( HAVE_PYTHON ) - - #find_package( SWIG ) - #if( SWIG_FOUND ) - # include( ${SWIG_USE_FILE} ) - #endif() - - # preparing for generating setup.py - if( HAVE_LIBJASPER ) - get_filename_component(JASPER_DIR ${JASPER_INCLUDE_DIR} PATH ) - endif() - - if( HAVE_LIBOPENJPEG ) - # Get the name of the OpenJPEG library: version dependent! - # E.g. openjpeg (version 1.5) or openjp2 (version 2.x) - get_filename_component(OPENJPEG_LIB_DIR ${OPENJPEG_LIBRARY} PATH ) - get_filename_component(OJ_NAME_WE ${OPENJPEG_LIBRARY} NAME_WE ) - STRING(REGEX REPLACE "^lib" "" OJ_WITHOUT_LIB ${OJ_NAME_WE}) - endif() - - if( HAVE_AEC ) - get_filename_component(AEC_DIR ${AEC_INCLUDE_DIR} PATH ) - endif() - - configure_file( setup.py.in setup.py ) - - # compile swig interface - # set(CMAKE_SWIG_FLAGS "") - # set_source_files_properties( gribapi_swig.i PROPERTIES C ON ) - - # if( NUMPY_FOUND ) - # set( CMAKE_SWIG_FLAGS "-DNUMPY" ) - # include_directories( ${NUMPY_INCLUDE_DIRS} ) - # endif() - - ####### Do not invoke swig. Use our own generated C wrapper file ###### - set( _gribapi_swig "gribapi/_gribapi_swig${CMAKE_SHARED_LIBRARY_SUFFIX}" ) - # Build the extension module for use in build tree with RPATH pointing to the build tree - add_custom_command( OUTPUT ${_gribapi_swig} - COMMAND ${PYTHON_EXECUTABLE} setup.py build_ext --inplace --rpath ${CMAKE_BINARY_DIR}/lib - DEPENDS grib_interface.h grib_interface.c swig_wrap_numpy.c setup.py.in eccodes ) - add_custom_target(eccodes_build_swig_wrapper ALL DEPENDS ${_gribapi_swig}) - - #ecbuild_add_library(TARGET _gribapi_swig - # TYPE SHARED - # NOINSTALL - # SOURCES grib_interface.h grib_interface.c swig_wrap_numpy.c - # INCLUDES ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${PYTHON_INCLUDE_DIRS} - # LIBS eccodes ${PYTHON_LIBRARIES} ) - # Don't use the lib prefix. This is needed for the python case where a _modulename.so is generated - #set_target_properties(_gribapi_swig PROPERTIES PREFIX "") - - # Copy gribapi and eccodes python modules to build area - file( COPY eccodes gribapi DESTINATION . ) - configure_file( swig_wrap_numpy.py gribapi/gribapi_swig.py COPYONLY ) - - # Build the extension module for use in install tree with RPATH pointing to install tree - install(CODE "message(\"Building Python extension modules: -${PYTHON_EXECUTABLE} setup.py build_ext --rpath ${CMAKE_INSTALL_PREFIX}/${INSTALL_LIB_DIR}\") - execute_process(COMMAND ${PYTHON_EXECUTABLE} setup.py build_ext --rpath ${CMAKE_INSTALL_PREFIX}/${INSTALL_LIB_DIR} - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})") - - # Library installation directory override - if( NOT INSTALL_LIB_DIR STREQUAL lib ) - execute_process( COMMAND ${PYTHON_EXECUTABLE} -c "from __future__ import print_function; import sys; print(sys.version[:3], end='')" - OUTPUT_VARIABLE PYVER ) - set( __install_lib "--install-lib=${ECCODES_FULL_INSTALL_LIB_DIR}/python${PYVER}/site-packages" ) - endif() - - # Call distutils for installation - install(CODE "if( NOT \$ENV{DESTDIR} STREQUAL \"\" ) - set( __root \"--root=\$ENV{DESTDIR}\" ) - endif() - message(\"Installing Python modules: -${PYTHON_EXECUTABLE} setup.py install \${__root} - ${__install_lib} - --prefix=${CMAKE_INSTALL_PREFIX} - --record=${CMAKE_BINARY_DIR}/extra_install.txt\") - execute_process(COMMAND ${PYTHON_EXECUTABLE} setup.py install - \${__root} - --prefix=${CMAKE_INSTALL_PREFIX} - ${__install_lib} - --record=${CMAKE_BINARY_DIR}/extra_install.txt - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})") - -endif() diff --git a/python3/README.swig b/python3/README.swig deleted file mode 100644 index ebe9782d3..000000000 --- a/python3/README.swig +++ /dev/null @@ -1,5 +0,0 @@ - -# we use pre-generated files from SWIG - to recreate them use: - -swig -python -module gribapi_swig -o swig_wrap_numpy.c gribapi_swig.i -cp gribapi_swig.py swig_wrap_numpy.py diff --git a/python3/create_errors.py.sh b/python3/create_errors.py.sh deleted file mode 100755 index fd78090ea..000000000 --- a/python3/create_errors.py.sh +++ /dev/null @@ -1,111 +0,0 @@ -#!/usr/bin/env perl - -# This script is used to generate the file "python/gribapi/errors.py" -# It reads "src/grib_errors.c" which it expects to be up-to-date with -# all the error codes. - -$|=1; - -my $input = '../src/grib_errors.c'; -my $print_class = 1; -my %errmap = (); - -# Print header -# ------------------------------------- -my $header = <<'END_HEADER'; -""" -Exception class hierarchy -""" - -import gribapi_swig as _internal - - -class GribInternalError(Exception): - """ - @brief Wrap errors coming from the C API in a Python exception object. - - Base class for all exceptions - """ - - def __init__(self, value): - # Call the base class constructor with the parameters it needs - Exception.__init__(self, value) - if type(value) is int: - err, self.msg = _internal.grib_c_get_error_string(value, 1024) - assert err == 0 - else: - self.msg = value - - def __str__(self): - return self.msg - - -END_HEADER -print $header; - -# Print the exception classes -# ------------------------------------- -while (<>) { - # Example of input line - # "Passed array is too small", /* -6 GRIB_ARRAY_TOO_SMALL */ - if (/^"(.*)",\s+\/\* (.*) (.*) \*\//) { - $desc = $1; - $code = $2; - $name = $3; - next if ($code == 0); - - $name =~ s/GRIB_//; - $name_lc = $name; - $name_lc =~ s/_/ /g; - $name_lc = lc $name_lc; - $name_lc =~ s/(\w+)/\u$1/g; - $name_lc =~ s/ //g; - - $name = $name_lc; - if ($name !~ /Error$/) { - $name = $name . "Error"; - } - - $name = 'FunctionNotImplementedError' if ($name eq 'NotImplementedError'); - $name = 'MessageEndNotFoundError' if ($name eq '7777NotFoundError'); - $name = 'IOProblemError' if ($name eq 'IoProblemError'); - $name = 'MessageInvalidError' if ($name eq 'InvalidMessageError'); - $name = 'GeocalculusError' if ($name eq 'GeocalculusProblemError'); - $name = 'InvalidOrderByError' if ($name eq 'InvalidOrderbyError'); - $name = 'InvalidBitsPerValueError' if ($name eq 'InvalidBpvError'); - $name = 'KeyValueNotFoundError' if ($name eq 'NotFoundError'); - $name = 'MemoryAllocationError' if ($name eq 'OutOfMemoryError'); - - # Print the class declaration - print "class ${name}(GribInternalError):\n"; - print " \"\"\"${desc}.\"\"\"\n"; - - $errmap{$code} = $name; # store for later - } -} - -# Print the map -# ------------------------------------- -my $size = keys %errmap; -print "\nERROR_MAP = {\n"; -my $i = 0; -for $key (sort { $a <=> $b } keys %errmap) { - $i++; - my $ktext = sprintf("%-3d", $key); - print " $ktext : $errmap{$key}"; - print ",\n" if ($i < $size); -} -print "\n}\n\n"; - - -# Print footer -# ------------------------------------- -my $footer = <<'END_FOOTER'; - -def raise_grib_error(errid): - """ - Raise the GribInternalError corresponding to ``errid``. - """ - raise ERROR_MAP[errid](errid) -END_FOOTER -print $footer; diff --git a/python3/eccodes/__init__.py b/python3/eccodes/__init__.py deleted file mode 100644 index 42006b9f0..000000000 --- a/python3/eccodes/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -from __future__ import absolute_import -import sys - -from .eccodes import * -from .eccodes import __version__ - -if sys.version_info >= (2, 6): - from .high_level.gribfile import GribFile - from .high_level.gribmessage import GribMessage - from .high_level.gribindex import GribIndex - from .high_level.bufr import BufrFile, BufrMessage diff --git a/python3/eccodes/eccodes.py b/python3/eccodes/eccodes.py deleted file mode 100644 index 8146272f2..000000000 --- a/python3/eccodes/eccodes.py +++ /dev/null @@ -1,111 +0,0 @@ -from gribapi import __version__ - -from gribapi import GRIB_CHECK as CODES_CHECK - -from gribapi import CODES_PRODUCT_GRIB -from gribapi import CODES_PRODUCT_BUFR -from gribapi import CODES_PRODUCT_GTS -from gribapi import CODES_PRODUCT_ANY -from gribapi import GRIB_MISSING_DOUBLE as CODES_MISSING_DOUBLE -from gribapi import GRIB_MISSING_LONG as CODES_MISSING_LONG - -from gribapi import gts_new_from_file as codes_gts_new_from_file -from gribapi import metar_new_from_file as codes_metar_new_from_file -from gribapi import codes_new_from_file -from gribapi import any_new_from_file as codes_any_new_from_file -from gribapi import bufr_new_from_file as codes_bufr_new_from_file -from gribapi import grib_new_from_file as codes_grib_new_from_file -from gribapi import codes_close_file - -from gribapi import grib_count_in_file as codes_count_in_file -from gribapi import grib_multi_support_on as codes_grib_multi_support_on -from gribapi import grib_multi_support_off as codes_grib_multi_support_off -from gribapi import grib_release as codes_release -from gribapi import grib_get_string as codes_get_string -from gribapi import grib_set_string as codes_set_string -from gribapi import grib_gribex_mode_on as codes_gribex_mode_on -from gribapi import grib_gribex_mode_off as codes_gribex_mode_off -from gribapi import grib_write as codes_write -from gribapi import grib_multi_write as codes_grib_multi_write -from gribapi import grib_multi_append as codes_grib_multi_append -from gribapi import grib_get_size as codes_get_size -from gribapi import grib_get_string_length as codes_get_string_length -from gribapi import grib_skip_computed as codes_skip_computed -from gribapi import grib_skip_coded as codes_skip_coded -from gribapi import grib_skip_edition_specific as codes_skip_edition_specific -from gribapi import grib_skip_duplicates as codes_skip_duplicates -from gribapi import grib_skip_read_only as codes_skip_read_only -from gribapi import grib_skip_function as codes_skip_function -from gribapi import grib_iterator_new as codes_grib_iterator_new -from gribapi import grib_iterator_delete as codes_grib_iterator_delete -from gribapi import grib_iterator_next as codes_grib_iterator_next -from gribapi import grib_keys_iterator_new as codes_keys_iterator_new -from gribapi import grib_keys_iterator_next as codes_keys_iterator_next -from gribapi import grib_keys_iterator_delete as codes_keys_iterator_delete -from gribapi import grib_keys_iterator_get_name as codes_keys_iterator_get_name -from gribapi import grib_keys_iterator_rewind as codes_keys_iterator_rewind -from gribapi import codes_bufr_keys_iterator_new -from gribapi import codes_bufr_keys_iterator_next -from gribapi import codes_bufr_keys_iterator_delete -from gribapi import codes_bufr_keys_iterator_get_name -from gribapi import codes_bufr_keys_iterator_rewind -from gribapi import grib_get_long as codes_get_long -from gribapi import grib_get_double as codes_get_double -from gribapi import grib_set_long as codes_set_long -from gribapi import grib_set_double as codes_set_double -from gribapi import grib_new_from_samples as codes_grib_new_from_samples -from gribapi import codes_bufr_new_from_samples -from gribapi import codes_new_from_samples -from gribapi import codes_bufr_copy_data -from gribapi import grib_clone as codes_clone -from gribapi import grib_set_double_array as codes_set_double_array -from gribapi import grib_get_double_array as codes_get_double_array -from gribapi import grib_get_string_array as codes_get_string_array -from gribapi import grib_set_string_array as codes_set_string_array -from gribapi import grib_set_long_array as codes_set_long_array -from gribapi import grib_get_long_array as codes_get_long_array -from gribapi import grib_multi_new as codes_grib_multi_new -from gribapi import grib_multi_release as codes_grib_multi_release -from gribapi import grib_copy_namespace as codes_copy_namespace -from gribapi import grib_index_new_from_file as codes_index_new_from_file -from gribapi import grib_index_add_file as codes_index_add_file -from gribapi import grib_index_release as codes_index_release -from gribapi import grib_index_get_size as codes_index_get_size -from gribapi import grib_index_get_long as codes_index_get_long -from gribapi import grib_index_get_string as codes_index_get_string -from gribapi import grib_index_get_double as codes_index_get_double -from gribapi import grib_index_select_long as codes_index_select_long -from gribapi import grib_index_select_double as codes_index_select_double -from gribapi import grib_index_select_string as codes_index_select_string -from gribapi import grib_new_from_index as codes_new_from_index -from gribapi import grib_get_message_size as codes_get_message_size -from gribapi import grib_get_message_offset as codes_get_message_offset -from gribapi import grib_get_double_element as codes_get_double_element -from gribapi import grib_get_double_elements as codes_get_double_elements -from gribapi import grib_get_elements as codes_get_elements -from gribapi import grib_set_missing as codes_set_missing -from gribapi import grib_set_key_vals as codes_set_key_vals -from gribapi import grib_is_missing as codes_is_missing -from gribapi import grib_is_defined as codes_is_defined -from gribapi import grib_find_nearest as codes_grib_find_nearest -from gribapi import grib_get_native_type as codes_get_native_type -from gribapi import grib_get as codes_get -from gribapi import grib_get_array as codes_get_array -from gribapi import grib_get_values as codes_get_values -from gribapi import grib_set_values as codes_set_values -from gribapi import grib_set as codes_set -from gribapi import grib_set_array as codes_set_array -from gribapi import grib_index_get as codes_index_get -from gribapi import grib_index_select as codes_index_select -from gribapi import grib_index_write as codes_index_write -from gribapi import grib_index_read as codes_index_read -from gribapi import grib_no_fail_on_wrong_length as codes_no_fail_on_wrong_length -from gribapi import grib_gts_header as codes_gts_header -from gribapi import grib_get_api_version as codes_get_api_version -from gribapi import grib_get_message as codes_get_message -from gribapi import grib_new_from_message as codes_new_from_message -from gribapi import grib_set_definitions_path as codes_set_definitions_path -from gribapi import grib_set_samples_path as codes_set_samples_path - -from gribapi import GribInternalError as CodesInternalError -from gribapi.errors import * diff --git a/python3/eccodes/high_level/__init__.py b/python3/eccodes/high_level/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/python3/eccodes/high_level/bufr.py b/python3/eccodes/high_level/bufr.py deleted file mode 100644 index e333391a9..000000000 --- a/python3/eccodes/high_level/bufr.py +++ /dev/null @@ -1,97 +0,0 @@ -""" -Classes for handling BUFR with a high level interface. - -``BufrFiles`` can be treated mostly as regular files and used as context -managers, as can ``BufrMessages``. Each of these classes destructs itself and -any child instances appropriately. - -Author: Daniel Lee, DWD, 2016 -""" - -from .. import eccodes -from .codesmessage import CodesMessage -from .codesfile import CodesFile - - -class BufrMessage(CodesMessage): - - __doc__ = "\n".join(CodesMessage.__doc__.splitlines()[4:]).format( - prod_type="BUFR", classname="BufrMessage", parent="BufrFile", - alias="bufr") - - product_kind = eccodes.CODES_PRODUCT_BUFR - - # Arguments included explicitly to support introspection - # TODO: Can we get this to work with an index? - def __init__(self, codes_file=None, clone=None, sample=None, - headers_only=False): - """ - Open a message and inform the GRIB file that it's been incremented. - - The message is taken from ``codes_file``, cloned from ``clone`` or - ``sample``, or taken from ``index``, in that order of precedence. - """ - super(self.__class__, self).__init__(codes_file, clone, sample, - headers_only) - #self._unpacked = False - - #def get(self, key, ktype=None): - # """Return requested value, unpacking data values if necessary.""" - # # TODO: Only do this if accessing arrays that need unpacking - # if not self._unpacked: - # self.unpacked = True - # return super(self.__class__, self).get(key, ktype) - - #def missing(self, key): - # """ - # Report if key is missing.# - # - # Overloaded due to confusing behaviour in ``codes_is_missing`` (SUP-1874). - # """ - # return not bool(eccodes.codes_is_defined(self.codes_id, key)) - - def unpack(self): - """Decode data section""" - eccodes.codes_set(self.codes_id, 'unpack', 1) - - def pack(self): - """Encode data section""" - eccodes.codes_set(self.codes_id, 'pack', 1) - - def keys(self, namespace=None): - #self.unpack() - #return super(self.__class__, self).keys(namespace) - iterator = eccodes.codes_bufr_keys_iterator_new(self.codes_id) - keys = [] - while eccodes.codes_bufr_keys_iterator_next(iterator): - key = eccodes.codes_bufr_keys_iterator_get_name(iterator) - keys.append(key) - eccodes.codes_bufr_keys_iterator_delete(iterator) - return keys - - #@property - #def unpacked(self): - # return self._unpacked - - #@unpacked.setter - #def unpacked(self, val): - # eccodes.codes_set(self.codes_id, "unpack", val) - # self._unpacked = val - - #def __setitem__(self, key, value): - # """Set item and pack BUFR.""" - # if not self._unpacked: - # self.unpacked = True - # super(self.__class__, self).__setitem__(key, value) - # eccodes.codes_set(self.codes_id, "pack", True) - - def copy_data(self, destMsg): - """Copy data values from this message to another message""" - return eccodes.codes_bufr_copy_data(self.codes_id, destMsg.codes_id) - -class BufrFile(CodesFile): - - __doc__ = "\n".join(CodesFile.__doc__.splitlines()[4:]).format( - prod_type="BUFR", classname="BufrFile", alias="bufr") - - MessageClass = BufrMessage diff --git a/python3/eccodes/high_level/codesfile.py b/python3/eccodes/high_level/codesfile.py deleted file mode 100644 index 8afbbb4e8..000000000 --- a/python3/eccodes/high_level/codesfile.py +++ /dev/null @@ -1,73 +0,0 @@ -""" -``CodesFile`` class that implements a file that is readable by ecCodes and -closes itself and its messages when it is no longer needed. - -Author: Daniel Lee, DWD, 2016 -""" - -from .. import eccodes -import io - -class CodesFile(io.FileIO): - - """ - An abstract class to specify and/or implement common behaviour that files - read by ecCodes should implement. - - A {prod_type} file handle meant for use in a context manager. - - Individual messages can be accessed using the ``next`` method. Of course, - it is also possible to iterate over each message in the file:: - - >>> with {classname}(filename) as {alias}: - ... # Print number of messages in file - ... len({alias}) - ... # Open all messages in file - ... for msg in {alias}: - ... print(msg[key_name]) - ... len({alias}.open_messages) - >>> # When the file is closed, any open messages are closed - >>> len({alias}.open_messages) - """ - - #: Type of messages belonging to this file - MessageClass = None - - def __init__(self, filename, mode="rb"): - """Open file and receive codes file handle.""" - #: File handle for working with actual file on disc - #: The class holds the file it works with because ecCodes' - # typechecking does not allow using inherited classes. - self.file_handle = open(filename, mode) - #: Number of message in file currently being read - self.message = 0 - #: Open messages - self.open_messages = [] - self.name = filename - - def __exit__(self, exception_type, exception_value, traceback): - """Close all open messages, release file handle and close file.""" - while self.open_messages: - self.open_messages.pop().close() - eccodes.codes_close_file(self.file_handle) - #self.file_handle.close() - - def __len__(self): - """Return total number of messages in file.""" - return eccodes.codes_count_in_file(self.file_handle) - - def __enter__(self): - return self - - def close(self): - """Possibility to manually close file.""" - self.__exit__(None, None, None) - - def __iter__(self): - return self - - def next(self): - try: - return self.MessageClass(self) - except IOError: - raise StopIteration() diff --git a/python3/eccodes/high_level/codesmessage.py b/python3/eccodes/high_level/codesmessage.py deleted file mode 100644 index ae12c74b7..000000000 --- a/python3/eccodes/high_level/codesmessage.py +++ /dev/null @@ -1,184 +0,0 @@ -""" -``CodesMessage`` class that implements a message readable by ecCodes that -allows access to the message's key-value pairs in a dictionary-like manner -and closes the message when it is no longer needed, coordinating this with -its host file. - -Author: Daniel Lee, DWD, 2016 -""" - -from .. import eccodes - - -class CodesMessage(object): - - """ - An abstract class to specify and/or implement common behaviour that - messages read by ecCodes should implement. - - A {prod_type} message. - - Each ``{classname}`` is stored as a key/value pair in a dictionary-like - structure. It can be used in a context manager or by itself. When the - ``{parent}`` it belongs to is closed, the ``{parent}`` closes any open - ``{classname}``s that belong to it. If a ``{classname}`` is closed before - its ``{parent}`` is closed, it informs the ``{parent}`` of its closure. - - Scalar and vector values are set appropriately through the same method. - - ``{classname}``s can be instantiated from a ``{parent}``, cloned from - other ``{classname}``s or taken from samples. Iterating over the members - of a ``{parent}`` extracts the ``{classname}``s it contains until the - ``{parent}`` is exhausted. - - Usage:: - - >>> with {parent}(filename) as {alias}: - ... # Access a key from each message - ... for msg in {alias}: - ... print(msg[key_name]) - ... # Report number of keys in message - ... len(msg) - ... # Report message size in bytes - ... msg.size - ... # Report keys in message - ... msg.keys() - ... # Set scalar value - ... msg[scalar_key] = 5 - ... # Check key's value - ... msg[scalar_key] - ... msg[key_name] - ... # Array values are set transparently - ... msg[array_key] = [1, 2, 3] - ... # Messages can be written to file - ... with open(testfile, "w") as test: - ... msg.write(test) - ... # Messages can be cloned from other messages - ... msg2 = {classname}(clone=msg) - ... # If desired, messages can be closed manually or used in with - ... msg.close() - """ - - #: ecCodes enum-like PRODUCT constant - product_kind = None - - def __init__(self, codes_file=None, clone=None, sample=None, - headers_only=False, other_args_found=False): - """ - Open a message and inform the host file that it's been incremented. - - If ``codes_file`` is not supplied, the message is cloned from - ``CodesMessage`` ``clone``. If neither is supplied, - the ``CodesMessage`` is cloned from ``sample``. - - :param codes_file: A file readable for ecCodes - :param clone: A valid ``CodesMessage`` - :param sample: A valid sample path to create ``CodesMessage`` from - """ - if not other_args_found and codes_file is None and clone is None and sample is None: - raise RuntimeError("CodesMessage initialization parameters not " - "present.") - #: Unique ID, for ecCodes interface - self.codes_id = None - #: File containing message - self.codes_file = None - if codes_file is not None: - self.codes_id = eccodes.codes_new_from_file( - codes_file.file_handle, self.product_kind, headers_only) - if self.codes_id is None: - raise IOError("CodesFile %s is exhausted" % codes_file.name) - self.codes_file = codes_file - self.codes_file.message += 1 - self.codes_file.open_messages.append(self) - elif clone is not None: - self.codes_id = eccodes.codes_clone(clone.codes_id) - elif sample is not None: - self.codes_id = eccodes.codes_new_from_samples( - sample, self.product_kind) - - def write(self, outfile=None): - """Write message to file.""" - if not outfile: - # This is a hack because the API does not accept inheritance - outfile = self.codes_file.file_handle - eccodes.codes_write(self.codes_id, outfile) - - def __setitem__(self, key, value): - """ - Set value associated with key. - - Iterables and scalars are handled intelligently. - """ - if isinstance(key, str): - if hasattr(value, "__iter__") and not isinstance(value, str): - eccodes.codes_set_array(self.codes_id, key, value) - else: - eccodes.codes_set(self.codes_id, key, value) - else: - if len(key) != len(value): - raise ValueError('Key array must have same size as value array') - eccodes.codes_set_key_vals(self.codes_id,",".join([str(key[i])+"="+str(value[i]) for i in range(len(key))])) - - - def keys(self, namespace=None): - """Get available keys in message.""" - iterator = eccodes.codes_keys_iterator_new(self.codes_id, - namespace=namespace) - keys = [] - while eccodes.codes_keys_iterator_next(iterator): - key = eccodes.codes_keys_iterator_get_name(iterator) - keys.append(key) - eccodes.codes_keys_iterator_delete(iterator) - return keys - - def size(self): - """Return size of message in bytes.""" - return eccodes.codes_get_message_size(self.codes_id) - - def dump(self): - """Dump message's binary content.""" - return eccodes.codes_get_message(self.codes_id) - - def get(self, key, ktype=None): - """Get value of a given key as its native or specified type.""" - # if self.missing(key): - # raise KeyError("Value of key %s is MISSING." % key) - if eccodes.codes_get_size(self.codes_id, key) > 1: - ret = eccodes.codes_get_array(self.codes_id, key, ktype) - else: - ret = eccodes.codes_get(self.codes_id, key, ktype) - return ret - - def __exit__(self, exc_type, exc_val, exc_tb): - """Release message handle and inform host file of release.""" - eccodes.codes_release(self.codes_id) - - def __enter__(self): - return self - - def close(self): - """Possibility to manually close message.""" - self.__exit__(None, None, None) - - def __contains__(self, key): - """Check whether a key is present in message.""" - return key in self.keys() - - def __len__(self): - """Return key count.""" - return len(self.keys()) - - def __getitem__(self, key): - """Return value associated with key as its native type.""" - return self.get(key) - - def __iter__(self): - return iter(self.keys()) - - # Not yet implemented - # def itervalues(self): - # return self.values() - - def items(self): - """Return list of tuples of all key/value pairs.""" - return [(key, self[key]) for key in self.keys()] diff --git a/python3/eccodes/high_level/gribfile.py b/python3/eccodes/high_level/gribfile.py deleted file mode 100644 index 6e074fe09..000000000 --- a/python3/eccodes/high_level/gribfile.py +++ /dev/null @@ -1,17 +0,0 @@ -""" -``GribFile`` class that implements a GRIB file that closes itself and its -messages when it is no longer needed. - -Author: Daniel Lee, DWD, 2014 -""" - -from .codesfile import CodesFile -from .gribmessage import GribMessage - - -class GribFile(CodesFile): - - __doc__ = "\n".join(CodesFile.__doc__.splitlines()[4:]).format( - prod_type="GRIB", classname="GribFile", alias="grib") - - MessageClass = GribMessage diff --git a/python3/eccodes/high_level/gribindex.py b/python3/eccodes/high_level/gribindex.py deleted file mode 100644 index 934dd03a4..000000000 --- a/python3/eccodes/high_level/gribindex.py +++ /dev/null @@ -1,102 +0,0 @@ -""" -``GribIndex`` class that implements a GRIB index that allows access to -ecCodes's index functionality. - -Author: Daniel Lee, DWD, 2014 -""" - -from .. import eccodes -from .gribmessage import GribMessage - - -class GribIndex(object): - """ - A GRIB index meant for use in a context manager. - - Usage:: - - >>> # Create index from file with keys - >>> with GribIndex(filename, keys) as idx: - ... # Write index to file - ... idx.write(index_file) - >>> # Read index from file - >>> with GribIndex(file_index=index_file) as idx: - ... # Add new file to index - ... idx.add(other_filename) - ... # Report number of unique values for given key - ... idx.size(key) - ... # Report unique values indexed by key - ... idx.values(key) - ... # Request GribMessage matching key, value - ... msg = idx.select({key: value}) - """ - - def __enter__(self): - return self - - def __exit__(self, exception_type, exception_value, traceback): - """Release GRIB message handle and inform file of release.""" - while self.open_messages: - self.open_messages[0].close() - eccodes.codes_index_release(self.iid) - - def close(self): - """Possibility to manually close index.""" - self.__exit__(None, None, None) - - def __init__(self, filename=None, keys=None, file_index=None, - grib_index=None): - """ - Create new GRIB index over ``keys`` from ``filename``. - - ``filename`` should be a string of the desired file's filename. - ``keys`` should be a sequence of keys to index. ``file_index`` should - be a string of the file that the index should be loaded from. - ``grib_index`` should be another ``GribIndex``. - - If ``filename`` and ``keys`` are provided, the ``GribIndex`` is - initialized over the given keys from the given file. If they are not - provided, the ``GribIndex`` is read from ``indexfile``. If - ``grib_index`` is provided, it is cloned from the given ``GribIndex``. - """ - #: Grib index ID - self.iid = None - if filename and keys: - self.iid = eccodes.codes_index_new_from_file(filename, keys) - elif file_index: - self.iid = eccodes.codes_index_read(file_index) - elif grib_index: - self.iid = eccodes.codes_new_from_index(grib_index.iid) - else: - raise RuntimeError("No source was supplied " - "(possibilities: grib_file, clone, sample).") - #: Indexed keys. Only available if GRIB is initialized from file. - self.keys = keys - #: Open GRIB messages - self.open_messages = [] - - def size(self, key): - """Return number of distinct values for index key.""" - return eccodes.codes_index_get_size(self.iid, key) - - def values(self, key, ktype=str): - """Return distinct values of index key.""" - return eccodes.codes_index_get(self.iid, key, ktype) - - def add(self, filename): - """Add ``filename`` to the ``GribIndex``.""" - eccodes.codes_index_add_file(self.iid, filename) - - def write(self, outfile): - """Write index to filename at ``outfile``.""" - eccodes.codes_index_write(self.iid, outfile) - - def select(self, key_value_pairs): - """ - Return message associated with given key value pairs. - - ``key_value_pairs`` should be passed as a dictionary. - """ - for key in key_value_pairs: - eccodes.codes_index_select(self.iid, key, key_value_pairs[key]) - return GribMessage(gribindex=self) diff --git a/python3/eccodes/high_level/gribmessage.py b/python3/eccodes/high_level/gribmessage.py deleted file mode 100644 index c87cfedd9..000000000 --- a/python3/eccodes/high_level/gribmessage.py +++ /dev/null @@ -1,80 +0,0 @@ -""" -``GribMessage`` class that implements a GRIB message that allows access to -the message's key-value pairs in a dictionary-like manner and closes the -message when it is no longer needed, coordinating this with its host file. - -Author: Daniel Lee, DWD, 2014 -""" - -from .codesmessage import CodesMessage -from .. import eccodes - - -class IndexNotSelectedError(Exception): - """GRIB index was requested before selecting key/value pairs.""" - - -class GribMessage(CodesMessage): - - __doc__ = "\n".join(CodesMessage.__doc__.splitlines()[4:]).format( - prod_type="GRIB", classname="GribMessage", parent="GribFile", - alias="grib") - - product_kind = eccodes.CODES_PRODUCT_GRIB - - # Arguments included explicitly to support introspection - def __init__(self, codes_file=None, clone=None, sample=None, - headers_only=False, gribindex=None): - """ - Open a message and inform the GRIB file that it's been incremented. - - The message is taken from ``codes_file``, cloned from ``clone`` or - ``sample``, or taken from ``index``, in that order of precedence. - """ - grib_args_present = True - if gribindex is None: - grib_args_present = False - super(self.__class__, self).__init__(codes_file, clone, sample, - headers_only, grib_args_present) - #: GribIndex referencing message - self.grib_index = None - if gribindex is not None: - self.codes_id = eccodes.codes_new_from_index(gribindex.iid) - if not self.codes_id: - raise IndexNotSelectedError("All keys must have selected " - "values before receiving message " - "from index.") - self.grib_index = gribindex - gribindex.open_messages.append(self) - - def __exit__(self, exc_type, exc_val, exc_tb): - """Release GRIB message handle and inform file of release.""" - super(self.__class__, self).__exit__(exc_type, exc_val, exc_tb) - if self.grib_index: - self.grib_index.open_messages.remove(self) - - def missing(self, key): - """Report if the value of a key is MISSING.""" - return bool(eccodes.codes_is_missing(self.codes_id, key)) - - def set_missing(self, key): - """Set the value of key to MISSING.""" - eccodes.codes_set_missing(self.codes_id, key) - - @property - def gid(self): - """Provided for backwards compatibility.""" - return self.codes_id - - @property - def grib_file(self): - """Provided for backwards compatibility.""" - return self.codes_file - - @gid.setter - def gid(self, val): - self.codes_id = val - - @grib_file.setter - def grib_file(self, val): - self.codes_file = val diff --git a/python3/extrules.am b/python3/extrules.am deleted file mode 100644 index 70b27ad39..000000000 --- a/python3/extrules.am +++ /dev/null @@ -1,7 +0,0 @@ -# Use SWIG version 3.0.12 -# Python3 support added with -py3 -# -swig : gribapi_swig.i - swig -v -py3 -python -module gribapi_swig -o swig_wrap_numpy.c gribapi_swig.i - cp gribapi_swig.py swig_wrap_numpy.py - diff --git a/python3/grib_errors.h b/python3/grib_errors.h deleted file mode 100644 index 2b35a261b..000000000 --- a/python3/grib_errors.h +++ /dev/null @@ -1,143 +0,0 @@ -/* This part is automatically generated by ./errors.pl, do not edit */ -#ifndef grib_errors_H -#define grib_errors_H -/*! \defgroup errors Error codes -Error codes returned by the grib_api functions. -*/ -/*! @{*/ -/** No error */ -#define GRIB_SUCCESS 0 -/** End of resource reached */ -#define GRIB_END_OF_FILE -1 -/** Internal error */ -#define GRIB_INTERNAL_ERROR -2 -/** Passed buffer is too small */ -#define GRIB_BUFFER_TOO_SMALL -3 -/** Function not yet implemented */ -#define GRIB_NOT_IMPLEMENTED -4 -/** Missing 7777 at end of message */ -#define GRIB_7777_NOT_FOUND -5 -/** Passed array is too small */ -#define GRIB_ARRAY_TOO_SMALL -6 -/** File not found */ -#define GRIB_FILE_NOT_FOUND -7 -/** Code not found in code table */ -#define GRIB_CODE_NOT_FOUND_IN_TABLE -8 -/** Array size mismatch */ -#define GRIB_WRONG_ARRAY_SIZE -9 -/** Key/value not found */ -#define GRIB_NOT_FOUND -10 -/** Input output problem */ -#define GRIB_IO_PROBLEM -11 -/** Message invalid */ -#define GRIB_INVALID_MESSAGE -12 -/** Decoding invalid */ -#define GRIB_DECODING_ERROR -13 -/** Encoding invalid */ -#define GRIB_ENCODING_ERROR -14 -/** Code cannot unpack because of string too small */ -#define GRIB_NO_MORE_IN_SET -15 -/** Problem with calculation of geographic attributes */ -#define GRIB_GEOCALCULUS_PROBLEM -16 -/** Memory allocation error */ -#define GRIB_OUT_OF_MEMORY -17 -/** Value is read only */ -#define GRIB_READ_ONLY -18 -/** Invalid argument */ -#define GRIB_INVALID_ARGUMENT -19 -/** Null handle */ -#define GRIB_NULL_HANDLE -20 -/** Invalid section number */ -#define GRIB_INVALID_SECTION_NUMBER -21 -/** Value cannot be missing */ -#define GRIB_VALUE_CANNOT_BE_MISSING -22 -/** Wrong message length */ -#define GRIB_WRONG_LENGTH -23 -/** Invalid key type */ -#define GRIB_INVALID_TYPE -24 -/** Unable to set step */ -#define GRIB_WRONG_STEP -25 -/** Wrong units for step (step must be integer) */ -#define GRIB_WRONG_STEP_UNIT -26 -/** Invalid file id */ -#define GRIB_INVALID_FILE -27 -/** Invalid grib id */ -#define GRIB_INVALID_GRIB -28 -/** Invalid index id */ -#define GRIB_INVALID_INDEX -29 -/** Invalid iterator id */ -#define GRIB_INVALID_ITERATOR -30 -/** Invalid keys iterator id */ -#define GRIB_INVALID_KEYS_ITERATOR -31 -/** Invalid nearest id */ -#define GRIB_INVALID_NEAREST -32 -/** Invalid order by */ -#define GRIB_INVALID_ORDERBY -33 -/** Missing a key from the fieldset */ -#define GRIB_MISSING_KEY -34 -/** The point is out of the grid area */ -#define GRIB_OUT_OF_AREA -35 -/** Concept no match */ -#define GRIB_CONCEPT_NO_MATCH -36 -/** Hash array no match */ -#define GRIB_HASH_ARRAY_NO_MATCH -37 -/** Definitions files not found */ -#define GRIB_NO_DEFINITIONS -38 -/** Wrong type while packing */ -#define GRIB_WRONG_TYPE -39 -/** End of resource */ -#define GRIB_END -40 -/** Unable to code a field without values */ -#define GRIB_NO_VALUES -41 -/** Grid description is wrong or inconsistent */ -#define GRIB_WRONG_GRID -42 -/** End of index reached */ -#define GRIB_END_OF_INDEX -43 -/** Null index */ -#define GRIB_NULL_INDEX -44 -/** End of resource reached when reading message */ -#define GRIB_PREMATURE_END_OF_FILE -45 -/** An internal array is too small */ -#define GRIB_INTERNAL_ARRAY_TOO_SMALL -46 -/** Message is too large for the current architecture */ -#define GRIB_MESSAGE_TOO_LARGE -47 -/** Constant field */ -#define GRIB_CONSTANT_FIELD -48 -/** Switch unable to find a matching case */ -#define GRIB_SWITCH_NO_MATCH -49 -/** Underflow */ -#define GRIB_UNDERFLOW -50 -/** Message malformed */ -#define GRIB_MESSAGE_MALFORMED -51 -/** Index is corrupted */ -#define GRIB_CORRUPTED_INDEX -52 -/** Invalid number of bits per value */ -#define GRIB_INVALID_BPV -53 -/** Edition of two messages is different */ -#define GRIB_DIFFERENT_EDITION -54 -/** Value is different */ -#define GRIB_VALUE_DIFFERENT -55 -/** Invalid key value */ -#define GRIB_INVALID_KEY_VALUE -56 -/** String is smaller than requested */ -#define GRIB_STRING_TOO_SMALL -57 -/** Wrong type conversion */ -#define GRIB_WRONG_CONVERSION -58 -/** Missing BUFR table entry for descriptor */ -#define GRIB_MISSING_BUFR_ENTRY -59 -/** Null pointer */ -#define GRIB_NULL_POINTER -60 -/** Attribute is already present, cannot add */ -#define GRIB_ATTRIBUTE_CLASH -61 -/** Too many attributes. Increase MAX_ACCESSOR_ATTRIBUTES */ -#define GRIB_TOO_MANY_ATTRIBUTES -62 -/** Attribute not found. */ -#define GRIB_ATTRIBUTE_NOT_FOUND -63 -/** Edition not supported. */ -#define GRIB_UNSUPPORTED_EDITION -64 -/** Value out of coding range */ -#define GRIB_OUT_OF_RANGE -65 -/** Size of bitmap is incorrect */ -#define GRIB_WRONG_BITMAP_SIZE -66 -/*! @}*/ -#endif diff --git a/python3/grib_interface.c b/python3/grib_interface.c deleted file mode 100644 index 38ebaf0d1..000000000 --- a/python3/grib_interface.c +++ /dev/null @@ -1,2473 +0,0 @@ -/* - * (C) Copyright 2005- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * - * In applying this licence, ECMWF does not waive the privileges and immunities granted to it by - * virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. - */ - -#include "grib_api_internal.h" -#include "assert.h" - -#if HAVE_SYS_TYPES_H -# include -#endif - -#if HAVE_SYS_STAT_H -# include -#endif - -#ifdef HAVE_FCNTL_H -# include -#endif - -#include -#include - -#if GRIB_PTHREADS - static pthread_once_t once = PTHREAD_ONCE_INIT; - static pthread_mutex_t handle_mutex = PTHREAD_MUTEX_INITIALIZER; - static pthread_mutex_t index_mutex = PTHREAD_MUTEX_INITIALIZER; - static pthread_mutex_t multi_handle_mutex = PTHREAD_MUTEX_INITIALIZER; - static pthread_mutex_t iterator_mutex = PTHREAD_MUTEX_INITIALIZER; - static pthread_mutex_t keys_iterator_mutex = PTHREAD_MUTEX_INITIALIZER; - - static void init() { - pthread_mutexattr_t attr; - - pthread_mutexattr_init(&attr); - pthread_mutexattr_settype(&attr,PTHREAD_MUTEX_RECURSIVE); - pthread_mutex_init(&handle_mutex,&attr); - pthread_mutex_init(&index_mutex,&attr); - pthread_mutex_init(&multi_handle_mutex,&attr); - pthread_mutex_init(&iterator_mutex,&attr); - pthread_mutex_init(&keys_iterator_mutex,&attr); - pthread_mutexattr_destroy(&attr); - - } -#elif GRIB_OMP_THREADS - static int once = 0; - static omp_nest_lock_t handle_mutex; - static omp_nest_lock_t index_mutex; - static omp_nest_lock_t multi_handle_mutex; - static omp_nest_lock_t iterator_mutex; - static omp_nest_lock_t keys_iterator_mutex; - - static void init() - { - GRIB_OMP_CRITICAL(lock_python) - { - if (once == 0) - { - omp_init_nest_lock(&handle_mutex); - omp_init_nest_lock(&index_mutex); - omp_init_nest_lock(&multi_handle_mutex); - omp_init_nest_lock(&iterator_mutex); - omp_init_nest_lock(&keys_iterator_mutex); - once = 1; - } - } - } -#endif - -int GRIB_NULL=-1; -int GRIB_NULL_NEAREST=-1; - -typedef struct l_grib_file l_grib_file; - -struct l_grib_file { - int id; - FILE* f; - l_grib_file* next; -}; - -typedef struct l_grib_handle l_grib_handle; - -struct l_grib_handle { - int id; - grib_handle* h; - l_grib_handle* next; -}; - -typedef struct l_grib_index l_grib_index; - -struct l_grib_index { - int id; - grib_index* h; - l_grib_index* next; -}; - -typedef struct l_grib_multi_handle l_grib_multi_handle; - -struct l_grib_multi_handle { - int id; - grib_multi_handle* h; - l_grib_multi_handle* next; -}; - -typedef struct l_grib_iterator l_grib_iterator; - -struct l_grib_iterator { - int id; - grib_iterator* i; - l_grib_iterator* next; -}; - -typedef struct l_grib_keys_iterator l_grib_keys_iterator; -struct l_grib_keys_iterator { - int id; - grib_keys_iterator* i; - l_grib_keys_iterator* next; -}; - -typedef struct l_bufr_keys_iterator l_bufr_keys_iterator; -struct l_bufr_keys_iterator { - int id; - bufr_keys_iterator* i; - l_bufr_keys_iterator* next; -}; - -static l_grib_handle* handle_set = NULL; -static l_grib_index* index_set = NULL; -static l_grib_multi_handle* multi_handle_set = NULL; -static l_grib_file* file_set = NULL; -static l_grib_iterator* iterator_set = NULL; -static l_grib_keys_iterator* keys_iterator_set = NULL; -static l_bufr_keys_iterator* bufr_keys_iterator_set = NULL; - -static int push_file(FILE* f){ - l_grib_file* current = file_set; - l_grib_file* previous = file_set; - l_grib_file* new = NULL; - int myindex = 1; - - if(!file_set){ - file_set = malloc(sizeof(l_grib_file)); - file_set->id = myindex; - file_set->f = f; - file_set->next = NULL; - return myindex; - } - - while(current){ - if(current->id < 0){ - current->id = -(current->id); - current->f = f; - return current->id ; - } else{ - myindex++; - previous = current; - current = current->next; - } - } - - new = malloc(sizeof(l_grib_handle)); - new->id = myindex; - new->f = f; - new->next = current; - previous->next = new; - return myindex; -} - -static void _push_handle(grib_handle *h,int *gid) -{ - l_grib_handle* current= handle_set; - l_grib_handle* previous= handle_set; - l_grib_handle* new= NULL; - int myindex= 1; - - if (*gid > 0 ) { - while(current) { - if(current->id == *gid) break; - current = current->next; - } - if (current) { - grib_handle_delete(current->h); - current->h=h; - return; - } - } - - current= handle_set; - - if(!handle_set){ - handle_set = malloc(sizeof(l_grib_handle)); - handle_set->id = myindex; - handle_set->h = h; - handle_set->next = NULL; - *gid=myindex; - return; - } - - while(current){ - if(current->id < 0){ - current->id = -(current->id); - current->h = h; - *gid=current->id; - return; - } - else{ - myindex++; - previous = current; - current = current->next; - } - } - - new = malloc(sizeof(l_grib_handle)); - new->id = myindex; - new->h = h; - new->next = current; - previous->next = new; - - *gid=myindex; - return; -} - -static void _push_index(grib_index *h,int *gid) -{ - l_grib_index* current= index_set; - l_grib_index* previous= index_set; - l_grib_index* new= NULL; - int myindex= 1; - - if (*gid > 0 ) { - while(current) { - if(current->id == *gid) break; - current = current->next; - } - if (current) { - grib_index_delete(current->h); - current->h=h; - return; - } - } - - current= index_set; - - if(!index_set){ - index_set = malloc(sizeof(l_grib_index)); - index_set->id = myindex; - index_set->h = h; - index_set->next = NULL; - *gid=myindex; - return; - } - - while(current){ - if(current->id < 0){ - current->id = -(current->id); - current->h = h; - *gid=current->id; - return; - } - else{ - myindex++; - previous = current; - current = current->next; - } - } - - new = malloc(sizeof(l_grib_index)); - new->id = myindex; - new->h = h; - new->next = current; - previous->next = new; - - *gid=myindex; - return; -} - -static void _push_multi_handle(grib_multi_handle *h,int *gid) -{ - l_grib_multi_handle* current= multi_handle_set; - l_grib_multi_handle* previous= multi_handle_set; - l_grib_multi_handle* new= NULL; - int myindex= 1; - - if (*gid > 0 ) { - while(current) { - if(current->id == *gid) break; - current = current->next; - } - if (current) { - grib_multi_handle_delete(current->h); - current->h=h; - return; - } - } - - current= multi_handle_set; - - if(!multi_handle_set){ - multi_handle_set = malloc(sizeof(l_grib_multi_handle)); - multi_handle_set->id = myindex; - multi_handle_set->h = h; - multi_handle_set->next = NULL; - *gid=myindex; - return; - } - - while(current){ - if(current->id < 0){ - current->id = -(current->id); - current->h = h; - *gid=current->id; - return; - } - else{ - myindex++; - previous = current; - current = current->next; - } - } - - new = malloc(sizeof(l_grib_multi_handle)); - new->id = myindex; - new->h = h; - new->next = current; - previous->next = new; - - *gid=myindex; - return; -} - -static void push_handle(grib_handle *h,int *gid) -{ - GRIB_MUTEX_INIT_ONCE(&once,&init) - GRIB_MUTEX_LOCK(&handle_mutex) - _push_handle(h,gid); - GRIB_MUTEX_UNLOCK(&handle_mutex) - return; -} - -static void push_index(grib_index *h,int *gid) -{ - GRIB_MUTEX_INIT_ONCE(&once,&init) - GRIB_MUTEX_LOCK(&index_mutex) - _push_index(h,gid); - GRIB_MUTEX_UNLOCK(&index_mutex) - return; -} - -static void push_multi_handle(grib_multi_handle *h,int *gid) -{ - GRIB_MUTEX_INIT_ONCE(&once,&init) - GRIB_MUTEX_LOCK(&multi_handle_mutex) - _push_multi_handle(h,gid); - GRIB_MUTEX_UNLOCK(&multi_handle_mutex) - return; -} - -static int _push_iterator(grib_iterator *i) -{ - l_grib_iterator* current = iterator_set; - l_grib_iterator* previous = iterator_set; - l_grib_iterator* new = NULL; - int myindex = 1; - - if(!iterator_set){ - iterator_set = malloc(sizeof(l_grib_iterator)); - iterator_set->id = myindex; - iterator_set->i = i; - iterator_set->next = NULL; - return myindex; - } - - while(current){ - if(current->id < 0){ - current->id = -(current->id); - current->i = i; - return current->id; - } - else{ - myindex++; - previous = current; - current = current->next; - } - } - - new = malloc(sizeof(l_grib_iterator)); - new->id = myindex; - new->i = i; - new->next = current; - previous->next = new; - - return myindex; -} - -static int push_iterator(grib_iterator *i) -{ - int ret=0; - GRIB_MUTEX_INIT_ONCE(&once,&init) - GRIB_MUTEX_LOCK(&iterator_mutex) - ret=_push_iterator(i); - GRIB_MUTEX_UNLOCK(&iterator_mutex) - return ret; -} - -static int _push_keys_iterator(grib_keys_iterator *i) -{ - l_grib_keys_iterator* current = keys_iterator_set; - l_grib_keys_iterator* previous = keys_iterator_set; - l_grib_keys_iterator* new = NULL; - int myindex = 1; - - if(!keys_iterator_set){ - keys_iterator_set = malloc(sizeof(l_grib_keys_iterator)); - keys_iterator_set->id = myindex; - keys_iterator_set->i = i; - keys_iterator_set->next = NULL; - return myindex; - } - - while(current){ - if(current->id < 0){ - current->id = -(current->id); - current->i = i; - return current->id; - } - else{ - myindex++; - previous = current; - current = current->next; - } - } - if(!previous) return -1; - - new = malloc(sizeof(l_grib_keys_iterator)); - new->id = myindex; - new->i = i; - new->next = current; - previous->next = new; - - return myindex; -} -static int push_keys_iterator(grib_keys_iterator *i) -{ - int ret=0; - GRIB_MUTEX_INIT_ONCE(&once,&init) - GRIB_MUTEX_LOCK(&keys_iterator_mutex) - ret=_push_keys_iterator(i); - GRIB_MUTEX_UNLOCK(&keys_iterator_mutex) - return ret; -} - -//BUFR keys iterator -static int _push_bufr_keys_iterator(bufr_keys_iterator *i) -{ - l_bufr_keys_iterator* current = bufr_keys_iterator_set; - l_bufr_keys_iterator* previous = bufr_keys_iterator_set; - l_bufr_keys_iterator* the_new = NULL; - int myindex = 1; - - if(!bufr_keys_iterator_set){ - bufr_keys_iterator_set = (l_bufr_keys_iterator*)malloc(sizeof(l_bufr_keys_iterator)); - Assert(bufr_keys_iterator_set); - bufr_keys_iterator_set->id = myindex; - bufr_keys_iterator_set->i = i; - bufr_keys_iterator_set->next = NULL; - return myindex; - } - - while(current){ - if(current->id < 0){ - current->id = -(current->id); - current->i = i; - return current->id; - } - else{ - myindex++; - previous = current; - current = current->next; - } - } - if(!previous) return -1; - - the_new = (l_bufr_keys_iterator*)malloc(sizeof(l_bufr_keys_iterator)); - Assert(the_new); - the_new->id = myindex; - the_new->i = i; - the_new->next = current; - previous->next = the_new; - - return myindex; -} -static int push_bufr_keys_iterator(bufr_keys_iterator *i) -{ - int ret=0; - GRIB_MUTEX_INIT_ONCE(&once,&init); - GRIB_MUTEX_LOCK(&keys_iterator_mutex); - ret=_push_bufr_keys_iterator(i); - GRIB_MUTEX_UNLOCK(&keys_iterator_mutex); - return ret; -} - - -static grib_handle* _get_handle(int handle_id) -{ - l_grib_handle* current= handle_set; - - while(current){ - if(current->id == handle_id) return current->h; - current = current->next; - } - - return NULL; -} - -static grib_index* _get_index(int index_id) -{ - l_grib_index* current= index_set; - - while(current){ - if(current->id == index_id) return current->h; - current = current->next; - } - - return NULL; -} - -static grib_multi_handle* _get_multi_handle(int multi_handle_id) -{ - l_grib_multi_handle* current= multi_handle_set; - - while(current){ - if(current->id == multi_handle_id) return current->h; - current = current->next; - } - - return NULL; -} - -static grib_handle* get_handle(int handle_id) -{ - grib_handle* h=NULL; - GRIB_MUTEX_INIT_ONCE(&once,&init) - GRIB_MUTEX_LOCK(&handle_mutex) - h=_get_handle(handle_id); - GRIB_MUTEX_UNLOCK(&handle_mutex) - return h; -} - -static grib_index* get_index(int index_id) -{ - grib_index* h=NULL; - GRIB_MUTEX_INIT_ONCE(&once,&init) - GRIB_MUTEX_LOCK(&index_mutex) - h=_get_index(index_id); - GRIB_MUTEX_UNLOCK(&index_mutex) - return h; -} - -static grib_multi_handle* get_multi_handle(int multi_handle_id) -{ - grib_multi_handle* h=NULL; - GRIB_MUTEX_INIT_ONCE(&once,&init) - GRIB_MUTEX_LOCK(&multi_handle_mutex) - h=_get_multi_handle(multi_handle_id); - GRIB_MUTEX_UNLOCK(&multi_handle_mutex) - return h; -} - -static FILE* get_file(int file_id) -{ - l_grib_file* current = file_set; - while(current){ - if(current->id == file_id) return current->f; - current = current->next; - } - return NULL; -} - -static grib_iterator* _get_iterator(int iterator_id) -{ - l_grib_iterator* current = iterator_set; - - while(current){ - if(current->id == iterator_id) return current->i; - current = current->next; - } - return NULL; -} -static grib_iterator* get_iterator(int iterator_id) -{ - grib_iterator* i=NULL; - GRIB_MUTEX_INIT_ONCE(&once,&init) - GRIB_MUTEX_LOCK(&iterator_mutex) - i=_get_iterator(iterator_id); - GRIB_MUTEX_UNLOCK(&iterator_mutex) - return i; -} - -static grib_keys_iterator* _get_keys_iterator(int keys_iterator_id) -{ - l_grib_keys_iterator* current = keys_iterator_set; - - while(current){ - if(current->id == keys_iterator_id) return current->i; - current = current->next; - } - return NULL; -} -static grib_keys_iterator* get_keys_iterator(int keys_iterator_id) -{ - grib_keys_iterator* i=NULL; - GRIB_MUTEX_INIT_ONCE(&once,&init) - GRIB_MUTEX_LOCK(&keys_iterator_mutex) - i=_get_keys_iterator(keys_iterator_id); - GRIB_MUTEX_UNLOCK(&keys_iterator_mutex) - return i; -} - -//BUFR keys iterator -static bufr_keys_iterator* _get_bufr_keys_iterator(int keys_iterator_id) -{ - l_bufr_keys_iterator* current = bufr_keys_iterator_set; - - while(current){ - if(current->id == keys_iterator_id) return current->i; - current = current->next; - } - return NULL; -} -static bufr_keys_iterator* get_bufr_keys_iterator(int keys_iterator_id) -{ - bufr_keys_iterator* i=NULL; - GRIB_MUTEX_INIT_ONCE(&once,&init) - GRIB_MUTEX_LOCK(&keys_iterator_mutex) - i=_get_bufr_keys_iterator(keys_iterator_id); - GRIB_MUTEX_UNLOCK(&keys_iterator_mutex) - return i; -} - - -static int clear_file(int file_id) -{ - l_grib_file* current = file_set; - int ret = 0; - while(current){ - if(current->id == file_id){ - current->id = -(current->id); - if (current->f) { - ret = fclose(current->f); - if (0 == ret) { - return GRIB_SUCCESS; - } else { - return GRIB_IO_PROBLEM; - } - } - return GRIB_SUCCESS; - } - current = current->next; - } - return GRIB_INVALID_FILE; -} - -static int _clear_handle(int handle_id) -{ - l_grib_handle* current = handle_set; - - /* look for the input grib id to release it */ - while(current){ - if(current->id == handle_id){ - current->id = -(current->id); - if(current->h) return grib_handle_delete(current->h); - } - current = current->next; - } - - /* fail with invalid grib id if not found */ - return GRIB_INVALID_GRIB; -} - -static int _clear_index(int index_id) -{ - l_grib_index* current = index_set; - - while(current){ - if(current->id == index_id){ - current->id = -(current->id); - if (current->h) { - grib_index_delete(current->h); - return GRIB_SUCCESS; - } - } - current = current->next; - } - return GRIB_SUCCESS; -} - -static int _clear_multi_handle(int multi_handle_id) -{ - l_grib_multi_handle* current = multi_handle_set; - - while(current){ - if(current->id == multi_handle_id){ - current->id = -(current->id); - if(current->h) return grib_multi_handle_delete(current->h); - } - current = current->next; - } - return GRIB_SUCCESS; -} - -static int clear_handle(int handle_id) -{ - int ret=0; - GRIB_MUTEX_INIT_ONCE(&once,&init) - GRIB_MUTEX_LOCK(&handle_mutex) - ret=_clear_handle(handle_id); - GRIB_MUTEX_UNLOCK(&handle_mutex) - return ret; -} - -static int clear_index(int index_id) -{ - int ret=0; - GRIB_MUTEX_INIT_ONCE(&once,&init) - GRIB_MUTEX_LOCK(&index_mutex) - ret=_clear_index(index_id); - GRIB_MUTEX_UNLOCK(&index_mutex) - return ret; -} - -static int clear_multi_handle(int multi_handle_id) -{ - int ret=0; - GRIB_MUTEX_INIT_ONCE(&once,&init) - GRIB_MUTEX_LOCK(&multi_handle_mutex) - ret=_clear_multi_handle(multi_handle_id); - GRIB_MUTEX_UNLOCK(&multi_handle_mutex) - return ret; -} - -static int _clear_iterator(int iterator_id) -{ - l_grib_iterator* current = iterator_set; - - while(current){ - if(current->id == iterator_id){ - current->id = -(current->id); - return grib_iterator_delete(current->i); - } - current = current->next; - } - return GRIB_INVALID_ITERATOR; -} - -static int clear_iterator(int iterator_id) -{ - int ret=0; - GRIB_MUTEX_INIT_ONCE(&once,&init) - GRIB_MUTEX_LOCK(&iterator_mutex) - ret=_clear_iterator(iterator_id); - GRIB_MUTEX_UNLOCK(&iterator_mutex) - return ret; -} - -static int _clear_keys_iterator(int keys_iterator_id) -{ - l_grib_keys_iterator* current = keys_iterator_set; - - while(current){ - if(current->id == keys_iterator_id){ - current->id = -(current->id); - return grib_keys_iterator_delete(current->i); - } - current = current->next; - } - return GRIB_INVALID_KEYS_ITERATOR; -} -static int clear_keys_iterator(int keys_iterator_id) -{ - int ret=0; - GRIB_MUTEX_INIT_ONCE(&once,&init) - GRIB_MUTEX_LOCK(&keys_iterator_mutex) - ret=_clear_keys_iterator(keys_iterator_id); - GRIB_MUTEX_UNLOCK(&keys_iterator_mutex) - return ret; -} - -//BUFR keys iterator -static int _clear_bufr_keys_iterator(int keys_iterator_id) -{ - l_bufr_keys_iterator* current = bufr_keys_iterator_set; - - while(current){ - if(current->id == keys_iterator_id){ - current->id = -(current->id); - return codes_bufr_keys_iterator_delete(current->i); - } - current = current->next; - } - return GRIB_INVALID_KEYS_ITERATOR; -} -static int clear_bufr_keys_iterator(int keys_iterator_id) -{ - int ret=0; - GRIB_MUTEX_INIT_ONCE(&once,&init); - GRIB_MUTEX_LOCK(&keys_iterator_mutex); - ret=_clear_bufr_keys_iterator(keys_iterator_id); - GRIB_MUTEX_UNLOCK(&keys_iterator_mutex); - return ret; -} - -int grib_c_read_any_from_file(int* fid, char* buffer, int* nbytes) -{ - grib_context* c; - int err=0; - size_t size=(size_t)nbytes; - FILE* f=get_file(*fid); - - if (f) { - c=grib_context_get_default( ); - err=grib_read_any_from_file(c,f,buffer,&size); - *nbytes=size; - return err; - } else { - return GRIB_INVALID_FILE; - } -} - -int grib_c_write_file(int* fid, char* buffer, size_t* nbytes) -{ - grib_context* c; - FILE* f=get_file(*fid); - - if (f) { - int ioerr; - c=grib_context_get_default( ); - if( fwrite(buffer, 1, *nbytes, f) != *nbytes) { - ioerr=errno; - grib_context_log(c,(GRIB_LOG_ERROR)|(GRIB_LOG_PERROR),"IO ERROR: %s",strerror(ioerr)); - return GRIB_IO_PROBLEM; - } - return GRIB_SUCCESS; - } else { - return GRIB_INVALID_FILE; - } -} - -int grib_c_read_file(int* fid, char* buffer, size_t* nbytes) -{ - grib_context* c; - FILE* f=get_file(*fid); - - if (f) { - int ioerr; - c=grib_context_get_default( ); - if( fread(buffer, 1, *nbytes, f) != *nbytes) { - ioerr=errno; - grib_context_log(c,(GRIB_LOG_ERROR)|(GRIB_LOG_PERROR),"IO ERROR: %s",strerror(ioerr)); - return GRIB_IO_PROBLEM; - } - return GRIB_SUCCESS; - } else { - return GRIB_INVALID_FILE; - } -} - -int grib_c_open_file(int* fid, char* name , char* op) -{ - FILE* f = NULL; - int ioerr=0; - int ret=GRIB_SUCCESS; - - /*TODO Proper context passed as external parameter */ - grib_context* context=grib_context_get_default(); - - f = fopen(name,op); - - if(!f) { - ioerr=errno; - grib_context_log(context,(GRIB_LOG_ERROR)|(GRIB_LOG_PERROR),"IO ERROR: %s: %s",strerror(ioerr),name); - *fid = -1; - ret=GRIB_IO_PROBLEM; - } else { - *fid = push_file(f); - ret=GRIB_SUCCESS; - } - return ret; -} - -int grib_c_close_file(int* fid){ - return clear_file(*fid); -} - -int grib_c_multi_support_on(void) { - grib_multi_support_on(0); - return GRIB_SUCCESS; -} - -int grib_c_multi_support_off(void) { - grib_multi_support_off(0); - return GRIB_SUCCESS; -} - -static int _grib_c_iterator_new_(int* gid,int* iterid,int* mode) -{ - int err=0; - grib_handle* h; - grib_iterator* iter; - - h=get_handle(*gid); - if (!h) { - *iterid=-1; - return GRIB_NULL_HANDLE; - } - iter=grib_iterator_new(h,*mode,&err); - if (iter) - *iterid=push_iterator(iter); - else - *iterid=-1; - return err; -} - -int grib_c_iterator_new(int* gid,int* iterid,int* mode) -{ - int ret=0; - GRIB_MUTEX_INIT_ONCE(&once,&init) - GRIB_MUTEX_LOCK(&iterator_mutex) - ret=_grib_c_iterator_new_(gid,iterid,mode); - GRIB_MUTEX_UNLOCK(&iterator_mutex) - return ret; -} - -int grib_c_iterator_next(int* iterid,double* lat,double* lon,double* value) -{ - grib_iterator* iter=get_iterator(*iterid); - if (!iter) return GRIB_INVALID_ITERATOR; - return grib_iterator_next(iter,lat,lon,value); -} - -int grib_c_iterator_delete(int* iterid) -{ - return clear_iterator(*iterid); -} - -static int _grib_c_keys_iterator_new_(int* gid,int* iterid,char* name_space) -{ - int err=0; - grib_handle* h; - grib_keys_iterator* iter; - - h=get_handle(*gid); - if (!h) { - *iterid=-1; - return GRIB_NULL_HANDLE; - } - iter=grib_keys_iterator_new(h,0,name_space); - if (iter) - *iterid=push_keys_iterator(iter); - else - *iterid=-1; - return err; -} -int grib_c_keys_iterator_new(int* gid,int* iterid,char* name_space) -{ - int ret=0; - GRIB_MUTEX_INIT_ONCE(&once,&init) - GRIB_MUTEX_LOCK(&keys_iterator_mutex) - ret=_grib_c_keys_iterator_new_(gid,iterid,name_space); - GRIB_MUTEX_UNLOCK(&keys_iterator_mutex) - return ret; -} -int grib_c_keys_iterator_next(int* iterid) -{ - int ret = 0; - - grib_keys_iterator* iter= get_keys_iterator(*iterid); - - if (!iter) return GRIB_INVALID_KEYS_ITERATOR; - - ret = grib_keys_iterator_next(iter); - - return ret; -} -int grib_c_keys_iterator_delete(int* iterid) -{ - return clear_keys_iterator(*iterid); -} -int grib_c_keys_iterator_get_name(int* iterid,char* name,int len) -{ - size_t lsize=len; - char buf[1024]={0,}; - - grib_keys_iterator* kiter=get_keys_iterator(*iterid); - - if (!kiter) return GRIB_INVALID_KEYS_ITERATOR; - if (grib_keys_iterator_get_accessor(kiter)==NULL) - return GRIB_INVALID_KEYS_ITERATOR; - - sprintf(buf,"%s",grib_keys_iterator_get_name(kiter)); - lsize=strlen(buf); - - if ((size_t)len < lsize) return GRIB_ARRAY_TOO_SMALL; - - memcpy(name,buf,lsize); - name[lsize] = '\0'; - - return 0; -} -int grib_c_keys_iterator_rewind(int* kiter) -{ - grib_keys_iterator* i=get_keys_iterator(*kiter); - - if (!i) return GRIB_INVALID_KEYS_ITERATOR; - return grib_keys_iterator_rewind(i); -} - -/*BUFR keys iterator*/ -static int _codes_c_bufr_keys_iterator_new_(int* gid,int* iterid) -{ - int err=0; - grib_handle* h; - bufr_keys_iterator* iter; - - h=get_handle(*gid); - if (!h) { - *iterid=-1; - return GRIB_NULL_HANDLE; - } - iter=codes_bufr_keys_iterator_new(h,0); - if (iter) - *iterid=push_bufr_keys_iterator(iter); - else - *iterid=-1; - return err; -} -int codes_c_bufr_keys_iterator_new(int* gid,int* iterid) -{ - int ret=0; - GRIB_MUTEX_INIT_ONCE(&once,&init) - GRIB_MUTEX_LOCK(&keys_iterator_mutex) - ret = _codes_c_bufr_keys_iterator_new_(gid,iterid); - GRIB_MUTEX_UNLOCK(&keys_iterator_mutex) - return ret; -} - -int codes_c_bufr_keys_iterator_next(int* iterid) -{ - int ret = 0; - bufr_keys_iterator* iter= get_bufr_keys_iterator(*iterid); - - if (!iter) return GRIB_INVALID_KEYS_ITERATOR; - - ret = codes_bufr_keys_iterator_next(iter); - return ret; -} - -int codes_c_bufr_keys_iterator_get_name(int* iterid,char* name,int len) -{ - size_t lsize=len; - char buf[1024]={0,}; - - bufr_keys_iterator* kiter=get_bufr_keys_iterator(*iterid); - - if (!kiter) return GRIB_INVALID_KEYS_ITERATOR; - if (codes_bufr_keys_iterator_get_accessor(kiter)==NULL) - return GRIB_INVALID_KEYS_ITERATOR; - - sprintf(buf,"%s",codes_bufr_keys_iterator_get_name(kiter)); - lsize=strlen(buf); - - if ((size_t)len < lsize) return GRIB_ARRAY_TOO_SMALL; - - memcpy(name,buf,lsize); - name[lsize] = '\0'; - - return 0; -} - -int codes_c_bufr_keys_iterator_rewind(int* kiter) -{ - bufr_keys_iterator* i=get_bufr_keys_iterator(*kiter); - - if (!i) return GRIB_INVALID_KEYS_ITERATOR; - return codes_bufr_keys_iterator_rewind(i); -} - -int codes_c_bufr_keys_iterator_delete(int* iterid) -{ - return clear_bufr_keys_iterator(*iterid); -} - - -int grib_c_gribex_mode_on(void) -{ - grib_gribex_mode_on(0); - return GRIB_SUCCESS; -} - -int grib_c_gribex_mode_off(void) -{ - grib_gribex_mode_off(0); - return GRIB_SUCCESS; -} - -int grib_c_skip_computed(int* iterid) -{ - grib_keys_iterator* iter=get_keys_iterator(*iterid); - if (!iter) return GRIB_INVALID_KEYS_ITERATOR; - return grib_keys_iterator_set_flags(iter,GRIB_KEYS_ITERATOR_SKIP_COMPUTED); -} - -int grib_c_skip_coded(int* iterid) -{ - grib_keys_iterator* iter=get_keys_iterator(*iterid); - if (!iter) return GRIB_INVALID_KEYS_ITERATOR; - return grib_keys_iterator_set_flags(iter,GRIB_KEYS_ITERATOR_SKIP_CODED); -} - -int grib_c_skip_edition_specific(int* iterid) -{ - grib_keys_iterator* iter=get_keys_iterator(*iterid); - if (!iter) return GRIB_INVALID_KEYS_ITERATOR; - return grib_keys_iterator_set_flags(iter,GRIB_KEYS_ITERATOR_SKIP_EDITION_SPECIFIC); -} - -int grib_c_skip_duplicates(int* iterid) -{ - grib_keys_iterator* iter=get_keys_iterator(*iterid); - if (!iter) return GRIB_INVALID_KEYS_ITERATOR; - return grib_keys_iterator_set_flags(iter,GRIB_KEYS_ITERATOR_SKIP_DUPLICATES); -} - -int grib_c_skip_read_only(int* iterid) -{ - grib_keys_iterator* iter=get_keys_iterator(*iterid); - if (!iter) return GRIB_INVALID_KEYS_ITERATOR; - return grib_keys_iterator_set_flags(iter,GRIB_KEYS_ITERATOR_SKIP_READ_ONLY); -} - -int grib_c_skip_function(int* iterid) -{ - grib_keys_iterator* iter=get_keys_iterator(*iterid); - if (!iter) return GRIB_INVALID_KEYS_ITERATOR; - return grib_keys_iterator_set_flags(iter,GRIB_KEYS_ITERATOR_SKIP_FUNCTION); -} - -int grib_c_new_from_message(int* gid, void* buffer , size_t* bufsize) -{ - grib_handle *h = NULL; - h = grib_handle_new_from_message_copy(0, buffer, *bufsize); - if(h){ - push_handle(h,gid); - return GRIB_SUCCESS; - } - - *gid = -1; - return GRIB_INTERNAL_ERROR; -} - -int grib_c_new_from_message_copy(int* gid, void* buffer , size_t* bufsize) -{ - grib_handle *h = NULL; - h = grib_handle_new_from_message_copy(0, buffer, *bufsize); - if(h){ - push_handle(h,gid); - return GRIB_SUCCESS; - } - - *gid = -1; - return GRIB_INTERNAL_ERROR; -} - -int grib_c_grib_new_from_samples(int* gid, char* name) -{ - grib_handle *h = NULL; - - h = grib_handle_new_from_samples(NULL,name); - /* grib_context_set_debug(h->context,1);*/ - - if(h){ - push_handle(h,gid); - return GRIB_SUCCESS; - } - - *gid = -1; - return GRIB_FILE_NOT_FOUND; -} - -int grib_c_bufr_new_from_samples(int* gid, char* name) -{ - grib_handle *h = NULL; - - h = codes_bufr_handle_new_from_samples(NULL,name); - /* grib_context_set_debug(h->context,1);*/ - - if(h){ - push_handle(h,gid); - return GRIB_SUCCESS; - } - - *gid = -1; - return GRIB_FILE_NOT_FOUND; -} - -int grib_c_clone(int* gidsrc,int* giddest) -{ - grib_handle *src = get_handle(*gidsrc); - grib_handle *dest = NULL; - - if(src){ - dest = grib_handle_clone(src); - if(dest){ - push_handle(dest,giddest); - return GRIB_SUCCESS; - } - } - - *giddest = -1; - return GRIB_INVALID_GRIB; -} - -int grib_c_copy_namespace(int* gidsrc,char* name,int* giddest) -{ - grib_handle *src = get_handle(*gidsrc); - grib_handle *dest = get_handle(*giddest); - - if(src && dest) - return grib_copy_namespace(dest,name,src); - - return GRIB_INVALID_GRIB; -} - -/* ------------------------------------------------- */ -typedef struct file_info_cache_t file_info_cache_t; -struct file_info_cache_t { - file_info_cache_t* next; - int file_descriptor; - FILE* file_pointer; -}; -static file_info_cache_t* file_info_cache=0; -static void store_file_info(int fd, FILE* fp) -{ - file_info_cache_t* tb=(file_info_cache_t*)malloc(sizeof(file_info_cache_t)); - tb->file_descriptor = fd; - tb->file_pointer = fp; - tb->next = NULL; - //printf("store_file_info: fd=%d fp=%p\n",fd,fp); - if (!file_info_cache) { - file_info_cache = tb; - } else { - /*Add to end of linked list*/ - file_info_cache_t* q = file_info_cache; - while(q->next) q=q->next; - q->next = tb; - } -} -static FILE* retrieve_file_info(int fd) -{ - file_info_cache_t* p = file_info_cache; - //printf("retrieve_file_info: fd=%d\n",fd); - while (p) { - if (p->file_descriptor == fd) { - //printf("\t result=%p\n",p->file_pointer); - return p->file_pointer; - } - p = p->next; - } - //printf("\t result=NULL\n"); - return NULL; -} - -static int clear_file_info(int fd) -{ - //printf("clear_file_info: fd=%d\n",fd); - file_info_cache_t *curr, *prev=NULL; - for(curr=file_info_cache; curr!=NULL; prev=curr, curr=curr->next) { - if (curr->file_descriptor==fd) {//found it - if(prev==NULL) {//fix head - file_info_cache = curr->next; - } else { - //Fix previous node's 'next' to skip over the removed node - prev->next = curr->next; - } - //printf("clear_file_info:\t Deleting entry curr (%d,%p)\n", curr->file_descriptor,curr->file_pointer); - free(curr); - return GRIB_SUCCESS; - } - } - return GRIB_INVALID_FILE; -} -#if DEBUG -static void dump_file_info(const char* title) -{ - int i=1; - file_info_cache_t* curr = file_info_cache; - if(!curr) printf("%s: dump_file_info: EMPTY\n", title); - else printf("%s: dump_file_info:\n", title); - while(curr) { - printf("%s:\t %d: fd=%d fp=%p\n", title, i++,curr->file_descriptor,curr->file_pointer); - curr=curr->next; - } -} -#endif -/* ------------------------------------------------- */ -int codes_c_close_file(int fd, char* fname) -{ - FILE* fp = retrieve_file_info(fd); - //printf("codes_c_close_file: looking for %d\n", fd); - if (fp) { - clear_file_info(fd); - //dump_file_info("codes_c_close_file: clearing cache"); - //} else { - //printf("codes_c_close_file: %d NOT IN CACHE\n", fd); - } - return GRIB_SUCCESS; -} - -int grib_c_count_in_file(FILE* f,int* n) -{ - int err = 0; - if (f) err=grib_count_in_file(0, f,n); - return err; -} - -int grib_c_new_gts_from_file(FILE* f, int fd, char* fname, int headers_only, int* gid) -{ - grib_handle *h = NULL; - int err = 0; - - if(f){ - FILE* p = retrieve_file_info(fd); - if (p) { - h = gts_new_from_file(0,p,&err); //use cached value - } else { - h = gts_new_from_file(0,f,&err); //use FILE pointer passed in - store_file_info(fd, f); //store it for next time - } - - if(h){ - push_handle(h,gid); - return GRIB_SUCCESS; - } else { - *gid=-1; - clear_file_info(fd); - return GRIB_END_OF_FILE; - } - } - - *gid=-1; - return GRIB_INVALID_FILE; -} - -int grib_c_new_metar_from_file(FILE* f,int headers_only, int* gid) -{ - grib_handle *h = NULL; - int err = 0; - - if(f){ - h = metar_new_from_file(0,f,&err); - - if(h){ - push_handle(h,gid); - return GRIB_SUCCESS; - } else { - *gid=-1; - return GRIB_END_OF_FILE; - } - } - - *gid=-1; - return GRIB_INVALID_FILE; -} - -int grib_c_new_any_from_file(FILE* f, int fd, char* fname, int headers_only,int* gid) -{ - grib_handle *h = NULL; - int err = 0; - if(f){ - FILE* p = retrieve_file_info(fd); - if (p) { - h = codes_handle_new_from_file(0,p,PRODUCT_ANY, &err);//use cached value - } else { - h = codes_handle_new_from_file(0,f,PRODUCT_ANY, &err);//use FILE pointer passed in - store_file_info(fd, f); //store it for next time - } - if(h){ - push_handle(h,gid); - return GRIB_SUCCESS; - } else { - *gid=-1; - clear_file_info(fd); - return GRIB_END_OF_FILE; - } - } - - *gid=-1; - return GRIB_INVALID_FILE; -} - -int grib_c_new_bufr_from_file(FILE* f, int fd, char* fname, int headers_only,int* gid) -{ - grib_handle *h = NULL; - int err = 0; - - if(f){ - FILE* p = retrieve_file_info(fd); - if (p) { - h = codes_handle_new_from_file(0,p,PRODUCT_BUFR, &err); //use cached value - } else { - h = codes_handle_new_from_file(0,f,PRODUCT_BUFR, &err); //use FILE pointer passed in - store_file_info(fd, f); //store it for next time - } - - if(h){ - push_handle(h,gid); - return GRIB_SUCCESS; - } else { - *gid=-1; - clear_file_info(fd); - return GRIB_END_OF_FILE; - } - } - - *gid=-1; - return GRIB_INVALID_FILE; -} - -int grib_c_new_from_file(FILE* f, int fd, char* fname, int* gid, int headers_only) -{ - grib_handle *h = NULL; - int err = 0; -#if 0 - printf("C grib_c_new_from_file: FILE*=%p\n", f); - printf("C grib_c_new_from_file: f->fileno=%d (fd=%d)\n", f->_fileno, fd); - printf("C grib_c_new_from_file: fn=%s\n", fname); -#endif - //dump_file_info("grib_c_new_from_file start"); - if(f){ - FILE* p = retrieve_file_info(fd); - if (p) { - //printf("C. using CACHED value from store...%p\n",p); - h=grib_new_from_file(0,p,headers_only,&err);//use cached value - } else { - //printf("C. using value from ARGS...%p\n",f); - h=grib_new_from_file(0,f,headers_only,&err);//use FILE pointer passed in - store_file_info(fd, f); //store it for next time - //dump_file_info("grib_c_new_from_file First time called"); - } - - if(h){ - push_handle(h,gid); - return GRIB_SUCCESS; - } else { - *gid=-1; - if (err == GRIB_SUCCESS) { - //printf("C grib_c_new_from_file: GRIB_END_OF_FILE\n"); - clear_file_info(fd); - //dump_file_info("grib_c_new_from_file EOF"); - return GRIB_END_OF_FILE; //TODO: remove element from cache - } else { - /* A real error occurred */ - return err; - } - } - } - - *gid=-1; - return GRIB_INVALID_FILE; -} - -int grib_c_new_from_index(int* iid, int* gid){ - int err = 0; - grib_index* i = get_index(*iid); - - grib_handle *h = NULL; - - if(i){ - h = grib_handle_new_from_index(i,&err); - if(h){ - push_handle(h,gid); - return GRIB_SUCCESS; - } else { - *gid=-1; - return GRIB_END_OF_INDEX; - } - } - - *gid=-1; - return GRIB_INVALID_INDEX; -} - -int grib_c_index_new_from_file(char* file ,char* keys ,int* gid){ - int err = 0; - grib_index *i = NULL; - - if(*file){ - i = grib_index_new_from_file(0,file,keys,&err); - if(i){ - push_index(i,gid); - return GRIB_SUCCESS; - } else { - *gid=-1; - return GRIB_END_OF_FILE; - } - } - - *gid=-1; - return GRIB_INVALID_FILE; -} - -int grib_c_index_add_file(int* iid, char* file) { - grib_index *i = get_index(*iid); - int err = GRIB_SUCCESS; - - if (!i) { - return GRIB_INVALID_INDEX; - } else { - err = grib_index_add_file(i,file); - return err; - } -} - -int grib_c_index_release(int* hid){ - return clear_index(*hid); -} - -int grib_c_multi_release(int* hid){ - return clear_multi_handle(*hid); -} - -int grib_c_release(int* hid){ - return clear_handle(*hid); -} - -int grib_c_dump(int* gid){ - grib_handle *h = get_handle(*gid); - - if(!h) - return GRIB_INVALID_GRIB; - else - grib_dump_content(h,stdout,"wmo",0,NULL); - - return GRIB_SUCCESS; -} - -int grib_c_print(int* gid, char* key){ - grib_handle *h = get_handle(*gid); - int err = GRIB_SUCCESS; - grib_dumper* d = NULL; - - if(!h){ - return GRIB_INVALID_GRIB; - }else{ - d = grib_dumper_factory("serialize",h,stdout,0,0); - err = grib_print(h, key, d); - grib_dumper_delete(d); - return err; - } -} - -int grib_c_get_error_string(int* err, char* buf, int len){ - const char* err_msg = grib_get_error_message(*err); - size_t erlen = strlen(err_msg); - if( (size_t)len < erlen) return GRIB_ARRAY_TOO_SMALL; - - strncpy(buf, err_msg,(size_t)erlen); - buf[erlen] = '\0'; - - return GRIB_SUCCESS; -} - -int grib_c_get_size_int(int* gid, char* key, int* val){ - grib_handle *h = get_handle(*gid); - int err = GRIB_SUCCESS; - size_t tsize = 0; - - if(!h){ - return GRIB_INVALID_GRIB; - }else{ - err = grib_get_size(h, key, &tsize); - *val = tsize; - return err; - } -} - -int grib_c_get_message_offset(int* gid, size_t* offset){ - int err = GRIB_SUCCESS; - off_t myoffset; - grib_handle *h = get_handle(*gid); - - if(!h) - return GRIB_INVALID_GRIB; - else { - err=grib_get_message_offset(h, &myoffset); - *offset=myoffset; - return err; - } -} - -int grib_c_get_message_size(int* gid, size_t* size){ - grib_handle *h = get_handle(*gid); - - if(!h) - return GRIB_INVALID_GRIB; - else - return grib_get_message_size(h, size); -} - -int grib_c_get_string_length(int* gid, char* key, size_t* val){ - grib_handle *h = get_handle(*gid); - - if(!h) - return GRIB_INVALID_GRIB; - else - return grib_get_string_length(h, key, val); - -} - -int grib_c_get_size_long(int* gid, char* key, long* val){ - grib_handle *h = get_handle(*gid); - int err = GRIB_SUCCESS; - size_t tsize = 0; - - if(!h){ - return GRIB_INVALID_GRIB; - }else{ - err = grib_get_size(h, key, &tsize); - *val = tsize; - return err; - } -} - -int grib_c_index_get_size_int(int* gid, char* key, int* val){ - grib_index *h = get_index(*gid); - int err = GRIB_SUCCESS; - size_t tsize = 0; - - if(!h){ - return GRIB_INVALID_GRIB; - }else{ - err = grib_index_get_size(h, key, &tsize); - *val = tsize; - return err; - } -} - -int grib_c_index_get_size_long(int* gid, char* key, long* val){ - grib_index *h = get_index(*gid); - int err = GRIB_SUCCESS; - size_t tsize = 0; - - if(!h){ - return GRIB_INVALID_GRIB; - }else{ - err = grib_index_get_size(h, key, &tsize); - *val = tsize; - return err; - } -} - -int grib_c_get_int(int* gid, char* key, int* val){ - grib_handle *h = get_handle(*gid); - long long_val; - int err = GRIB_SUCCESS; - - if(!h) return GRIB_INVALID_GRIB; - err = grib_get_long(h, key,&long_val); - *val = long_val; - return err; -} - -int grib_c_get_long(int* gid, char* key, long* val){ - grib_handle *h = get_handle(*gid); - int err = GRIB_SUCCESS; - - if(!h) return GRIB_INVALID_GRIB; - err = grib_get_long(h, key, val); - return err; -} - -int grib_c_get_double(int* gid, char* key, double* val){ - grib_handle *h = get_handle(*gid); - int err = GRIB_SUCCESS; - - if(!h) return GRIB_INVALID_GRIB; - err = grib_get_double(h, key, val); - return err; -} - -int grib_c_get_int_array(int* gid, char* key, int *val, size_t* size){ - - grib_handle *h = get_handle(*gid); - long* long_val = NULL; - int err = GRIB_SUCCESS; - size_t lsize = *size; - - if(!h) return GRIB_INVALID_GRIB; - - if(sizeof(long) == sizeof(int)){ - long_val = (long*)val; - err = grib_get_long_array(h, key, long_val, &lsize); - *size = lsize; - return err; - } - if(*size) - long_val = grib_context_malloc(h->context,(*size)*(sizeof(long))); - else - long_val = grib_context_malloc(h->context,(sizeof(long))); - - if(!long_val) return GRIB_OUT_OF_MEMORY; - err = grib_get_long_array(h, key, long_val, &lsize); - - for(*size=0;*sizecontext,long_val); - return err; -} - -int grib_c_get_long_array(int* gid, char* key, long *val, int* size){ - - grib_handle *h = get_handle(*gid); - int err = GRIB_SUCCESS; - size_t lsize = *size; - - if(!h) return GRIB_INVALID_GRIB; - - err = grib_get_long_array(h, key, val, &lsize); - *size=lsize; - - return err; -} - -int grib_c_index_get_string(int* gid, char* key, char* val, int *eachsize,int* size){ - - grib_index *h = get_index(*gid); - int err = GRIB_SUCCESS; - size_t i; - size_t lsize = *size; - char** bufval; - char* p=val; - - if(!h) return GRIB_INVALID_GRIB; - - bufval=(char**)grib_context_malloc_clear(h->context,sizeof(char*)* *size); - - err = grib_index_get_string(h, key, bufval, &lsize); - *size = lsize; - - if (err) return err; - - for (i=0;icontext,bufval); - printf("eachsize=%d strlen(bufval[i])=%d\n",*eachsize,(int)strlen(bufval[i])); - return GRIB_ARRAY_TOO_SMALL; - } - memcpy(p,bufval[i],l); - p+=l; - for (j=0;j<*eachsize-l;j++) *(p++)=' '; - } - grib_context_free(h->context,bufval); - - return err; -} - -int grib_c_index_get_long(int* gid, char* key, long *val, int* size){ - - grib_index *h = get_index(*gid); - int err = GRIB_SUCCESS; - size_t lsize = *size; - - if(!h) return GRIB_INVALID_GRIB; - err = grib_index_get_long(h, key, val, &lsize); - *size = lsize; - return err; -} - -int grib_c_index_get_int(int* gid, char* key, int *val, int* size){ - - grib_index *h = get_index(*gid); - int err = GRIB_SUCCESS; - size_t lsize = *size; - long* lval=0; - size_t i; - - if(!h) return GRIB_INVALID_GRIB; - - lval=grib_context_malloc(h->context,sizeof(long)* *size); - if (!lval) return GRIB_OUT_OF_MEMORY; - - err = grib_index_get_long(h, key, lval, &lsize); - for (i=0;icontext,(lsize)*(sizeof(long))); - else - long_val = grib_context_malloc(h->context,(sizeof(long))); - - if(!long_val) return GRIB_OUT_OF_MEMORY; - - for(lsize=0;lsize<(*size);lsize++) - long_val[lsize] = val[lsize]; - - err = grib_set_long_array(h, key, long_val, lsize); - - grib_context_free(h->context,long_val); - return err; -} - -int grib_c_set_long_array(int* gid, char* key, long* val, int* size){ - grib_handle *h = get_handle(*gid); - int err = GRIB_SUCCESS; - size_t lsize = *size; - - if(!h) return GRIB_INVALID_GRIB; - - return grib_set_long_array(h, key, val, lsize); - - return err; -} - -int grib_c_set_int(int* gid, char* key, int* val){ - grib_handle *h = get_handle(*gid); - long long_val = *val; - if(!h) return GRIB_INVALID_GRIB; - return grib_set_long(h, key, long_val); -} - -int grib_c_set_long(int* gid, char* key, long* val){ - grib_handle *h = get_handle(*gid); - if(!h) return GRIB_INVALID_GRIB; - return grib_set_long(h, key, *val); -} - -int grib_c_set_missing(int* gid, char* key){ - - grib_handle *h = get_handle(*gid); - if(!h) return GRIB_INVALID_GRIB; - - return grib_set_missing(h, key); -} - -/* - * Submits all keys with the given values in one go. - * 'keyvals' is a string of the form: - * key1=val1,key2=val2,key3=val3 - */ -int grib_c_set_key_vals(int* gid, char* keyvals) -{ - grib_handle* h = get_handle(*gid); - if (!h) return GRIB_INVALID_GRIB; - { - int err = GRIB_SUCCESS; - grib_values values[1024]={{0,},}; - int count = 1000; /* max. num key/val pairs */ - if ((err = parse_keyval_string(NULL, keyvals, 1, GRIB_TYPE_UNDEFINED, values, &count)) != GRIB_SUCCESS) { - return err; - } - if ((err = grib_set_values(h,values,count)) != GRIB_SUCCESS) { - return err; - } - } - return GRIB_SUCCESS; -} - -int grib_c_is_missing(int* gid, char* key,int* isMissing) -{ - int err=0; - grib_handle *h = get_handle(*gid); - if(!h) return GRIB_INVALID_GRIB; - - *isMissing=grib_is_missing(h, key,&err); - return err; -} - -int grib_c_is_defined(int* gid, char* key,int* isDefined) -{ - grib_handle *h = get_handle(*gid); - if(!h) return GRIB_INVALID_GRIB; - - *isDefined=grib_is_defined(h, key); - return GRIB_SUCCESS; -} - -int grib_c_set_real4(int* gid, char* key, float* val) -{ - grib_handle *h = get_handle(*gid); - double val8 = *val; - if(!h) return GRIB_INVALID_GRIB; - - return grib_set_double(h, key, val8); -} - -int grib_c_get_real4_element(int* gid, char* key, int* index,float* val) -{ - grib_handle *h = get_handle(*gid); - int err = GRIB_SUCCESS; - double val8 = 0; - - if(!h) return GRIB_INVALID_GRIB; - - err = grib_get_double_element(h, key, *index,&val8); - *val = val8; - return err; -} - -int grib_c_get_real4_elements(int* gid, char* key,int* index, float *val,int* size) -{ - grib_handle *h = get_handle(*gid); - int err = GRIB_SUCCESS; - size_t lsize = *size; - size_t i=0; - double* val8 = NULL; - - if(!h) return GRIB_INVALID_GRIB; - - if(*size) - val8 = grib_context_malloc(h->context,(*size)*(sizeof(double))); - else - val8 = grib_context_malloc(h->context,sizeof(double)); - - if(!val8) return GRIB_OUT_OF_MEMORY; - - - err = grib_get_double_elements(h, key, index,(long)lsize,val8); - - for(i=0; icontext,val8); - - return err; -} - -int grib_c_get_real4(int* gid, char* key, float* val) -{ - grib_handle *h = get_handle(*gid); - int err = GRIB_SUCCESS; - double val8 = 0; - - if(!h) return GRIB_INVALID_GRIB; - - err = grib_get_double(h, key, &val8); - *val = val8; - return err; -} - -int grib_c_get_real4_array(int* gid, char* key, float *val, size_t* size) -{ - grib_handle *h = get_handle(*gid); - int err = GRIB_SUCCESS; - size_t lsize = *size; - double* val8 = NULL; - - if(!h) return GRIB_INVALID_GRIB; - - if(*size) - val8 = grib_context_malloc(h->context,(*size)*(sizeof(double))); - else - val8 = grib_context_malloc(h->context,sizeof(double)); - - if(!val8) return GRIB_OUT_OF_MEMORY; - - err = grib_get_double_array(h, key, val8, &lsize); - - for(*size=0;*sizecontext,val8); - - return err; -} - -int grib_c_set_real4_array(int* gid, char* key, float*val, int* size) -{ - grib_handle *h = get_handle(*gid); - int err = GRIB_SUCCESS; - size_t lsize = *size; - double* val8 = NULL; - - if(!h) return GRIB_INVALID_GRIB; - - if(*size) - val8 = grib_context_malloc(h->context,lsize*(sizeof(double))); - else - val8 = grib_context_malloc(h->context,sizeof(double)); - - if(!val8) return GRIB_OUT_OF_MEMORY; - - for(lsize=0; lsize<(size_t)*size; lsize++) - val8[lsize] = val[lsize]; - - err = grib_set_double_array(h, key, val8, lsize); - grib_context_free(h->context,val8); - return err; -} - -int grib_c_index_select_real8(int* gid, char* key, double* val) -{ - grib_index *h = get_index(*gid); - - if(!h) return GRIB_INVALID_GRIB; - return grib_index_select_double(h, key, *val); -} - -int grib_c_index_select_string(int* gid, char* key, char* val) -{ - grib_index *h = get_index(*gid); - - if(!h) return GRIB_INVALID_GRIB; - return grib_index_select_string(h, key, val); -} - -int grib_c_index_select_int(int* gid, char* key, int* val) -{ - grib_index *h = get_index(*gid); - long lval=*val; - - if(!h) return GRIB_INVALID_GRIB; - return grib_index_select_long(h, key, lval); -} - -int grib_c_index_select_long(int* gid, char* key, long* val) -{ - grib_index *h = get_index(*gid); - - if(!h) return GRIB_INVALID_GRIB; - return grib_index_select_long(h, key, *val); -} - -int grib_c_set_real8(int* gid, char* key, double* val) -{ - grib_handle *h = get_handle(*gid); - - if(!h) return GRIB_INVALID_GRIB; - return grib_set_double(h, key, *val); -} - -int grib_c_get_real8(int* gid, char* key, double* val) -{ - grib_handle *h = get_handle(*gid); - - if(!h) return GRIB_INVALID_GRIB; - - return grib_get_double(h, key, val); -} - -int grib_c_set_double(int *gid, char *key, double *val) -{ - grib_handle *h = get_handle(*gid); - - if(!h) return GRIB_INVALID_GRIB; - - return grib_set_double(h, key, *val); -} - -int grib_c_get_real8_element(int* gid, char* key,int* index, double* val) -{ - grib_handle *h = get_handle(*gid); - - if(!h) return GRIB_INVALID_GRIB; - - return grib_get_double_element(h, key, *index,val); -} - -int grib_c_get_real8_elements(int* gid, char* key,int* index, double* val, int *size) -{ - grib_handle *h = get_handle(*gid); - - if(!h) return GRIB_INVALID_GRIB; - - return grib_get_double_elements(h, key, index,*size,val); -} - -int grib_c_find_nearest_four_single(int* gid,int* is_lsm, - double* inlat,double* inlon, - double* outlats,double* outlons, - double* values,double* distances, - int* indexes) -{ - grib_nearest* nearest=NULL; - int err=0, result=0; - unsigned long flags=0; - size_t len=4; - grib_handle *h = get_handle(*gid); - - if(!h) return GRIB_INVALID_GRIB; - - nearest=grib_nearest_new(h,&err); - if (err!=GRIB_SUCCESS) return err; - - result = grib_nearest_find(nearest,h,*inlat,*inlon, - flags,outlats,outlons,values,distances,indexes,&len); - grib_nearest_delete(nearest); - return result; -} - -int grib_c_find_nearest_single(int* gid,int* is_lsm, - double* inlats,double* inlons, - double* outlats,double* outlons, - double* values,double* distances, - int* indexes) -{ - grib_handle *h = get_handle(*gid); - - if(!h) return GRIB_INVALID_GRIB; - - return grib_nearest_find_multiple(h,*is_lsm, - inlats,inlons,1,outlats,outlons, - values,distances,indexes); -} - -int grib_c_find_nearest_multiple(int* gid,int* is_lsm, - double* inlats,double* inlons, - double* outlats,double* outlons, - double* values,double* distances, - int* indexes, int* npoints) -{ - grib_handle *h = get_handle(*gid); - - if(!h) return GRIB_INVALID_GRIB; - - return grib_nearest_find_multiple(h,*is_lsm, - inlats,inlons,*npoints,outlats,outlons, - values,distances,indexes); -} - -int grib_c_get_real8_array(int* gid, char* key, double*val, int* size) -{ - grib_handle *h = get_handle(*gid); - int err = GRIB_SUCCESS; - size_t lsize = *size; - - if(!h){ - return GRIB_INVALID_GRIB; - }else{ - err = grib_get_double_array(h, key, val, &lsize); - *size = lsize; - return err; - } -} - -int grib_c_set_real8_array(int* gid, char* key, double*val, int* size) -{ - grib_handle *h = get_handle(*gid); - - size_t lsize = *size; - - if(!h) return GRIB_INVALID_GRIB; - - return grib_set_double_array(h, key, val, lsize); -} - -int grib_c_set_double_array(int* gid, char* key, double*val, int* size) -{ - grib_handle *h = get_handle(*gid); - - size_t lsize = *size; - - if(!h) return GRIB_INVALID_GRIB; - - return grib_set_double_array(h, key, val, lsize); -} - -int grib_c_get_string(int* gid, char* key, char* val, size_t *lsize) -{ - grib_handle *h = get_handle(*gid); - int err = GRIB_SUCCESS; - - if(!h) return GRIB_INVALID_GRIB; - - err = grib_get_string(h, key, val, lsize); - - return err; -} - -int grib_c_get_string_array(int* gid, char* key, char** val, size_t *lsize) -{ - grib_handle *h = get_handle(*gid); - int err = GRIB_SUCCESS; - - if(!h) return GRIB_INVALID_GRIB; - - err = grib_get_string_array(h, key, val, lsize); - - return err; -} - -int grib_c_set_string(int* gid, char* key, char* val, int len2) -{ - grib_handle *h = get_handle(*gid); - - size_t lsize = len2; - - if(!h) return GRIB_INVALID_GRIB; - - return grib_set_string(h, key, val, &lsize); -} - -int grib_c_set_string_array(int *gid, char *key, const char **val) -{ - grib_handle *h = get_handle(*gid); - int err = GRIB_SUCCESS; - size_t lsize = 0; - - if(!h) return GRIB_INVALID_GRIB; - - /* Note: The array passed in will have its final entry as NULL */ - /* so to find its size we just iterate thru it. */ - /* See typemap for char** in swig interface file */ - while(val[lsize]) { - ++lsize; - } - err = grib_set_string_array(h, key, val, lsize); - return err; -} - -int grib_c_get_data_real4(int* gid,float* lats, float* lons,float* values,size_t* size) -{ - grib_handle *h = get_handle(*gid); - int err = GRIB_SUCCESS; - double *lat8=NULL,*lon8=NULL,*val8 = NULL; - size_t i=0; - - if(!h) return GRIB_INVALID_GRIB; - - val8 = grib_context_malloc(h->context,(*size)*(sizeof(double))); - if(!val8) return GRIB_OUT_OF_MEMORY; - lon8 = grib_context_malloc(h->context,(*size)*(sizeof(double))); - if(!lon8) return GRIB_OUT_OF_MEMORY; - lat8 = grib_context_malloc(h->context,(*size)*(sizeof(double))); - if(!lat8) return GRIB_OUT_OF_MEMORY; - - err=grib_get_data(h,lat8,lon8,val8); - - for(i=0;i<*size;i++) { - values[i] = val8[i]; - lats[i] = lat8[i]; - lons[i] = lon8[i]; - } - - grib_context_free(h->context,val8); - grib_context_free(h->context,lat8); - grib_context_free(h->context,lon8); - - return err; -} -/* -int grib_c_get_data_real8(int* gid,double* lats, double* lons,double* values,size_t* size) -{ - grib_handle *h = get_handle(*gid); - return grib_get_data(h,lats,lons,values); -} -*/ -int grib_c_copy_message(int* gid, void* mess,size_t* len) -{ - grib_handle *h = get_handle(*gid); - if(!h) - return GRIB_INVALID_GRIB; - - if(*len < h->buffer->ulength) { - grib_context_log(h->context,GRIB_LOG_ERROR,"grib_copy_message: buffer=%ld message size=%ld",*len,h->buffer->ulength); - return GRIB_BUFFER_TOO_SMALL; - } - - memcpy(mess,h->buffer->data,h->buffer->ulength); - *len=h->buffer->ulength; - return GRIB_SUCCESS; -} - -int grib_c_bufr_copy_data(int *msgid_src, int *msgid_dst) -{ - int err = 0; - grib_handle* src = get_handle(*msgid_src); - grib_handle* dest = get_handle(*msgid_dst); - if (!src || !dest) { - return GRIB_INVALID_GRIB; - } - - err = codes_bufr_copy_data(src, dest); - return err; -} - -void grib_c_check(int* err,char* call,char* str) -{ - grib_context* c=grib_context_get_default(); - if ( *err == GRIB_SUCCESS || *err == GRIB_END_OF_FILE ) return; - grib_context_log(c,GRIB_LOG_ERROR,"%s: %s %s", - call,str,grib_get_error_message(*err)); - exit(*err); -} - -int grib_c_write(int* gid, FILE* f) -{ - int err = 0; - grib_handle *h = get_handle(*gid); - const void* mess = NULL; - size_t mess_len = 0; - - if(!f) return GRIB_INVALID_FILE; - if (!h) return GRIB_INVALID_GRIB; - - err = grib_get_message(h,&mess,&mess_len); - if (err) return err; - if(fwrite(mess,1, mess_len,f) != mess_len) { - perror("grib_write"); - return GRIB_IO_PROBLEM; - } - err = fflush(f); - if(err) { - perror("write flush"); - return GRIB_IO_PROBLEM; - } - return GRIB_SUCCESS; -} - -int grib_c_multi_new(int* mgid) -{ - grib_multi_handle *mh = grib_multi_handle_new(0); - if (!mh) return GRIB_INVALID_GRIB; - push_multi_handle(mh,mgid); - return GRIB_SUCCESS; -} - -int grib_c_multi_write(int* gid, FILE* f) -{ - grib_multi_handle *h = get_multi_handle(*gid); - - if(!f) return GRIB_INVALID_FILE; - if (!h) return GRIB_INVALID_GRIB; - - return grib_multi_handle_write(h,f); -} - -int grib_c_multi_append(int* ingid, int* sec,int* mgid) -{ - grib_handle *h = get_handle(*ingid); - grib_multi_handle *mh = get_multi_handle(*mgid); - - if (!h) return GRIB_INVALID_GRIB; - - if (!mh) { - mh=grib_multi_handle_new(h->context); - push_multi_handle(mh,mgid); - } - - return grib_multi_handle_append(h,*sec,mh); -} - -int grib_c_get_native_type(int* gid, char* key, int* type) -{ - grib_handle *h = get_handle(*gid); - - if (!h) return GRIB_INVALID_GRIB; - - return grib_get_native_type(h, key, type); -} - -int grib_c_index_write(int* gid, char* file) -{ - grib_index *i = get_index(*gid); - int err = GRIB_SUCCESS; - - if (!i) { - return GRIB_INVALID_GRIB; - } else { - err = grib_index_write(i,file); - return err; - } -} - -int grib_c_index_read(char* file, int* gid) -{ - int err = 0; - grib_index *i = NULL; - - if (*file) { - i = grib_index_read(0,file,&err); - if (i) { - push_index(i,gid); - return GRIB_SUCCESS; - } else { - *gid = -1; - return GRIB_END_OF_FILE; - } - } - - *gid=-1; - return GRIB_INVALID_FILE; -} - -void no_fail_on_wrong_length(int flag) -{ - grib_context *c = grib_context_get_default(); - int value; - assert(c != NULL); - value = (flag != 0) ? 1 : 0; - c->no_fail_on_wrong_length = value; -} - -void grib_c_gts_header_on(void) -{ - grib_context *c = grib_context_get_default(); - assert(c != NULL); - grib_gts_header_on(c); -} - -void grib_c_gts_header_off(void) -{ - grib_context *c = grib_context_get_default(); - assert(c != NULL); - grib_gts_header_off(c); -} - -long grib_c_get_api_version(void) -{ - return grib_get_api_version(); -} - -int grib_c_get_message(int *gid, const void **msg, size_t *size) -{ - grib_handle *h = get_handle(*gid); - return grib_get_message(h,msg,size); -} - -void grib_c_set_definitions_path(const char* path) -{ - grib_context *c = grib_context_get_default(); - grib_context_set_definitions_path(c, path); -} - -void grib_c_set_samples_path(const char* path) -{ - grib_context *c = grib_context_get_default(); - grib_context_set_samples_path(c, path); -} diff --git a/python3/grib_interface.h b/python3/grib_interface.h deleted file mode 100644 index cac057571..000000000 --- a/python3/grib_interface.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef GRIB_INTERFACE_H -#define GRIB_INTERFACE_H - -int grib_c_read_any_from_file(int *fid, char *buffer, int *nbytes); -int grib_c_write_file(int *fid, char *buffer, size_t *nbytes); -int grib_c_read_file(int *fid, char *buffer, size_t *nbytes); -int grib_c_open_file(int *fid, char *name, char *op); -int grib_c_close_file(int *fid); -int grib_c_multi_support_on(void); -int grib_c_multi_support_off(void); -int grib_c_iterator_new(int *gid, int *iterid, int *mode); -int grib_c_iterator_next(int *iterid, double *lat, double *lon, double *value); -int grib_c_iterator_delete(int *iterid); -int grib_c_keys_iterator_new(int *gid, int *iterid, char *name_space); -int grib_c_keys_iterator_next(int *iterid); -int grib_c_keys_iterator_get_name(int *iterid, char *name, int len); -int grib_c_keys_iterator_rewind(int *kiter); -int grib_c_keys_iterator_delete(int *iterid); -int codes_c_bufr_keys_iterator_new(int *gid, int *iterid); -int codes_c_bufr_keys_iterator_next(int *iterid); -int codes_c_bufr_keys_iterator_get_name(int *iterid, char *name, int len); -int codes_c_bufr_keys_iterator_rewind(int *kiter); -int codes_c_bufr_keys_iterator_delete(int *iterid); - -int grib_c_gribex_mode_on(void); -int grib_c_gribex_mode_off(void); -int grib_c_skip_computed(int *iterid); -int grib_c_skip_coded(int *iterid); -int grib_c_skip_edition_specific(int *iterid); -int grib_c_skip_duplicates(int *iterid); -int grib_c_skip_read_only(int *iterid); -int grib_c_skip_function(int *iterid); -int grib_c_new_from_message(int *gid, void *buffer, size_t *bufsize); -int grib_c_new_from_message_copy(int *gid, void *buffer, size_t *bufsize); -int grib_c_grib_new_from_samples(int *gid, char *name); -int grib_c_bufr_new_from_samples(int *gid, char *name); -int grib_c_clone(int *gidsrc, int *giddest); -int grib_c_copy_namespace(int *gidsrc, char *name, int *giddest); -int grib_c_count_in_file(FILE *f, int *n); - -int codes_c_close_file(int fd, char* fname); -int grib_c_new_from_file(FILE *f, int fd, char* fname, int *gid, int headers_only); -int grib_c_new_any_from_file(FILE *f, int fd, char* fname, int headers_only,int *gid); -int grib_c_new_bufr_from_file(FILE *f, int fd, char* fname, int headers_only,int *gid); -int grib_c_new_gts_from_file(FILE *f, int fd, char* fname, int headers_only, int *gid); - -int grib_c_new_metar_from_file(FILE* f,int headers_only, int* gid); -int grib_c_new_from_index(int *iid, int *gid); -int grib_c_index_new_from_file(char *file, char *keys, int *gid); -int grib_c_index_add_file(int* iid, char* file); -int grib_c_index_release(int *hid); -int grib_c_multi_release(int *hid); -int grib_c_release(int *hid); -int grib_c_dump(int *gid); -int grib_c_print(int *gid, char *key); -int grib_c_get_error_string(int *err, char *buf, int len); -int grib_c_get_size_int(int *gid, char *key, int *val); -int grib_c_get_size_long(int *gid, char *key, long *val); -int grib_c_index_get_size_int(int *gid, char *key, int *val); -int grib_c_index_get_size_long(int *gid, char *key, long *val); -int grib_c_get_int(int *gid, char *key, int *val); -int grib_c_get_long(int *gid, char *key, long *val); -int grib_c_get_double(int *gid, char *key, double *val); -int grib_c_get_int_array(int *gid, char *key, int *val, size_t *size); -int grib_c_get_long_array(int *gid, char *key, long *val, int *size); -int grib_c_index_get_string(int *gid, char *key, char *val, int *eachsize, int *size); -int grib_c_index_get_long(int *gid, char *key, long *val, int *size); -int grib_c_index_get_int(int *gid, char *key, int *val, int *size); -int grib_c_index_get_real8(int *gid, char *key, double *val, int *size); -int grib_c_set_int_array(int *gid, char *key, int *val, size_t *size); -int grib_c_set_long_array(int *gid, char *key, long *val, int *size); -int grib_c_set_int(int *gid, char *key, int *val); -int grib_c_set_long(int *gid, char *key, long *val); -int grib_c_set_missing(int *gid, char *key); -int grib_c_set_key_vals(int* gid, char* keyvals); -int grib_c_is_missing(int *gid, char *key, int *isMissing); -int grib_c_is_defined(int *gid, char *key, int *isDefined); -int grib_c_set_real4(int *gid, char *key, float *val); -int grib_c_get_real4_element(int *gid, char *key, int *index, float *val); -int grib_c_get_real4_elements(int *gid, char *key, int *index, float *val, int *size); -int grib_c_get_real4(int *gid, char *key, float *val); -int grib_c_get_real4_array(int *gid, char *key, float *val, size_t *size); -int grib_c_set_real4_array(int *gid, char *key, float *val, int *size); -int grib_c_index_select_real8(int *gid, char *key, double *val); -int grib_c_index_select_string(int *gid, char *key, char *val); -int grib_c_index_select_int(int *gid, char *key, int *val); -int grib_c_index_select_long(int *gid, char *key, long *val); -int grib_c_set_real8(int *gid, char *key, double *val); -int grib_c_get_real8(int *gid, char *key, double *val); -int grib_c_get_real8_element(int *gid, char *key, int *index, double *val); -int grib_c_get_real8_elements(int *gid, char *key, int *index, double *val, int *size); -int grib_c_find_nearest_four_single(int *gid, int *is_lsm, double *inlat, double *inlon, double *outlats, double *outlons, double *values, double *distances, int *indexes); -int grib_c_find_nearest_single(int *gid, int *is_lsm, double *inlats, double *inlons, double *outlats, double *outlons, double *values, double *distances, int *indexes); -int grib_c_find_nearest_multiple(int *gid, int *is_lsm, double *inlats, double *inlons, double *outlats, double *outlons, double *values, double *distances, int *indexes, int *npoints); -int grib_c_get_real8_array(int *gid, char *key, double *val, int *size); -int grib_c_set_real8_array(int *gid, char *key, double *val, int *size); -int grib_c_get_string(int *gid, char *key, char *val, size_t *lsize); -int grib_c_get_string_array(int* gid, char* key, char** val, size_t *lsize); -int grib_c_set_string(int *gid, char *key, char *val, int len2); -int grib_c_set_string_array(int *gid, char *key, const char **val); -int grib_c_get_data_real4(int *gid, float *lats, float *lons, float *values, size_t *size); -/*int grib_c_get_data_real8(int *gid, double *lats, double *lons, double *values, size_t *size);*/ -int grib_c_get_message_size(int *gid, size_t *len); -int grib_c_get_message_offset(int *gid, size_t *len); -int grib_c_copy_message(int *gid, void *mess, size_t *len); -int grib_c_bufr_copy_data(int *msgid_src, int *msgid_dst); -void grib_c_check(int *err, char *call, char *str); -int grib_c_write(int *gid, FILE *f); -int grib_c_multi_new(int* mgid); -int grib_c_multi_write(int *gid, FILE *f); -int grib_c_multi_append(int *ingid, int *sec, int *mgid); -int grib_c_set_double_array(int* gid, char* key, double*val, int* size); -int grib_c_set_double(int* gid, char* key, double*val); -int grib_c_get_native_type(int* gid, char* key, int* type); -int grib_c_index_write(int* gid, char* file); -int grib_c_index_read(char* file, int* gid); -void no_fail_on_wrong_length(int flag); -long grib_c_get_api_version(void); -void grib_c_gts_header_on(void); -void grib_c_gts_header_off(void); -int grib_c_get_message(int *gid, const void **msg, size_t *size); -int grib_c_get_string_length(int* gid, char* key, size_t* val); -void grib_c_set_definitions_path(const char* path); -void grib_c_set_samples_path(const char* path); - -#endif diff --git a/python3/gribapi.c b/python3/gribapi.c deleted file mode 100644 index c74cce942..000000000 --- a/python3/gribapi.c +++ /dev/null @@ -1,196 +0,0 @@ -/* - * (C) Copyright 2005- ECMWF. - * - * This software is licensed under the terms of the Apache Licence Version 2.0 - * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. - * - * In applying this licence, ECMWF does not waive the privileges and immunities granted to it by - * virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. - */ - -#include "Python.h" -#include "grib_api.h" - -static PyObject* Error; - -PyDoc_STRVAR(gribapi__doc__, - "gribapi point evalutation kernel"); - -PyDoc_STRVAR(read__doc__, - "gribapi point evalutation kernel"); - -static PyObject * -py_new_handle_from_file(PyObject *self, PyObject *args) -{ - /* TODO: Call PyFile_Check or PyFile_CheckExact */ - int err = 0; - grib_handle *h; - PyObject *file; - - if(!PyArg_ParseTuple(args,"O",&file)) - return NULL; - - h = grib_handle_new_from_file(NULL,PyFile_AsFile(file),&err); - - if(err) { - /* http://www.ragestorm.net/tutorial?id=21 */ - PyErr_Format(Error,"grib_api: %s",grib_get_error_message(err)); - return NULL; - } - - - /* TODO: Do an OO version */ - - if(h) - return PyLong_FromVoidPtr(h); - - Py_RETURN_NONE; -} - -static PyObject * -py_handle_delete(PyObject *self, PyObject *args) -{ - PyObject* h; - if(!PyArg_ParseTuple(args,"O",&h)) - return NULL; - grib_handle_delete(PyLong_AsVoidPtr(h)); - Py_INCREF(Py_None); - return Py_None; -} - -static PyObject * -py_keys_iterator_delete(PyObject *self, PyObject *args) -{ - PyObject* h; - if(!PyArg_ParseTuple(args,"O",&h)) - return NULL; - grib_keys_iterator_delete(PyLong_AsVoidPtr(h)); - Py_INCREF(Py_None); - return Py_None; -} - - -static PyObject * -py_get_string(PyObject *self, PyObject *args) -{ - PyObject* h; - char *s; - size_t size; - char tmp[1024]; - int err; - - if(!PyArg_ParseTuple(args,"Os",&h,&s)) - return NULL; - - size = sizeof(tmp); - err = grib_get_string(PyLong_AsVoidPtr(h),s,tmp,&size); - - if(err) { - /* http://www.ragestorm.net/tutorial?id=21 */ - PyErr_Format(Error,"grib_api: %s %s",s,grib_get_error_message(err)); - return NULL; - } - - return PyString_InternFromString(tmp); - -} - -static PyObject * -py_keys_iterator_next(PyObject *self, PyObject *args) -{ - PyObject* h; - int more; - - if(!PyArg_ParseTuple(args,"O",&h)) - return NULL; - - more = grib_keys_iterator_next(PyLong_AsVoidPtr(h)); - if(more) - { - Py_RETURN_TRUE; - } - else - { - Py_RETURN_FALSE; - } -} - - -static PyObject * -py_keys_iterator_get_string(PyObject *self, PyObject *args) -{ - PyObject* h; - size_t size; - char tmp[1024]; - int err; - - if(!PyArg_ParseTuple(args,"O",&h)) - return NULL; - - size = sizeof(tmp); - err = grib_keys_iterator_get_string(PyLong_AsVoidPtr(h),tmp,&size); - - if(err) { - /* http://www.ragestorm.net/tutorial?id=21 */ - PyErr_Format(Error,"grib_api: %s",grib_get_error_message(err)); - return NULL; - } - - return PyString_InternFromString(tmp); - -} - -static PyObject * -py_keys_iterator_get_name(PyObject *self, PyObject *args) -{ - PyObject* h; - - if(!PyArg_ParseTuple(args,"O",&h)) - return NULL; - - - return PyString_InternFromString(grib_keys_iterator_get_name(PyLong_AsVoidPtr(h))); - -} - -static PyObject * -py_keys_iterator_new(PyObject *self, PyObject *args) -{ - PyObject* h; - char *s; - - if(!PyArg_ParseTuple(args,"Os",&h,&s)) - return NULL; - - return PyLong_FromVoidPtr(grib_keys_iterator_new(PyLong_AsVoidPtr(h),GRIB_KEYS_ITERATOR_ALL_KEYS,s)); -} - -static PyMethodDef gribapi_methods[] = { - - {"new_handle_from_file", py_new_handle_from_file, METH_VARARGS, read__doc__}, - {"get_string", py_get_string, METH_VARARGS, read__doc__}, - {"keys_iterator_new", py_keys_iterator_new, METH_VARARGS, read__doc__}, - {"keys_iterator_delete", py_keys_iterator_delete, METH_VARARGS, read__doc__}, - {"handle_delete", py_handle_delete, METH_VARARGS, read__doc__}, - {"keys_iterator_get_string", py_keys_iterator_get_string, METH_VARARGS, read__doc__}, - {"keys_iterator_get_name", py_keys_iterator_get_name, METH_VARARGS, read__doc__}, - {"keys_iterator_next", py_keys_iterator_next, METH_VARARGS, read__doc__}, - - - {NULL, NULL} /* sentinel */ -}; - -PyMODINIT_FUNC -initgribapi(void) -{ - PyObject* m; - - /* There have been several InitModule functions over time */ - m = Py_InitModule3("gribapi", gribapi_methods, gribapi__doc__); - - /* TODO: Create our own exception */ - Error = PyErr_NewException("grib.apierror",NULL,NULL); - Py_INCREF(Error); - PyModule_AddObject(m, "error", Error); -} - diff --git a/python3/gribapi/__init__.py b/python3/gribapi/__init__.py deleted file mode 100644 index 51f03e0e3..000000000 --- a/python3/gribapi/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from .gribapi import * # noqa -from .gribapi import __version__ diff --git a/python3/gribapi/errors.py b/python3/gribapi/errors.py deleted file mode 100644 index 7b0e6cd60..000000000 --- a/python3/gribapi/errors.py +++ /dev/null @@ -1,235 +0,0 @@ -""" -Exception class hierarchy -""" - -from . import gribapi_swig as _internal - - -class GribInternalError(Exception): - """ - @brief Wrap errors coming from the C API in a Python exception object. - - Base class for all exceptions - """ - - def __init__(self, value): - # Call the base class constructor with the parameters it needs - Exception.__init__(self, value) - if type(value) is int: - err, self.msg = _internal.grib_c_get_error_string(value, 1024) - assert err == 0 - else: - self.msg = value - - def __str__(self): - return self.msg - - -class WrongBitmapSizeError(GribInternalError): - """Size of bitmap is incorrect.""" -class OutOfRangeError(GribInternalError): - """Value out of coding range.""" -class UnsupportedEditionError(GribInternalError): - """Edition not supported..""" -class AttributeNotFoundError(GribInternalError): - """Attribute not found..""" -class TooManyAttributesError(GribInternalError): - """Too many attributes. Increase MAX_ACCESSOR_ATTRIBUTES.""" -class AttributeClashError(GribInternalError): - """Attribute is already present, cannot add.""" -class NullPointerError(GribInternalError): - """Null pointer.""" -class MissingBufrEntryError(GribInternalError): - """Missing BUFR table entry for descriptor.""" -class WrongConversionError(GribInternalError): - """Wrong type conversion.""" -class StringTooSmallError(GribInternalError): - """String is smaller than requested.""" -class InvalidKeyValueError(GribInternalError): - """Invalid key value.""" -class ValueDifferentError(GribInternalError): - """Value is different.""" -class DifferentEditionError(GribInternalError): - """Edition of two messages is different.""" -class InvalidBitsPerValueError(GribInternalError): - """Invalid number of bits per value.""" -class CorruptedIndexError(GribInternalError): - """Index is corrupted.""" -class MessageMalformedError(GribInternalError): - """Message malformed.""" -class UnderflowError(GribInternalError): - """Underflow.""" -class SwitchNoMatchError(GribInternalError): - """Switch unable to find a matching case.""" -class ConstantFieldError(GribInternalError): - """Constant field.""" -class MessageTooLargeError(GribInternalError): - """Message is too large for the current architecture.""" -class InternalArrayTooSmallError(GribInternalError): - """An internal array is too small.""" -class PrematureEndOfFileError(GribInternalError): - """End of resource reached when reading message.""" -class NullIndexError(GribInternalError): - """Null index.""" -class EndOfIndexError(GribInternalError): - """End of index reached.""" -class WrongGridError(GribInternalError): - """Grid description is wrong or inconsistent.""" -class NoValuesError(GribInternalError): - """Unable to code a field without values.""" -class EndError(GribInternalError): - """End of resource.""" -class WrongTypeError(GribInternalError): - """Wrong type while packing.""" -class NoDefinitionsError(GribInternalError): - """Definitions files not found.""" -class HashArrayNoMatchError(GribInternalError): - """Hash array no match.""" -class ConceptNoMatchError(GribInternalError): - """Concept no match.""" -class OutOfAreaError(GribInternalError): - """The point is out of the grid area.""" -class MissingKeyError(GribInternalError): - """Missing a key from the fieldset.""" -class InvalidOrderByError(GribInternalError): - """Invalid order by.""" -class InvalidNearestError(GribInternalError): - """Invalid nearest id.""" -class InvalidKeysIteratorError(GribInternalError): - """Invalid keys iterator id.""" -class InvalidIteratorError(GribInternalError): - """Invalid iterator id.""" -class InvalidIndexError(GribInternalError): - """Invalid index id.""" -class InvalidGribError(GribInternalError): - """Invalid grib id.""" -class InvalidFileError(GribInternalError): - """Invalid file id.""" -class WrongStepUnitError(GribInternalError): - """Wrong units for step (step must be integer).""" -class WrongStepError(GribInternalError): - """Unable to set step.""" -class InvalidTypeError(GribInternalError): - """Invalid key type.""" -class WrongLengthError(GribInternalError): - """Wrong message length.""" -class ValueCannotBeMissingError(GribInternalError): - """Value cannot be missing.""" -class InvalidSectionNumberError(GribInternalError): - """Invalid section number.""" -class NullHandleError(GribInternalError): - """Null handle.""" -class InvalidArgumentError(GribInternalError): - """Invalid argument.""" -class ReadOnlyError(GribInternalError): - """Value is read only.""" -class MemoryAllocationError(GribInternalError): - """Memory allocation error.""" -class GeocalculusError(GribInternalError): - """Problem with calculation of geographic attributes.""" -class NoMoreInSetError(GribInternalError): - """Code cannot unpack because of string too small.""" -class EncodingError(GribInternalError): - """Encoding invalid.""" -class DecodingError(GribInternalError): - """Decoding invalid.""" -class MessageInvalidError(GribInternalError): - """Message invalid.""" -class IOProblemError(GribInternalError): - """Input output problem.""" -class KeyValueNotFoundError(GribInternalError): - """Key/value not found.""" -class WrongArraySizeError(GribInternalError): - """Array size mismatch.""" -class CodeNotFoundInTableError(GribInternalError): - """Code not found in code table.""" -class FileNotFoundError(GribInternalError): - """File not found.""" -class ArrayTooSmallError(GribInternalError): - """Passed array is too small.""" -class MessageEndNotFoundError(GribInternalError): - """Missing 7777 at end of message.""" -class FunctionNotImplementedError(GribInternalError): - """Function not yet implemented.""" -class BufferTooSmallError(GribInternalError): - """Passed buffer is too small.""" -class InternalError(GribInternalError): - """Internal error.""" -class EndOfFileError(GribInternalError): - """End of resource reached.""" - -ERROR_MAP = { - -66 : WrongBitmapSizeError, - -65 : OutOfRangeError, - -64 : UnsupportedEditionError, - -63 : AttributeNotFoundError, - -62 : TooManyAttributesError, - -61 : AttributeClashError, - -60 : NullPointerError, - -59 : MissingBufrEntryError, - -58 : WrongConversionError, - -57 : StringTooSmallError, - -56 : InvalidKeyValueError, - -55 : ValueDifferentError, - -54 : DifferentEditionError, - -53 : InvalidBitsPerValueError, - -52 : CorruptedIndexError, - -51 : MessageMalformedError, - -50 : UnderflowError, - -49 : SwitchNoMatchError, - -48 : ConstantFieldError, - -47 : MessageTooLargeError, - -46 : InternalArrayTooSmallError, - -45 : PrematureEndOfFileError, - -44 : NullIndexError, - -43 : EndOfIndexError, - -42 : WrongGridError, - -41 : NoValuesError, - -40 : EndError, - -39 : WrongTypeError, - -38 : NoDefinitionsError, - -37 : HashArrayNoMatchError, - -36 : ConceptNoMatchError, - -35 : OutOfAreaError, - -34 : MissingKeyError, - -33 : InvalidOrderByError, - -32 : InvalidNearestError, - -31 : InvalidKeysIteratorError, - -30 : InvalidIteratorError, - -29 : InvalidIndexError, - -28 : InvalidGribError, - -27 : InvalidFileError, - -26 : WrongStepUnitError, - -25 : WrongStepError, - -24 : InvalidTypeError, - -23 : WrongLengthError, - -22 : ValueCannotBeMissingError, - -21 : InvalidSectionNumberError, - -20 : NullHandleError, - -19 : InvalidArgumentError, - -18 : ReadOnlyError, - -17 : MemoryAllocationError, - -16 : GeocalculusError, - -15 : NoMoreInSetError, - -14 : EncodingError, - -13 : DecodingError, - -12 : MessageInvalidError, - -11 : IOProblemError, - -10 : KeyValueNotFoundError, - -9 : WrongArraySizeError, - -8 : CodeNotFoundInTableError, - -7 : FileNotFoundError, - -6 : ArrayTooSmallError, - -5 : MessageEndNotFoundError, - -4 : FunctionNotImplementedError, - -3 : BufferTooSmallError, - -2 : InternalError, - -1 : EndOfFileError -} - - -def raise_grib_error(errid): - """ - Raise the GribInternalError corresponding to ``errid``. - """ - raise ERROR_MAP[errid](errid) diff --git a/python3/gribapi/gribapi.py b/python3/gribapi/gribapi.py deleted file mode 100644 index 702188edf..000000000 --- a/python3/gribapi/gribapi.py +++ /dev/null @@ -1,1977 +0,0 @@ -""" -@package gribapi -@brief This package is the \b Python 3 interface to ecCodes. It offers almost one to one bindings to the C API functions. - -The Python 3 interface to ecCodes uses the NumPy package -as the container of choice for the possible arrays of values that can be encoded/decoded in and from a message. -Numpy is a package used for scientific computing in Python and an efficient container for generic data. - -The Python 3 interface can be enabled/disabled from CMake by using the following flag:\n - -@code{.unparsed} - -DENABLE_PYTHON=ON -or - -DENABLE_PYTHON=OFF -@endcode - -When this is enabed, then the system Python will be used to build the interface. - -@em Requirements: - - - Python 3.5 or higher - - NumPy - -""" -# from gribapi import gribapi_swig as _internal -from . import gribapi_swig as _internal -import types -import sys -import os -from functools import wraps -# import inspect -from . import errors -from .errors import * # noqa - -try: - type(file) -except NameError: - import io - file=io.IOBase - long=int - -KEYTYPES = { - 1: int, - 2: float, - 3: str, -} - -CODES_PRODUCT_ANY = 0 -""" Generic product kind """ -CODES_PRODUCT_GRIB = 1 -""" GRIB product kind """ -CODES_PRODUCT_BUFR = 2 -""" BUFR product kind """ -CODES_PRODUCT_METAR = 3 -""" METAR product kind """ -CODES_PRODUCT_GTS = 4 -""" GTS product kind """ -CODES_PRODUCT_TAF = 5 -""" TAF product kind """ - -# Constants for 'missing' -GRIB_MISSING_DOUBLE = -1e+100 -GRIB_MISSING_LONG = 2147483647 - - -# GRIB-51 Skip function arguments type checking if the -# environment variable is defined -no_type_checks = os.environ.get('ECCODES_PYTHON_NO_TYPE_CHECKS') is not None - - -# Function-arguments type-checking decorator -# inspired from http://code.activestate.com/recipes/454322-type-checking-decorator/ -# modified to support multiple allowed types and all types in the same decorator call -# This returns a decorator. _params_ is the dict with the type specs -def require(**_params_): - """ - The actual decorator. Receives the target function in _func_ - """ - def check_types(_func_, _params_=_params_): - if no_type_checks: - return _func_ - - @wraps(_func_) - # The wrapper function. Replaces the target function and receives its args - def modified(*args, **kw): - arg_names = _func_.__code__.co_varnames - # argnames, varargs, kwargs, defaults = inspect.getargspec(_func_) - kw.update(zip(arg_names, args)) - for name, allowed_types in _params_.items(): - param = kw[name] - if isinstance(allowed_types, type): - allowed_types = (allowed_types,) - assert any([isinstance(param, type1) for type1 in allowed_types]), \ - "Parameter '%s' should be of type %s" % (name, " or ".join([t.__name__ for t in allowed_types])) - return _func_(**kw) - return modified - return check_types - -# @cond -class Bunch(dict): - """ - The collector of a bunch of named stuff :). - """ - def __init__(self, **kw): - dict.__init__(self, kw) - self.__dict__.update(kw) - - def __setitem__(self, key, value): - dict.__setitem__(self, key, value) - self.__dict__[key] = value - - def __setattr__(self, key, value): - dict.__setitem__(self, key, value) - self.__dict__[key] = value - - def __delitem__(self, key): - dict.__delitem__(self, key) - del self.__dict__[key] - - def __delattr__(self, key): - dict.__delitem__(self, key) - del self.__dict__[key] - - def __str__(self): - state = ["%s=%r" % (attribute, value) - for (attribute, value) - in self.__dict__.items()] - return '\n'.join(state) -# @endcond - - -# @cond -@require(errid=int) -def GRIB_CHECK(errid): - """ - Utility function checking the ecCodes error code and raising - an error if that was set. - - @param errid the C interface error id to check - @exception GribInternalError - """ - if errid: - errors.raise_grib_error(errid) -# @endcond - - -@require(fileobj=file) -def gts_new_from_file(fileobj, headers_only=False): - """ - @brief Load in memory a GTS message from a file. - - The message can be accessed through its id and will be available\n - until @ref grib_release is called.\n - - @param fileobj python file object - @param headers_only whether or not to load the message with the headers only - @return id of the GTS loaded in memory - @exception GribInternalError - """ - fd = fileobj.fileno() - fn = fileobj.name - err, gtsid = _internal.grib_c_new_gts_from_file(fileobj, fd, fn, headers_only, 0) - if err: - if err == _internal.GRIB_END_OF_FILE: - return None - else: - GRIB_CHECK(err) - else: - return gtsid - - -@require(fileobj=file) -def metar_new_from_file(fileobj, headers_only=False): - """ - @brief Load in memory a METAR message from a file. - - The message can be accessed through its id and will be available\n - until @ref grib_release is called.\n - - @param fileobj python file object - @param headers_only whether or not to load the message with the headers only - @return id of the METAR loaded in memory - @exception GribInternalError - """ - err, metarid = _internal.grib_c_new_metar_from_file(fileobj, headers_only, 0) - if err: - if err == _internal.GRIB_END_OF_FILE: - return None - else: - GRIB_CHECK(err) - else: - return metarid - - -@require(fileobj=file, product_kind=int) -def codes_new_from_file(fileobj, product_kind, headers_only=False): - """ - @brief Load in memory a message from a file for a given product. - - The message can be accessed through its id and will be available\n - until @ref grib_release is called.\n - - \b Examples: \ref get_product_kind.py "get_product_kind.py" - - @param fileobj python file object - @param product_kind one of CODES_PRODUCT_GRIB, CODES_PRODUCT_BUFR, CODES_PRODUCT_GTS or CODES_PRODUCT_ANY - @param headers_only whether or not to load the message with the headers only - @return id of the message loaded in memory - @exception GribInternalError - """ - if product_kind == CODES_PRODUCT_GRIB: - return grib_new_from_file(fileobj, headers_only) - if product_kind == CODES_PRODUCT_BUFR: - return bufr_new_from_file(fileobj, headers_only) - if product_kind == CODES_PRODUCT_METAR: - return metar_new_from_file(fileobj, headers_only) - if product_kind == CODES_PRODUCT_GTS: - return gts_new_from_file(fileobj, headers_only) - if product_kind == CODES_PRODUCT_ANY: - return any_new_from_file(fileobj, headers_only) - raise Exception("Invalid product kind: " + product_kind) - - -@require(fileobj=file) -def any_new_from_file(fileobj, headers_only=False): - """ - @brief Load in memory a message from a file. - - The message can be accessed through its id and will be available\n - until @ref grib_release is called.\n - - \b Examples: \ref grib_get_keys.py "grib_get_keys.py" - - @param fileobj python file object - @param headers_only whether or not to load the message with the headers only - @return id of the message loaded in memory - @exception GribInternalError - """ - fd = fileobj.fileno() - fn = fileobj.name - err, msgid = _internal.grib_c_new_any_from_file(fileobj, fd, fn, headers_only, 0) - if err: - if err == _internal.GRIB_END_OF_FILE: - return None - else: - GRIB_CHECK(err) - else: - return msgid - - -@require(fileobj=file) -def bufr_new_from_file(fileobj, headers_only=False): - """ - @brief Load in memory a BUFR message from a file. - - The message can be accessed through its id and will be available\n - until @ref grib_release is called.\n - - \b Examples: \ref bufr_get_keys.py "bufr_get_keys.py" - - @param fileobj python file object - @param headers_only whether or not to load the message with the headers only - @return id of the BUFR loaded in memory - @exception GribInternalError - """ - fd = fileobj.fileno() - fn = fileobj.name - err, bufrid = _internal.grib_c_new_bufr_from_file(fileobj, fd, fn, headers_only, 0) - if err: - if err == _internal.GRIB_END_OF_FILE: - return None - else: - GRIB_CHECK(err) - else: - return bufrid - - -@require(fileobj=file) -def grib_new_from_file(fileobj, headers_only=False): - """ - @brief Load in memory a GRIB message from a file. - - The message can be accessed through its gribid and will be available\n - until @ref grib_release is called.\n - - The message can be loaded headers only by using the headers_only argument. - Default is to have the headers only option set to off (False). If set to on (True), - data values will be skipped. This will result in a significant performance gain - if one is only interested in browsing through messages to retrieve metadata. - Any attempt to retrieve data values keys when in the headers only mode will - result in a key not found error. - - \b Examples: \ref grib_get_keys.py "grib_get_keys.py" - - @param fileobj python file object - @param headers_only whether or not to load the message with the headers only - @return id of the grib loaded in memory - @exception GribInternalError - """ - fd = fileobj.fileno() - fn = fileobj.name - #print('Python gribapi.py grib_new_from_file: ', fd,' ', fn) - err, gribid = _internal.grib_c_new_from_file(fileobj, fd, fn, 0, headers_only) - if err: - if err == _internal.GRIB_END_OF_FILE: - return None - else: - GRIB_CHECK(err) - else: - return gribid - - -@require(fileobj=file) -def codes_close_file(fileobj): - # The client must call this BEFORE calling close() on the file object - # so we can remove the entry in our cache - err = _internal.codes_c_close_file(fileobj.fileno(), fileobj.name) - # Note: it is safe calling close() here as subsequent calls will have no effect - fileobj.close() - GRIB_CHECK(err) - - -@require(fileobj=file) -def grib_count_in_file(fileobj): - """ - @brief Count the messages in a file. - - \b Examples: \ref count_messages.py "count_messages.py" - - @param fileobj python file object - @return number of messages in the file - @exception GribInternalError - """ - err, num = _internal.grib_c_count_in_file(fileobj) - GRIB_CHECK(err) - return num - - -def grib_multi_support_on(): - """ - @brief Turn on the support for multiple fields in a single GRIB message. - - @exception GribInternalError - """ - _internal.grib_c_multi_support_on() - - -def grib_multi_support_off(): - """ - @brief Turn off the support for multiple fields in a single GRIB message. - - @exception GribInternalError - """ - _internal.grib_c_multi_support_off() - - -@require(msgid=int) -def grib_release(msgid): - """ - @brief Free the memory for the message referred to by msgid. - - \b Examples: \ref grib_get_keys.py "grib_get_keys.py" - - @param msgid id of the message loaded in memory - @exception GribInternalError - """ - GRIB_CHECK(_internal.grib_c_release(msgid)) - - -@require(msgid=int, key=str) -def grib_get_string(msgid, key): - """ - @brief Get the string value of a key from a message. - - @param msgid id of the message loaded in memory - @param key key name - @return string value of key - @exception GribInternalError - """ - length = grib_get_string_length(msgid, key) - err, value = _internal.grib_c_get_string(msgid, key, length) - GRIB_CHECK(err) - - stpos = value.find('\0') - if stpos != -1: - value = value[0:stpos] - - return value - - -@require(msgid=int, key=str, value=str) -def grib_set_string(msgid, key, value): - """ - @brief Set the value for a string key in a message. - - @param msgid id of the message loaded in memory - @param key key name - @param value string value - @exception GribInternalError - """ - GRIB_CHECK(_internal.grib_c_set_string(msgid, key, value, len(value))) - - -def grib_gribex_mode_on(): - """ - @brief Turn on the compatibility mode with GRIBEX. - - @exception GribInternalError - """ - _internal.grib_c_gribex_mode_on() - - -def grib_gribex_mode_off(): - """ - @brief Turn off the compatibility mode with GRIBEX. - - @exception GribInternalError - """ - _internal.grib_c_gribex_mode_off() - - -@require(msgid=int, fileobj=file) -def grib_write(msgid, fileobj): - """ - @brief Write a message to a file. - - \b Examples: \ref grib_set_keys.py "grib_set_keys.py" - - @param msgid id of the message loaded in memory - @param fileobj python file object - @exception GribInternalError - """ - GRIB_CHECK(_internal.grib_c_write(msgid, fileobj)) - - -@require(multigribid=int, fileobj=file) -def grib_multi_write(multigribid, fileobj): - """ - @brief Write a multi-field GRIB message to a file. - - \b Examples: \ref grib_multi_write.py "grib_multi_write.py" - - @param multigribid id of the multi-field grib loaded in memory - @param fileobj python file object - @exception GribInternalError - """ - GRIB_CHECK(_internal.grib_c_multi_write(multigribid, fileobj)) - - -@require(ingribid=int, startsection=int, multigribid=int) -def grib_multi_append(ingribid, startsection, multigribid): - """ - @brief Append a single-field GRIB message to a multi-field GRIB message. - - Only the sections with section number greather or equal "startsection" - are copied from the input single message to the multi-field output grib. - - \b Examples: \ref grib_multi_write.py "grib_multi_write.py" - - @param ingribid id of the input single-field GRIB - @param startsection starting from startsection (included) all the sections are copied - from the input single grib to the output multi-field grib - @param multigribid id of the output multi-field GRIB - @exception GribInternalError - """ - GRIB_CHECK(_internal.grib_c_multi_append(ingribid, startsection, multigribid)) - - -@require(msgid=int, key=str) -def grib_get_size(msgid, key): - """ - @brief Get the size of an array key. - - \b Examples: \ref grib_get_keys.py "grib_get_keys.py",\ref count_messages.py "count_messages.py" - - @param msgid id of the message loaded in memory - @param key name of the key - @exception GribInternalError - """ - err, result = _internal.grib_c_get_size_long(msgid, key) - GRIB_CHECK(err) - return result - - -@require(msgid=int, key=str) -def grib_get_string_length(msgid, key): - """ - @brief Get the length of the string version of a key. - - @param msgid id of the message loaded in memory - @param key name of the key - @exception GribInternalError - """ - err, result = _internal.grib_c_get_string_length(msgid, key) - GRIB_CHECK(err) - return result - - -@require(iterid=int) -def grib_skip_computed(iterid): - """ - @brief Skip the computed keys in a keys iterator. - - The computed keys are not coded in the message, they are computed - from other keys. - - @see grib_keys_iterator_new,grib_keys_iterator_next,grib_keys_iterator_delete - - @param iterid keys iterator id - @exception GribInternalError - """ - GRIB_CHECK(_internal.grib_c_skip_computed(iterid)) - - -@require(iterid=int) -def grib_skip_coded(iterid): - """ - @brief Skip the coded keys in a keys iterator. - - The coded keys are actually coded in the message. - - @see grib_keys_iterator_new,grib_keys_iterator_next,grib_keys_iterator_delete - - @param iterid keys iterator id - @exception GribInternalError - """ - GRIB_CHECK(_internal.grib_c_skip_coded(iterid)) - - -@require(iterid=int) -def grib_skip_edition_specific(iterid): - """ - @brief Skip the edition specific keys in a keys iterator. - - @see grib_keys_iterator_new,grib_keys_iterator_next,grib_keys_iterator_delete - - @param iterid keys iterator id - @exception GribInternalError - """ - GRIB_CHECK(_internal.grib_c_skip_edition_specific(iterid)) - - -@require(iterid=int) -def grib_skip_duplicates(iterid): - """ - @brief Skip the duplicate keys in a keys iterator. - - @see grib_keys_iterator_new,grib_keys_iterator_next,grib_keys_iterator_delete - - @param iterid keys iterator id - @exception GribInternalError - """ - GRIB_CHECK(_internal.grib_c_skip_duplicates(iterid)) - - -@require(iterid=int) -def grib_skip_read_only(iterid): - """ - @brief Skip the read_only keys in a keys iterator. - - Read only keys cannot be set. - - @see grib_keys_iterator_new,grib_keys_iterator_next,grib_keys_iterator_delete - - @param iterid keys iterator id - @exception GribInternalError - """ - GRIB_CHECK(_internal.grib_c_skip_read_only(iterid)) - - -@require(iterid=int) -def grib_skip_function(iterid): - """ - @brief Skip the function keys in a keys iterator. - - @see grib_keys_iterator_new,grib_keys_iterator_next,grib_keys_iterator_delete - - @param iterid keys iterator id - @exception GribInternalError - """ - GRIB_CHECK(_internal.grib_c_skip_function(iterid)) - - -@require(gribid=int, mode=int) -def grib_iterator_new(gribid, mode): - """ - @brief Create a new geoiterator for the given GRIB message, using its geometry and values. - - The geoiterator can be used to go through all the geopoints in a GRIB message and - retrieve the values corresponding to those geopoints. - - \b Examples: \ref grib_iterator.py "grib_iterator.py" - - @param gribid id of the GRIB loaded in memory - @param mode flags for future use - @return geoiterator id - """ - err, iterid = _internal.grib_c_iterator_new(gribid, mode) - GRIB_CHECK(err) - return iterid - - -@require(iterid=int) -def grib_iterator_delete(iterid): - """ - @brief Delete a geoiterator and free memory. - - \b Examples: \ref grib_iterator.py "grib_iterator.py" - - @param iterid geoiterator id - @exception GribInternalError - """ - GRIB_CHECK(_internal.grib_c_iterator_delete(iterid)) - - -@require(iterid=int) -def grib_iterator_next(iterid): - """ - @brief Retrieve the next value from a geoiterator. - - \b Examples: \ref grib_iterator.py "grib_iterator.py" - - @param iterid geoiterator id - @return tuple with the latitude, longitude and value - @exception GribInternalError - """ - err, lat, lon, value = _internal.grib_c_iterator_next(iterid) - if err == 0: - return [] - elif err < 0: - GRIB_CHECK(err) - else: - return (lat, lon, value) - - -@require(msgid=int) -def grib_keys_iterator_new(msgid, namespace=None): - """ - @brief Create a new iterator on the keys. - - The keys iterator can be navigated to give all the key names which - can then be used to get or set the key values with \ref grib_get or - \ref grib_set. - The set of keys returned can be controlled with the input variable - namespace or using the functions - \ref grib_skip_read_only, \ref grib_skip_duplicates, - \ref grib_skip_coded,\ref grib_skip_computed. - If namespace is a non empty string only the keys belonging to - that namespace are returned. Example namespaces are "ls" (to get the same - default keys as the grib_ls) and "mars" to get the keys used by mars. - - \b Examples: \ref grib_iterator.py "grib_iterator.py" - - @param msgid id of the message loaded in memory - @param namespace the namespace of the keys to search for (all the keys if None) - @return keys iterator id to be used in the keys iterator functions - @exception GribInternalError - """ - err, iterid = _internal.grib_c_keys_iterator_new(msgid, namespace) - GRIB_CHECK(err) - return iterid - - -@require(iterid=int) -def grib_keys_iterator_next(iterid): - """ - @brief Advance to the next keys iterator value. - - \b Examples: \ref grib_keys_iterator.py "grib_keys_iterator.py" - - @param iterid keys iterator id created with @ref grib_keys_iterator_new - @exception GribInternalError - """ - res = _internal.grib_c_keys_iterator_next(iterid) - if res < 0: - GRIB_CHECK(res) - return res - - -@require(iterid=int) -def grib_keys_iterator_delete(iterid): - """ - @brief Delete a keys iterator and free memory. - - \b Examples: \ref grib_keys_iterator.py "grib_keys_iterator.py" - - @param iterid keys iterator id created with @ref grib_keys_iterator_new - @exception GribInternalError - """ - GRIB_CHECK(_internal.grib_c_keys_iterator_delete(iterid)) - - -@require(iterid=int) -def grib_keys_iterator_get_name(iterid): - """ - @brief Get the name of a key from a keys iterator. - - \b Examples: \ref grib_keys_iterator.py "grib_keys_iterator.py" - - @param iterid keys iterator id created with @ref grib_keys_iterator_new - @return key name to be retrieved - @exception GribInternalError - """ - err, name = _internal.grib_c_keys_iterator_get_name(iterid, 1024) - GRIB_CHECK(err) - return name - - -@require(iterid=int) -def grib_keys_iterator_rewind(iterid): - """ - @brief Rewind a keys iterator. - - @param iterid keys iterator id created with @ref grib_keys_iterator_new - @exception GribInternalError - """ - GRIB_CHECK(_internal.grib_c_keys_iterator_rewind(iterid)) - -# BUFR keys iterator -@require(msgid=int) -def codes_bufr_keys_iterator_new(msgid): - """ - @brief Create a new iterator on the BUFR keys. - - The keys iterator can be navigated to give all the key names which - can then be used to get or set the key values with \ref codes_get or - \ref codes_set. - - \b Examples: \ref bufr_keys_iterator.py "bufr_keys_iterator.py" - - @param msgid id of the BUFR message loaded in memory - @return keys iterator id to be used in the keys iterator functions - @exception GribInternalError - """ - err, iterid = _internal.codes_c_bufr_keys_iterator_new(msgid) - GRIB_CHECK(err) - return iterid - - -@require(iterid=int) -def codes_bufr_keys_iterator_next(iterid): - """ - @brief Advance to the next BUFR keys iterator value. - - \b Examples: \ref bufr_keys_iterator.py "bufr_keys_iterator.py" - - @param iterid keys iterator id created with @ref codes_bufr_keys_iterator_new - @exception GribInternalError - """ - res = _internal.codes_c_bufr_keys_iterator_next(iterid) - if res < 0: - GRIB_CHECK(res) - return res - - -@require(iterid=int) -def codes_bufr_keys_iterator_delete(iterid): - """ - @brief Delete a BUFR keys iterator and free memory. - - \b Examples: \ref bufr_keys_iterator.py "bufr_keys_iterator.py" - - @param iterid keys iterator id created with @ref codes_bufr_keys_iterator_new - @exception GribInternalError - """ - GRIB_CHECK(_internal.codes_c_bufr_keys_iterator_delete(iterid)) - - -@require(iterid=int) -def codes_bufr_keys_iterator_get_name(iterid): - """ - @brief Get the name of a key from a BUFR keys iterator. - - \b Examples: \ref bufr_keys_iterator.py "bufr_keys_iterator.py" - - @param iterid keys iterator id created with @ref codes_bufr_keys_iterator_new - @return key name to be retrieved - @exception GribInternalError - """ - err, name = _internal.codes_c_bufr_keys_iterator_get_name(iterid, 1024) - GRIB_CHECK(err) - return name - - -@require(iterid=int) -def codes_bufr_keys_iterator_rewind(iterid): - """ - @brief Rewind a BUFR keys iterator. - - @param iterid keys iterator id created with @ref codes_bufr_keys_iterator_new - @exception GribInternalError - """ - GRIB_CHECK(_internal.codes_c_bufr_keys_iterator_rewind(iterid)) - - - -@require(msgid=int, key=str) -def grib_get_long(msgid, key): - """ - @brief Get the value of a key in a message as an integer. - - @param msgid id of the message loaded in memory - @param key key name - @return value of key as int - @exception GribInternalError - """ - err, value = _internal.grib_c_get_long(msgid, key) - GRIB_CHECK(err) - return value - - -@require(msgid=int, key=str) -def grib_get_double(msgid, key): - """ - @brief Get the value of a key in a message as a float. - - @param msgid id of the message loaded in memory - @param key key name - @return value of key as float - @exception GribInternalError - """ - err, value = _internal.grib_c_get_double(msgid, key) - GRIB_CHECK(err) - return value - - -@require(msgid=int, key=str, value=(int, long, float, str)) -def grib_set_long(msgid, key, value): - """ - @brief Set the integer value for a key in a message. - - A TypeError exception will be thrown if value cannot be represented - as an integer. - - @param msgid id of the message loaded in memory - @param key key name - @param value value to set - @exception GribInternalError,TypeError - """ - try: - value = int(value) - except (ValueError, TypeError): - raise TypeError("Invalid type") - - if value > sys.maxsize: - raise TypeError("Invalid type") - - GRIB_CHECK(_internal.grib_c_set_long(msgid, key, value)) - - -@require(msgid=int, key=str, value=(int, long, float, str)) -def grib_set_double(msgid, key, value): - """ - @brief Set the double value for a key in a message. - - A TypeError exception will be thrown if value cannot be represented - as a float. - - @param msgid id of the message loaded in memory - @param key key name - @param value float value to set - @exception GribInternalError,TypeError - """ - try: - value = float(value) - except (ValueError, TypeError): - raise TypeError("Invalid type") - - GRIB_CHECK(_internal.grib_c_set_double(msgid, key, value)) - - -@require(samplename=str, product_kind=int) -def codes_new_from_samples(samplename, product_kind): - """ - @brief Create a new valid message from a sample for a given product. - - The available samples are picked up from the directory pointed to - by the environment variable ECCODES_SAMPLES_PATH. - To know where the samples directory is run the codes_info tool.\n - - \b Examples: \ref grib_samples.py "grib_samples.py" - - @param samplename name of the sample to be used - @param product_kind CODES_PRODUCT_GRIB or CODES_PRODUCT_BUFR - @return id of the message loaded in memory - @exception GribInternalError - """ - if product_kind == CODES_PRODUCT_GRIB: - return grib_new_from_samples(samplename) - if product_kind == CODES_PRODUCT_BUFR: - return codes_bufr_new_from_samples(samplename) - raise Exception("Invalid product kind: " + product_kind) - - -@require(samplename=str) -def grib_new_from_samples(samplename): - """ - @brief Create a new valid GRIB message from a sample. - - The available samples are picked up from the directory pointed to - by the environment variable ECCODES_SAMPLES_PATH. - To know where the samples directory is run the codes_info tool.\n - - \b Examples: \ref grib_samples.py "grib_samples.py" - - @param samplename name of the sample to be used - @return id of the message loaded in memory - @exception GribInternalError - """ - err, msgid = _internal.grib_c_grib_new_from_samples(0, samplename) - GRIB_CHECK(err) - return msgid - - -@require(samplename=str) -def codes_bufr_new_from_samples(samplename): - """ - @brief Create a new valid BUFR message from a sample. - - The available samples are picked up from the directory pointed to - by the environment variable ECCODES_SAMPLES_PATH. - To know where the samples directory is run the codes_info tool.\n - - \b Examples: \ref bufr_copy_data.py "bufr_copy_data.py" - - @param samplename name of the BUFR sample to be used - @return id of the message loaded in memory - @exception GribInternalError - """ - err, msgid = _internal.grib_c_bufr_new_from_samples(0, samplename) - GRIB_CHECK(err) - return msgid - -@require(msgid_src=int, msgid_dst=int) -def codes_bufr_copy_data(msgid_src, msgid_dst): - """ - @brief Copy data values from a BUFR message msgid_src to another message msgid_dst - - Copies all the values in the data section that are present in the same position - in the data tree and with the same number of values to the output handle. - - @param msgid_src id of the message from which the data are copied - @param msgid_dst id of the message to which the data are copied - @return id of new message - @exception GribInternalError - """ - err, msgid_dst = _internal.grib_c_bufr_copy_data(msgid_src, msgid_dst) - GRIB_CHECK(err) - return msgid_dst - - -@require(msgid_src=int) -def grib_clone(msgid_src): - """ - @brief Create a copy of a message. - - Create a copy of a given message (\em msgid_src) resulting in a new - message in memory (\em msgid_dest) identical to the original one. - - \b Examples: \ref grib_clone.py "grib_clone.py" - - @param msgid_src id of message to be cloned - @return id of clone - @exception GribInternalError - """ - err, newmsgid_src = _internal.grib_c_clone(msgid_src, 0) - GRIB_CHECK(err) - return newmsgid_src - - -@require(msgid=int, key=str) -def grib_set_double_array(msgid, key, inarray): - """ - @brief Set the value of the key to a double array. - - The input array can be a numpy.ndarray or a python sequence like tuple, list, array, ... - - The wrapper will internally try to convert the input to a NumPy array - before extracting its data and length. This is possible as NumPy - allows the construction of arrays from arbitrary python sequences. - - The elements of the input sequence need to be convertible to a double. - - @param msgid id of the message loaded in memory - @param key key name - @param inarray tuple,list,array,numpy.ndarray - @exception GribInternalError - """ - GRIB_CHECK(_internal.grib_set_double_ndarray(msgid, key, inarray)) - - -@require(msgid=int, key=str) -def grib_get_double_array(msgid, key): - """ - @brief Get the value of the key as a NumPy array of doubles. - - @param msgid id of the message loaded in memory - @param key key name - @return numpy.ndarray - @exception GribInternalError - """ - nval = grib_get_size(msgid, key) - err, result = _internal.grib_get_double_ndarray(msgid, key, nval) - GRIB_CHECK(err) - return result - - -@require(msgid=int, key=str) -def grib_get_string_array(msgid, key): - """ - @brief Get the value of the key as a list of strings. - - @param msgid id of the message loaded in memory - @param key key name - @return list - @exception GribInternalError - """ - nval = grib_get_size(msgid, key) - a = _internal.new_stringArray(nval) - s = _internal.sizetp() - s.assign(nval) - - GRIB_CHECK(_internal.grib_c_get_string_array(msgid, key, a, s)) - - newsize = s.value() - result = list() - for i in range(newsize): - result.append(_internal.stringArray_getitem(a, i)) - - _internal.delete_stringArray(a) - - return result - - -@require(msgid=int, key=str) -def grib_set_string_array(msgid, key, inarray): - """ - @brief Set the value of the key to a string array. - - The input array can be a python sequence like tuple, list, array, ... - - The wrapper will internally try to convert the input to a NumPy array - before extracting its data and length. This is possible as NumPy - allows the construction of arrays from arbitrary python sequences. - - The elements of the input sequence need to be convertible to a double. - - @param msgid id of the message loaded in memory - @param key key name - @param inarray tuple,list,array - @exception GribInternalError - """ - GRIB_CHECK( _internal.grib_c_set_string_array(msgid, key, list(inarray)) ) - - -@require(msgid=int, key=str) -def grib_set_long_array(msgid, key, inarray): - """ - @brief Set the value of the key to an integer array. - - The input array can be a numpy.ndarray or a python sequence like tuple, list, array, ... - - The wrapper will internally try to convert the input to a NumPy array - before extracting its data and length. This is possible as NumPy - allows the construction of arrays from arbitrary python sequences. - - The elements of the input sequence need to be convertible to an int. - - @param msgid id of the message loaded in memory - @param key key name - @param inarray tuple,list,python array,numpy.ndarray - @exception GribInternalError - """ - GRIB_CHECK(_internal.grib_set_long_ndarray(msgid, key, inarray)) - - -@require(msgid=int, key=str) -def grib_get_long_array(msgid, key): - """ - @brief Get the integer array of values for a key from a message. - - @param msgid id of the message loaded in memory - @param key key name - @return numpy.ndarray - @exception GribInternalError - """ - nval = grib_get_size(msgid, key) - err, result = _internal.grib_get_long_ndarray(msgid, key, nval) - GRIB_CHECK(err) - return result - - -def grib_multi_new(): - """ - @brief Create a new multi-field GRIB message and return its id. - - \b Examples: \ref grib_multi_write.py "grib_multi_write.py" - - @return id of the multi-field message - @exception GribInternalError - """ - err, mgid = _internal.grib_c_multi_new() - GRIB_CHECK(err) - return mgid - - -@require(gribid=int) -def grib_multi_release(gribid): - """ - @brief Release a multi-field message from memory. - - \b Examples: \ref grib_multi_write.py "grib_multi_write.py" - - @param gribid id of the multi-field we want to release the memory for - @exception GribInternalError - """ - GRIB_CHECK(_internal.grib_c_multi_release(gribid)) - - -@require(gribid_src=int, namespace=str, gribid_dest=int) -def grib_copy_namespace(gribid_src, namespace, gribid_dest): - """ - @brief Copy the value of all the keys belonging to a namespace from the source message - to the destination message. - - @param gribid_src id of source message - @param gribid_dest id of destination message - @param namespace namespace to be copied - @exception GribInternalError - """ - GRIB_CHECK(_internal.grib_c_copy_namespace(gribid_src, namespace, gribid_dest)) - - -@require(filename=str, keys=(tuple, list)) -def grib_index_new_from_file(filename, keys): - """ - @brief Create a new index from a file. - - \b Examples: \ref grib_index.py "grib_index.py" - - @param filename path of the file to index on - @param keys sequence of keys to index on. - The type of the key can be explicitly declared appending :l for long (or alternatively :i), :d for double, :s for string to the key name. - @return index id - @exception GribInternalError - """ - ckeys = ",".join(keys) - err, iid = _internal.grib_c_index_new_from_file(filename, ckeys) - GRIB_CHECK(err) - return iid - - -@require(indexid=int, filename=str) -def grib_index_add_file(indexid, filename): - """ - @brief Add a file to an index. - - \b Examples: \ref grib_index.py "grib_index.py" - - @param indexid id of the index to add the file to - @param filename path of the file to be added to index - @exception GribInternalError - """ - err = _internal.grib_c_index_add_file(indexid, filename) - GRIB_CHECK(err) - - -@require(indexid=int) -def grib_index_release(indexid): - """ - @brief Delete an index. - - \b Examples: \ref grib_index.py "grib_index.py" - - @param indexid id of an index created from a file. - @exception GribInternalError - """ - GRIB_CHECK(_internal.grib_c_index_release(indexid)) - - -@require(indexid=int, key=str) -def grib_index_get_size(indexid, key): - """ - @brief Get the number of distinct values for the index key. - The key must belong to the index. - - \b Examples: \ref grib_index.py "grib_index.py" - - @param indexid id of an index created from a file. The index must have been created on the given key. - @param key key for which the number of values is computed - @return number of distinct values for key in index - @exception GribInternalError - """ - err, value = _internal.grib_c_index_get_size_long(indexid, key) - GRIB_CHECK(err) - return value - - -@require(indexid=int, key=str) -def grib_index_get_long(indexid, key): - """ - @brief Get the distinct values of the key in argument contained in the index. - The key must belong to the index. - - This function is used when the type of the key was explicitly defined as long or when the native type of the key is long. - - \b Examples: \ref grib_index.py "grib_index.py" - - @param indexid id of an index created from a file. The index must have been created with the key in argument. - @param key key for wich the values are returned - @return tuple with values of key in index - @exception GribInternalError - """ - nval = grib_index_get_size(indexid, key) - - a = _internal.new_longArray(nval) - s = _internal.intp() - s.assign(nval) - - GRIB_CHECK(_internal.grib_c_index_get_long(indexid, key, a, s)) - - result = [] - for i in range(nval): - result.append(_internal.longArray_getitem(a, i)) - - _internal.delete_longArray(a) - - return tuple(result) - - -@require(indexid=int, key=str) -def grib_index_get_string(indexid, key): - """ - @brief Get the distinct values of the key in argument contained in the index. - The key must belong to the index. - - This function is used when the type of the key was explicitly defined as string or when the native type of the key is string. - - \b Examples: \ref grib_index.py "grib_index.py" - - @param indexid id of an index created from a file. The index must have been created with the key in argument. - @param key key for wich the values are returned - @return tuple with values of key in index - @exception GribInternalError - """ - nval = grib_index_get_size(indexid, key) - max_val_size = 1024 - - err, raw_result, outnval = _internal.grib_c_index_get_string(indexid, key, max_val_size, nval) - GRIB_CHECK(err) - - assert nval == outnval - - result = [] - for i in range(nval): - low = i * max_val_size - high = (i + 1) * max_val_size - value = raw_result[low:high].rstrip() - result.append(value) - - return tuple(result) - - -@require(indexid=int, key=str) -def grib_index_get_double(indexid, key): - """ - @brief Get the distinct values of the key in argument contained in the index. - The key must belong to the index. - - This function is used when the type of the key was explicitly defined as double or when the native type of the key is double. - - \b Examples: \ref grib_index.py "grib_index.py" - - @param indexid id of an index created from a file. The index must have been created with the key in argument. - @param key key for wich the values are returned - @return tuple with values of key in index - @exception GribInternalError - """ - nval = grib_index_get_size(indexid, key) - - a = _internal.new_doubleArray(nval) - s = _internal.intp() - s.assign(nval) - - GRIB_CHECK(_internal.grib_c_index_get_real8(indexid, key, a, s)) - - result = [] - for i in range(nval): - result.append(_internal.doubleArray_getitem(a, i)) - - _internal.delete_doubleArray(a) - - return tuple(result) - - -@require(indexid=int, key=str, value=int) -def grib_index_select_long(indexid, key, value): - """ - @brief Select the message subset with key==value. - The value is an integer. - - The key must have been created with integer type or have integer as native type if the type was not explicitly defined in the index creation. - - \b Examples: \ref grib_index.py "grib_index.py" - - @param indexid id of an index created from a file. The index must have been created with the key in argument. - @param key key to be selected - @param value value of the key to select - @exception GribInternalError - """ - GRIB_CHECK(_internal.grib_c_index_select_long(indexid, key, value)) - - -@require(indexid=int, key=str, value=float) -def grib_index_select_double(indexid, key, value): - """ - @brief Select the message subset with key==value. - The value is a double. - - The key must have been created with integer type or have integer as native type if the type was not explicitly defined in the index creation. - - \b Examples: \ref grib_index.py "grib_index.py" - - @param indexid id of an index created from a file. The index must have been created with the key in argument. - @param key key to be selected - @param value value of the key to select - @exception GribInternalError - """ - GRIB_CHECK(_internal.grib_c_index_select_real8(indexid, key, value)) - - -@require(indexid=int, key=str, value=str) -def grib_index_select_string(indexid, key, value): - """ - @brief Select the message subset with key==value. - The value is an integer. - - The key must have been created with string type or have string as native type if the type was not explicitly defined in the index creation. - - \b Examples: \ref grib_index.py "grib_index.py" - - @param indexid id of an index created from a file. The index must have been created with the key in argument. - @param key key to be selected - @param value value of the key to select - @exception GribInternalError - """ - GRIB_CHECK(_internal.grib_c_index_select_string(indexid, key, value)) - - -@require(indexid=int) -def grib_new_from_index(indexid): - """ - @brief Create a new handle from an index after having selected the key values. - - All the keys belonging to the index must be selected before calling this function. - Successive calls to this function will return all the handles compatible with the constraints defined selecting the values of the index keys. - - The message can be accessed through its gribid and will be available until @ref grib_release is called. - - \b Examples: \ref grib_index.py "grib_index.py" - - @param indexid id of an index created from a file. - @return id of the message loaded in memory or None if end of index - @exception GribInternalError - """ - err, gribid = _internal.grib_c_new_from_index(indexid, 0) - - if err: - if err == _internal.GRIB_END_OF_INDEX: - return None - else: - GRIB_CHECK(err) - else: - return gribid - - -@require(msgid=int) -def grib_get_message_size(msgid): - """ - @brief Get the size of a coded message. - - @param msgid id of the message loaded in memory - @return size in bytes of the message - @exception GribInternalError - """ - err, value = _internal.grib_c_get_message_size(msgid) - GRIB_CHECK(err) - return value - - -@require(msgid=int) -def grib_get_message_offset(msgid): - """ - @brief Get the offset of a coded message. - - @param msgid id of the message loaded in memory - @return offset in bytes of the message - @exception GribInternalError - """ - err, value = _internal.grib_c_get_message_offset(msgid) - GRIB_CHECK(err) - return value - - -@require(msgid=int, key=str, index=int) -def grib_get_double_element(msgid, key, index): - """ - @brief Get as double the i-th element of the "key" array. - - @param msgid id of the message loaded in memory - @param key the key to be searched - @param index zero based index of value to retrieve - @return value - @exception GribInternalError - - """ - err, value = _internal.grib_c_get_real8_element(msgid, key, index) - GRIB_CHECK(err) - return value - - -@require(msgid=int, key=str, indexes=(list, tuple)) -def grib_get_double_elements(msgid, key, indexes): - """ - @brief Get as double array the elements of the "key" array whose indexes are listed in the input array. - - @param msgid id of the message loaded in memory - @param key the key to be searched - @param indexes list or tuple of indexes - @return numpy.ndarray - @exception GribInternalError - - """ - nidx = len(indexes) - err, result = _internal.grib_get_double_ndelements(msgid, key, indexes, nidx) - GRIB_CHECK(err) - return result - - -@require(msgid=int, key=str) -def grib_get_elements(msgid, key, indexes): - """ - @brief Retrieve the elements of the key array for the indexes specified in the input. - - @param msgid id of the message loaded in memory - @param key the key to be searched - @param indexes single index or a list of indexes - @return numpy.ndarray containing the values of key for the given indexes - @exception GribInternalError - """ - try: - iter(indexes) - except TypeError: - indexes = (indexes,) - - nidx = len(indexes) - err, result = _internal.grib_get_double_ndelements(msgid, key, indexes, nidx) - GRIB_CHECK(err) - return result - - -@require(msgid=int, key=str) -def grib_set_missing(msgid, key): - """ - @brief Set as missing the value for a key in a GRIB message. - - It can be used to set a missing value in the GRIB header but not in - the data values. - - \b Examples: \ref grib_set_missing.py "grib_set_missing.py" - - @param msgid id of the message loaded in memory - @param key key name - @exception GribInternalError - """ - GRIB_CHECK(_internal.grib_c_set_missing(msgid, key)) - - -@require(gribid=int) -def grib_set_key_vals(gribid, key_vals): - """ - Set the values for several keys at once in a grib message. - - @param gribid id of the grib loaded in memory - @param key_vals can be a string, list/tuple or dictionary. - If a string, format must be "key1=val1,key2=val2" - If a list, it must contain strings of the form "key1=val1" - @exception GribInternalError - """ - if len(key_vals) == 0: - raise errors.InvalidKeyValueError("Empty key/values argument") - key_vals_str = "" - if isinstance(key_vals, str): - # Plain string. We need to do a DEEP copy so as not to change the original - key_vals_str = ''.join(key_vals) - elif isinstance(key_vals, list) or isinstance(key_vals, tuple): - # A list of key=val strings - for kv in key_vals: - if not isinstance(kv, str): - raise TypeError("Invalid list/tuple element type '%s'" % kv) - if '=' not in str(kv): - raise errors.GribInternalError("Invalid list/tuple element format '%s'" % kv) - if len(key_vals_str) > 0: - key_vals_str += ',' - key_vals_str += kv - elif isinstance(key_vals, dict): - # A dictionary mapping keys to values - for key in key_vals.keys(): - if len(key_vals_str) > 0: - key_vals_str += ',' - key_vals_str += key + '=' + str(key_vals[key]) - else: - raise TypeError("Invalid argument type") - - GRIB_CHECK(_internal.grib_c_set_key_vals(gribid, key_vals_str)) - - -@require(msgid=int, key=str) -def grib_is_missing(msgid, key): - """ - @brief Check if the value of a key is MISSING. - - The value of a key is considered as MISSING when all the bits assigned to it - are set to 1. This is different from the actual key missing from the grib message. - The value of a key MISSING has a special significance and that can be read about - in the WMO documentation. - - @param msgid id of the message loaded in memory - @param key key name - @return 0->not missing, 1->missing - @exception GribInternalError - """ - err, value = _internal.grib_c_is_missing(msgid, key) - GRIB_CHECK(err) - return value - - -@require(msgid=int, key=str) -def grib_is_defined(msgid, key): - """ - @brief Check if a key is defined (exists) - @param msgid id of the message loaded in memory - @param key key name - @return 0->not defined, 1->defined - @exception GribInternalError - """ - err, value = _internal.grib_c_is_defined(msgid, key) - GRIB_CHECK(err) - return value - - -@require(gribid=int, inlat=(int, float), inlon=(int, float)) -def grib_find_nearest(gribid, inlat, inlon, is_lsm=False, npoints=1): - """ - @brief Find the nearest grid point or the nearest four grid points to a given latitude/longitude. - - The number of nearest points returned can be controled through the npoints function argument. - - \b Examples: \ref grib_nearest.py "grib_nearest.py" - - @param gribid id of the grib loaded in memory - @param inlat latitude of the point - @param inlon longitude of the point - @param is_lsm True if the nearest land point is required otherwise False. - @param npoints 1 or 4 nearest grid points - @return (npoints*(outlat,outlon,value,dist,index)) - @exception GribInternalError - """ - if npoints == 1: - err, outlat, outlon, value, dist, idx = _internal.grib_c_find_nearest_single(gribid, is_lsm, inlat, inlon) - GRIB_CHECK(err) - return (Bunch(lat=outlat, lon=outlon, value=value, distance=dist, index=idx),) - elif npoints == 4: - poutlat = _internal.new_doubleArray(4) - poutlon = _internal.new_doubleArray(4) - pvalues = _internal.new_doubleArray(4) - pdist = _internal.new_doubleArray(4) - pidx = _internal.new_intArray(4) - - GRIB_CHECK(_internal.grib_c_find_nearest_four_single(gribid, is_lsm, inlat, inlon, poutlat, poutlon, pvalues, pdist, pidx)) - - result = [] - for i in range(4): - result.append(Bunch(lat=_internal.doubleArray_getitem(poutlat, i), - lon=_internal.doubleArray_getitem(poutlon, i), - value=_internal.doubleArray_getitem(pvalues, i), - distance=_internal.doubleArray_getitem(pdist, i), - index=_internal.intArray_getitem(pidx, i))) - - _internal.delete_doubleArray(poutlat) - _internal.delete_doubleArray(poutlon) - _internal.delete_doubleArray(pvalues) - _internal.delete_doubleArray(pdist) - _internal.delete_intArray(pidx) - - return tuple(result) - else: - raise ValueError("Invalid value for npoints. Expecting 1 or 4.") - - -@require(msgid=int, key=str) -def grib_get_native_type(msgid, key): - """ - @brief Retrieve the native type of a key. - - Possible values can be int, float or string. - - @param msgid id of the message loaded in memory - @param key key we want to find out the type for - @return type of key given as input or None if not determined - @exception GribInternalError - """ - err, itype = _internal.grib_c_get_native_type(msgid, key) - GRIB_CHECK(err) - if itype in KEYTYPES: - return KEYTYPES[itype] - else: - return None - - -@require(msgid=int, key=str) -def grib_get(msgid, key, ktype=None): - """ - @brief Get the value of a key in a message. - - The type of value returned depends on the native type of the requested key. - The type of value returned can be forced by using the type argument of the - function. The type argument can be int, float or str. - - The \em msgid references a message loaded in memory. - - \b Examples: \ref grib_get_keys.py "grib_get_keys.py", \ref grib_print_data.py "grib_print_data.py" - - @see grib_new_from_file, grib_release, grib_set - - @param msgid id of the message loaded in memory - @param key key name - @param ktype the type we want the output in (int, float or str), native type if not specified - @return scalar value of key as int, float or str - @exception GribInternalError - """ - if not key: - raise ValueError("Invalid key name") - - if ktype is None: - ktype = grib_get_native_type(msgid, key) - - result = None - if ktype is int: - result = grib_get_long(msgid, key) - elif ktype is float: - result = grib_get_double(msgid, key) - elif ktype is str: - result = grib_get_string(msgid, key) - - return result - - -@require(msgid=int, key=str) -def grib_get_array(msgid, key, ktype=None): - """ - @brief Get the contents of an array key. - - The type of the array returned depends on the native type of the requested key. - For numeric data, the output array will be stored in a NumPy ndarray. - The type of value returned can be forced by using the type argument of the function. - The type argument can be int, float or string. - - @param msgid id of the message loaded in memory - @param key the key to get the value for - @param ktype the type we want the output in (can be int, float or string), native type if not specified - @return numpy.ndarray - @exception GribInternalError - """ - if ktype is None: - ktype = grib_get_native_type(msgid, key) - - result = None - if ktype is int: - result = grib_get_long_array(msgid, key) - elif ktype is float: - result = grib_get_double_array(msgid, key) - elif ktype is str: - result = grib_get_string_array(msgid, key) - - return result - - -@require(gribid=int) -def grib_get_values(gribid): - """ - @brief Retrieve the contents of the 'values' key for a GRIB message. - - A NumPy ndarray containing the values in the GRIB message is returned. - - \b Examples: \ref grib_print_data.py "grib_print_data.py", \ref grib_samples.py "grib_samples.py" - - @param gribid id of the GRIB loaded in memory - @return numpy.ndarray - @exception GribInternalError - """ - return grib_get_double_array(gribid, "values") - - -@require(gribid=int) -def grib_set_values(gribid, values): - """ - @brief Set the contents of the 'values' key for a GRIB message. - - The input array can be a numpy.ndarray or a python sequence like tuple, list, array, ... - - The wrapper will internally try to convert the input to a NumPy array - before extracting its data and length. This is possible as NumPy - allows the construction of arrays from arbitrary python sequences. - - The elements of the input sequence need to be convertible to a double. - - \b Examples: \ref grib_clone.py "grib_clone.py", \ref grib_samples.py "grib_samples.py" - - @param gribid id of the GRIB loaded in memory - @param values array of values to set as tuple, list, array or numpy.ndarray - """ - grib_set_double_array(gribid, "values", values) - - -@require(msgid=int, key=str) -def grib_set(msgid, key, value): - """ - @brief Set the value for a scalar key in a message. - - The input value can be a python int, float or str. - - \b Examples: \ref grib_set_keys.py "grib_set_keys.py" - - @see grib_new_from_file, grib_release, grib_get - - @param msgid id of the message loaded in memory - @param key key name - @param value scalar value to set for key - @exception GribInternalError - """ - if isinstance(value, int): - grib_set_long(msgid, key, value) - elif isinstance(value, float): - grib_set_double(msgid, key, value) - elif isinstance(value, str): - grib_set_string(msgid, key, value) - #elif hasattr(value, "__iter__"): - # # The value passed in is iterable; i.e. a list or array etc - # grib_set_array(msgid, key, value) - else: - raise errors.GribInternalError("Invalid type of value when setting key '%s'." % key) - - -@require(msgid=int, key=str) -def grib_set_array(msgid, key, value): - """ - @brief Set the value for an array key in a message. - - Examples of array keys: - "values" - data values - "pl" - list of number of points for each latitude in a reduced grid - "pv" - list of vertical levels - - The input array can be a numpy.ndarray or a python sequence like tuple, list, array, ... - - The wrapper will internally try to convert the input to a NumPy array - before extracting its data and length. This is possible as NumPy - allows the construction of arrays from arbitrary python sequences. - - @param msgid id of the message loaded in memory - @param key key name - @param value array to set for key - @exception GribInternalError - """ - val0 = None - try: - val0 = value[0] - except TypeError: - pass - - if isinstance(val0, float): - grib_set_double_array(msgid, key, value) - elif isinstance(val0, str): - grib_set_string_array(msgid, key, value) - else: - # Note: Cannot do isinstance(val0,int) for numpy.int64 - try: - n = int(val0) - except (ValueError, TypeError): - raise errors.GribInternalError("Invalid type of value when setting key '%s'." % key) - grib_set_long_array(msgid, key, value) - - -@require(indexid=int, key=str) -def grib_index_get(indexid, key, ktype=str): - """ - @brief Get the distinct values of an index key. - The key must belong to the index. - - \b Examples: \ref grib_index.py "grib_index.py" - - @param indexid id of an index created from a file. The index must have been created on the given key. - @param key key for which the values are returned - @param ktype the type we want the output in (int, float or str), str if not specified - @return array of values - @exception GribInternalError - """ - # Cannot get the native type of a key from an index - # so right now the default is str. The user can overwrite - # the type but there is no way right now to do it automatically. - - # if ktype is None: - # ktype = grib_get_native_type(indexid,key) - - result = None - if ktype is int: - result = grib_index_get_long(indexid, key) - elif ktype is float: - result = grib_index_get_double(indexid, key) - elif ktype is str: - result = grib_index_get_string(indexid, key) - - return result - - -@require(indexid=int, key=str) -def grib_index_select(indexid, key, value): - """ - @brief Select the message subset with key==value. - - \b Examples: \ref grib_index.py "grib_index.py" - - @param indexid id of an index created from a file. The index must have been created with the key in argument. - @param key key to be selected - @param value value of the key to select - @exception GribInternalError - """ - if isinstance(value, int): - grib_index_select_long(indexid, key, value) - elif isinstance(value, float): - grib_index_select_double(indexid, key, value) - elif isinstance(value, str): - grib_index_select_string(indexid, key, value) - else: - raise errors.GribInternalError("Invalid type of value when setting key '%s'." % key) - - -@require(indexid=int, filename=str) -def grib_index_write(indexid, filename): - """ - @brief Write an index to a file for later reuse. - - An index can be loaded back from an index file with \ref grib_index_read. - - \b Examples: \ref grib_index.py "grib_index.py" - - @param indexid id of the index - @param filename path of file to save the index to - @exception GribInternalError - """ - GRIB_CHECK(_internal.grib_c_index_write(indexid, filename)) - - -@require(filename=str) -def grib_index_read(filename): - """ - @brief Loads an index previously saved with \ref grib_index_write to a file. - - \b Examples: \ref grib_index.py "grib_index.py" - - @param filename path of file to load the index from - @return id of the loaded index - @exception GribInternalError - """ - err, indexid = _internal.grib_c_index_read(filename) - GRIB_CHECK(err) - return indexid - - -@require(flag=bool) -def grib_no_fail_on_wrong_length(flag): - """ - @brief Do not fail if the message has the wrong length. - - @param flag True/False - """ - if flag: - _internal.no_fail_on_wrong_length(1) - else: - _internal.no_fail_on_wrong_length(0) - - -@require(flag=bool) -def grib_gts_header(flag): - """ - @brief Set the GTS header on/off. - - @param flag True/False - """ - if flag: - _internal.grib_c_gts_header_on() - else: - _internal.grib_c_gts_header_off() - - -def grib_get_api_version(): - """ - @brief Get the API version. - - Returns the version of the API as a string in the format "major.minor.revision". - """ - div = lambda v, d: (v / d, v % d) - v = _internal.grib_c_get_api_version() - v, revision = div(v, 100) - v, minor = div(v, 100) - major = v - - return "%d.%d.%d" % (major, minor, revision) - -__version__ = grib_get_api_version() - - -@require(msgid=int) -def grib_get_message(msgid): - """ - @brief Get the binary message. - - Returns the binary string message associated with the message identified by msgid. - - @see grib_new_from_message - - @param msgid id of the message loaded in memory - @return binary string message associated with msgid - @exception GribInternalError - """ - error, message = _internal.grib_c_get_message(msgid) - GRIB_CHECK(error) - return message - - -@require(message=str) -def grib_new_from_message(message): - """ - @brief Create a handle from a message in memory. - - Create a new message from the input binary string and return its id. - - @see grib_get_message - - @param message binary string message - @return msgid of the newly created message - @exception GribInternalError - """ - error, msgid = _internal.grib_c_new_from_message(0, message, len(message)) - GRIB_CHECK(error) - return msgid - - -@require(defs_path=str) -def grib_set_definitions_path(defs_path): - """ - @brief Set the definitions path - - @param defs_path definitions path - """ - _internal.grib_c_set_definitions_path(defs_path) - - -@require(samples_path=str) -def grib_set_samples_path(samples_path): - """ - @brief Set the samples path - - @param samples_path samples path - """ - _internal.grib_c_set_samples_path(samples_path) diff --git a/python3/gribapi_swig.i b/python3/gribapi_swig.i deleted file mode 100644 index 268e609bf..000000000 --- a/python3/gribapi_swig.i +++ /dev/null @@ -1,266 +0,0 @@ -%module gribapi_swig - -%include "cpointer.i" -%include "cstring.i" -%include "typemaps.i" -%include "cdata.i" -%include "carrays.i" -%include "grib_errors.h" - -%{ -#define SWIG_FILE_WITH_INIT -#include "grib_interface.h" -%} - -%include "numpy.i" -%init %{ -import_array(); -%} - -/* Converts a PyFile instance to a stdio FILE* for reading binary files */ -%typemap(in) FILE* { - int fileDescriptor = PyObject_AsFileDescriptor($input); - /*printf("swig.i fileDescriptor=%d\n", fileDescriptor);*/ - if(fileDescriptor >= 0) { - /* Convert file descriptor to a FILE pointer */ - $1 = fdopen(fileDescriptor,"rb"); // needs to be rb+ (or wb) for write - } - else { - PyErr_SetString(PyExc_TypeError, "$1_name must be a file type."); - return NULL; - } -} - -%pointer_class(int, intp); -%pointer_class(size_t, sizetp); -%pointer_class(long, longp); -%pointer_class(double, doublep); -%array_functions(double, doubleArray); -%array_functions(long, longArray); -%array_functions(int, intArray); -%array_functions(char*, stringArray); - -// creation -int grib_c_new_from_file(FILE* f, int fd, char* fname, int* INOUT, int headers_only); -int grib_c_new_any_from_file(FILE* f, int fd, char* fname, int headers_only, int* INOUT); -int grib_c_new_bufr_from_file(FILE* f, int fd, char* fname, int headers_only, int* INOUT); -int grib_c_new_gts_from_file(FILE* f, int fd, char* fname, int headers_only, int* INOUT); -int grib_c_new_metar_from_file(FILE* f, int headers_only, int* INOUT); -int grib_c_iterator_new(int* INPUT, int* OUTPUT, int* INPUT); -int grib_c_keys_iterator_new(int* INPUT, int* OUTPUT, char* name_space); -int codes_c_bufr_keys_iterator_new(int* INPUT, int* OUTPUT); -int grib_c_grib_new_from_samples(int* INOUT, char* name); -int grib_c_bufr_new_from_samples(int* INOUT, char* name); -int grib_c_index_new_from_file(char* file, char* keys, int* OUTPUT); -int grib_c_index_add_file(int* INPUT, char* file); -int grib_c_new_from_index(int *INPUT, int *INOUT); -int grib_c_index_write(int* INPUT, char* file); -int grib_c_index_read(char* file, int* OUTPUT); -int grib_c_new_from_message(int *INOUT, char *binmsg, size_t *INPUT); -// --- - -%apply int* INPUT { int* fid }; -%apply int* INPUT { int* gid }; -%apply int* INPUT { int* iterid }; -%apply int* INPUT { int* iid }; - -// file operations -int codes_c_close_file(int fd, char* fname); -int grib_c_count_in_file(FILE* f,int* OUTPUT); -// --- - -/* Converts a PyFile instance to a stdio FILE* for writing binary files */ -%typemap(in) FILE* { - int fileDescriptor = PyObject_AsFileDescriptor($input); - if(fileDescriptor >= 0) { - /* Convert file descriptor to a FILE pointer */ - $1 = fdopen(fileDescriptor,"wb"); - } - else { - PyErr_SetString(PyExc_TypeError, "$1_name must be a file type."); - return NULL; - } -} - -// grib handle operations -int grib_c_release(int* gid); -int grib_c_write(int* gid, FILE* f); -int grib_c_get_size_long(int* gid, char* key, long* OUTPUT); -int grib_c_get_string_length(int* gid, char* key, size_t* OUTPUT); -int grib_c_clone(int* gid,int* INOUT); -int grib_c_copy_namespace(int* gid, char* name, int* INPUT); -int grib_c_get_message_size(int* gid, size_t* OUTPUT); -int grib_c_get_message_offset(int* gid, size_t* OUTPUT); -int grib_c_get_native_type(int* gid, char* key, int* OUTPUT); -// --- - -// multi support -int grib_c_multi_new(int* OUTPUT); -int grib_c_multi_support_on(void); -int grib_c_multi_write(int* gid, FILE* f); -int grib_c_multi_support_off(void); -int grib_c_multi_release(int* gid); -int grib_c_multi_append(int* INPUT, int* INPUT,int* INPUT); -// --- - -// gribex support -int grib_c_gribex_mode_on(void); -int grib_c_gribex_mode_off(void); -// --- - -// keys iterator -int grib_c_keys_iterator_next(int* iterid); -int codes_c_bufr_keys_iterator_next(int* iterid); -int grib_c_keys_iterator_delete(int* iterid); -int codes_c_bufr_keys_iterator_delete(int* iterid); -int grib_c_skip_computed(int* iterid); -int grib_c_skip_coded(int* iterid); -int grib_c_skip_edition_specific(int* iterid); -int grib_c_skip_duplicates(int* iterid); -int grib_c_skip_read_only(int* iterid); -int grib_c_skip_function(int* iterid); -int grib_c_keys_iterator_rewind(int* iterid); -int codes_c_bufr_keys_iterator_rewind(int* iterid); -int grib_c_bufr_copy_data(int* gid, int* INOUT); - - -%cstring_bounded_output(char* name, 1024); -int grib_c_keys_iterator_get_name(int* iterid, char* name, int len); -int codes_c_bufr_keys_iterator_get_name(int* iterid, char* name, int len); -// --- - -// indexing routines -int grib_c_index_get_size_long(int* iid, char* key, long* OUTPUT); -int grib_c_index_get_long(int* iid, char* key, long* val, int* size); -int grib_c_index_get_real8(int* iid, char* key, double* val, int* size); -%cstring_bounded_output(char* index_string_output, 1024*1024); -int grib_c_index_get_string(int* iid, char* key, char* index_string_output, int* INPUT, int* INOUT); -int grib_c_index_select_long(int *iid, char *key, long *INPUT); -int grib_c_index_select_real8(int *iid, char *key, double *INPUT); -int grib_c_index_select_string(int *iid, char *key, char *val); -int grib_c_index_release(int* iid); -// --- - -// values iterator -int grib_c_iterator_delete(int* iterid); -int grib_c_iterator_next(int* iterid, double* OUTPUT, double* OUTPUT, double* OUTPUT); -// --- - -// getting/setting key values -%cstring_output_withsize(char* string_val, size_t* string_size) -int grib_c_get_string(int* gid, char* key, char* string_val, size_t* string_size); -int grib_c_get_string_array(int* gid, char* key, char** array_string_val, size_t* size); -int grib_c_set_string(int* gid, char* key, char* sval, int len2); -int grib_c_get_long(int* gid, char* key, long* OUTPUT); -int grib_c_set_long(int* gid, char* key, long* INPUT); -int grib_c_get_double(int* gid, char* key, double* OUTPUT); -int grib_c_set_double(int* gid, char* key, double* INPUT); -int grib_c_set_real8_array(int* gid, char* key, double* val, int* size); -int grib_c_get_real8_array(int* gid, char* key, double* val, int* size); -int grib_c_get_long_array(int* gid, char* key, long* val, int* size); -int grib_c_set_long_array(int* gid, char* key, long* val, int* size); -int grib_c_get_real8_element(int* gid, char* key, int* INPUT, double* OUTPUT); -int grib_c_get_real8_elements(int* gid, char* key, int* index, double* val, int* size); -int grib_c_set_missing(int* gid, char* key); -int grib_c_set_key_vals(int* gid, char* keyvals); -int grib_c_is_missing(int* gid, char* key, int* OUTPUT); -int grib_c_is_defined(int* gid, char* key, int* OUTPUT); - -// http://www.swig.org/Doc1.3/Python.html -// This tells SWIG to treat char ** as a special case -%typemap(in) char ** { - /* Check if is a list */ - if (PyList_Check($input)) { - int size = PyList_Size($input); - int i = 0; - $1 = (char **) malloc((size+1)*sizeof(char *)); - for (i = 0; i < size; i++) { - PyObject *o = PyList_GetItem($input,i); - if (PyString_Check(o)) - $1[i] = PyString_AsString(PyList_GetItem($input,i)); - else { - PyErr_SetString(PyExc_TypeError,"list must contain strings"); - free($1); - return NULL; - } - } - $1[i] = 0; /* Last entry set to NULL */ - } else { - PyErr_SetString(PyExc_TypeError,"not a list"); - return NULL; - } -} -// This cleans up the char ** array we malloc'd before the function call -%typemap(freearg) char ** { - free((char *) $1); -} -int grib_c_set_string_array(int *gid, char *key, const char** val); - -// Numpy Support -%apply (double* IN_ARRAY1, int DIM1) {(double* dpin_val, int dpin_val_dim1)}; -%apply (long* IN_ARRAY1, int DIM1) {(long* lpin_val, int lpin_val_dim1)}; -%apply (int* IN_ARRAY1, int DIM1) {(int* ipin_index, int ipin_index_dim1)}; -%apply (double* ARGOUT_ARRAY1, int DIM1) {(double* dpout_val, int dpout_val_dim1)}; -%apply (long* ARGOUT_ARRAY1, int DIM1) {(long* lpout_val, int lpout_val_dim1)}; - -%inline %{ -//void with_numpy() { -// return; -//} -int grib_set_double_ndarray(int* gid, char* key, double* dpin_val, int dpin_val_dim1) { - return grib_c_set_real8_array(gid,key,dpin_val,&dpin_val_dim1); -} -int grib_set_long_ndarray(int* gid, char* key, long* lpin_val, int lpin_val_dim1) { - return grib_c_set_long_array(gid,key,lpin_val,&lpin_val_dim1); -} -int grib_get_double_ndarray(int* gid, char* key, double* dpout_val, int dpout_val_dim1) { - return grib_c_get_real8_array(gid,key,dpout_val,&dpout_val_dim1); -} -int grib_get_long_ndarray(int* gid, char* key, long* lpout_val, int lpout_val_dim1) { - return grib_c_get_long_array(gid,key,lpout_val,&lpout_val_dim1); -} -int grib_get_double_ndelements(int* gid, char* key, int* ipin_index, int ipin_index_dim1, double* dpout_val, int dpout_val_dim1) { - return grib_c_get_real8_elements(gid,key,ipin_index,dpout_val,&dpout_val_dim1); -} -%} -%clear double* dpin_val, int dpin_val_dim1; -%clear long* lpin_val, int lpin_val_dim1; -%clear int* ipout_val, int ipout_val_dim1; -%clear double* dpout_val, int dpout_val_dim1; -%clear long* lpout_val, int lpout_val_dim1; - -// --- - -// nearest -int grib_c_find_nearest_single(int* gid, int* INPUT, double* INPUT, double* INPUT, double* OUTPUT, double* OUTPUT, double* OUTPUT, double* OUTPUT, int* OUTPUT); -int grib_c_find_nearest_four_single(int* gid, int* INPUT, double* INPUT, double* INPUT, double* outlats, double* outlons, double* values, double* distances, int* indexes); -// --- - -/* -* Get the binary string message for a grib. -* -* Set the 3rd argument to nothing in 'cstring_output_allocate_size'. -* This is kind of difficult to explain, but, *msg will point directly to -* the binary message data of the current grib (which is stored in -* handle->buffer->data if I remember correctly) so freeing it will cause -* the binary message data in the grib_handle structure to be freed. This -* is a problem as grib_api does not know that, so it tries to free it -* itself (grib_release does that) resulting in a 'Segmentation fault'. -*/ -%cstring_output_allocate_size(const void **binmsg, size_t *binmsglen,); -int grib_c_get_message(int *gid, const void **binmsg, size_t *binmsglen); -%clear const void **binmsg, size_t *binmsglen; - -%clear int* fid; -%clear int* gid; -%clear int* iterid; - -%cstring_bounded_output(char* error_message, 1024); -int grib_c_get_error_string(int* INPUT, char* error_message, int len); - -void no_fail_on_wrong_length(int flag); -long grib_c_get_api_version(); -void grib_c_gts_header_on(); -void grib_c_gts_header_off(); -void grib_c_set_definitions_path(const char* path); -void grib_c_set_samples_path(const char* path); diff --git a/python3/numpy.i b/python3/numpy.i deleted file mode 100644 index 72d5824de..000000000 --- a/python3/numpy.i +++ /dev/null @@ -1,3183 +0,0 @@ -/* -*- C -*- (not really, but good for syntax highlighting) */ - -/* - * Copyright (c) 2005-2015, NumPy Developers. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * - * * Neither the name of the NumPy Developers nor the names of any - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifdef SWIGPYTHON - -%{ -#ifndef SWIG_FILE_WITH_INIT -#define NO_IMPORT_ARRAY -#endif -#include "stdio.h" -#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION -#include -%} - -/**********************************************************************/ - -%fragment("NumPy_Backward_Compatibility", "header") -{ -%#if NPY_API_VERSION < 0x00000007 -%#define NPY_ARRAY_DEFAULT NPY_DEFAULT -%#define NPY_ARRAY_FARRAY NPY_FARRAY -%#define NPY_FORTRANORDER NPY_FORTRAN -%#endif -} - -/**********************************************************************/ - -/* The following code originally appeared in - * enthought/kiva/agg/src/numeric.i written by Eric Jones. It was - * translated from C++ to C by John Hunter. Bill Spotz has modified - * it to fix some minor bugs, upgrade from Numeric to numpy (all - * versions), add some comments and functionality, and convert from - * direct code insertion to SWIG fragments. - */ - -%fragment("NumPy_Macros", "header") -{ -/* Macros to extract array attributes. - */ -%#if NPY_API_VERSION < 0x00000007 -%#define is_array(a) ((a) && PyArray_Check((PyArrayObject*)a)) -%#define array_type(a) (int)(PyArray_TYPE((PyArrayObject*)a)) -%#define array_numdims(a) (((PyArrayObject*)a)->nd) -%#define array_dimensions(a) (((PyArrayObject*)a)->dimensions) -%#define array_size(a,i) (((PyArrayObject*)a)->dimensions[i]) -%#define array_strides(a) (((PyArrayObject*)a)->strides) -%#define array_stride(a,i) (((PyArrayObject*)a)->strides[i]) -%#define array_data(a) (((PyArrayObject*)a)->data) -%#define array_descr(a) (((PyArrayObject*)a)->descr) -%#define array_flags(a) (((PyArrayObject*)a)->flags) -%#define array_clearflags(a,f) (((PyArrayObject*)a)->flags) &= ~f -%#define array_enableflags(a,f) (((PyArrayObject*)a)->flags) = f -%#define array_is_fortran(a) (PyArray_ISFORTRAN((PyArrayObject*)a)) -%#else -%#define is_array(a) ((a) && PyArray_Check(a)) -%#define array_type(a) PyArray_TYPE((PyArrayObject*)a) -%#define array_numdims(a) PyArray_NDIM((PyArrayObject*)a) -%#define array_dimensions(a) PyArray_DIMS((PyArrayObject*)a) -%#define array_strides(a) PyArray_STRIDES((PyArrayObject*)a) -%#define array_stride(a,i) PyArray_STRIDE((PyArrayObject*)a,i) -%#define array_size(a,i) PyArray_DIM((PyArrayObject*)a,i) -%#define array_data(a) PyArray_DATA((PyArrayObject*)a) -%#define array_descr(a) PyArray_DESCR((PyArrayObject*)a) -%#define array_flags(a) PyArray_FLAGS((PyArrayObject*)a) -%#define array_enableflags(a,f) PyArray_ENABLEFLAGS((PyArrayObject*)a,f) -%#define array_clearflags(a,f) PyArray_CLEARFLAGS((PyArrayObject*)a,f) -%#define array_is_fortran(a) (PyArray_IS_F_CONTIGUOUS((PyArrayObject*)a)) -%#endif -%#define array_is_contiguous(a) (PyArray_ISCONTIGUOUS((PyArrayObject*)a)) -%#define array_is_native(a) (PyArray_ISNOTSWAPPED((PyArrayObject*)a)) -} - -/**********************************************************************/ - -%fragment("NumPy_Utilities", - "header") -{ - /* Given a PyObject, return a string describing its type. - */ - const char* pytype_string(PyObject* py_obj) - { - if (py_obj == NULL ) return "C NULL value"; - if (py_obj == Py_None ) return "Python None" ; - if (PyCallable_Check(py_obj)) return "callable" ; - if (PyString_Check( py_obj)) return "string" ; - if (PyInt_Check( py_obj)) return "int" ; - if (PyFloat_Check( py_obj)) return "float" ; - if (PyDict_Check( py_obj)) return "dict" ; - if (PyList_Check( py_obj)) return "list" ; - if (PyTuple_Check( py_obj)) return "tuple" ; -%#if PY_MAJOR_VERSION < 3 - if (PyFile_Check( py_obj)) return "file" ; - if (PyModule_Check( py_obj)) return "module" ; - if (PyInstance_Check(py_obj)) return "instance" ; -%#endif - - return "unknown type"; - } - - /* Given a NumPy typecode, return a string describing the type. - */ - const char* typecode_string(int typecode) - { - static const char* type_names[25] = {"bool", - "byte", - "unsigned byte", - "short", - "unsigned short", - "int", - "unsigned int", - "long", - "unsigned long", - "long long", - "unsigned long long", - "float", - "double", - "long double", - "complex float", - "complex double", - "complex long double", - "object", - "string", - "unicode", - "void", - "ntypes", - "notype", - "char", - "unknown"}; - return typecode < 24 ? type_names[typecode] : type_names[24]; - } - - /* Make sure input has correct numpy type. This now just calls - PyArray_EquivTypenums(). - */ - int type_match(int actual_type, - int desired_type) - { - return PyArray_EquivTypenums(actual_type, desired_type); - } - -%#ifdef SWIGPY_USE_CAPSULE - void free_cap(PyObject * cap) - { - void* array = (void*) PyCapsule_GetPointer(cap,SWIGPY_CAPSULE_NAME); - if (array != NULL) free(array); - } -%#endif - - -} - -/**********************************************************************/ - -%fragment("NumPy_Object_to_Array", - "header", - fragment="NumPy_Backward_Compatibility", - fragment="NumPy_Macros", - fragment="NumPy_Utilities") -{ - /* Given a PyObject pointer, cast it to a PyArrayObject pointer if - * legal. If not, set the python error string appropriately and - * return NULL. - */ - PyArrayObject* obj_to_array_no_conversion(PyObject* input, - int typecode) - { - PyArrayObject* ary = NULL; - if (is_array(input) && (typecode == NPY_NOTYPE || - PyArray_EquivTypenums(array_type(input), typecode))) - { - ary = (PyArrayObject*) input; - } - else if is_array(input) - { - const char* desired_type = typecode_string(typecode); - const char* actual_type = typecode_string(array_type(input)); - PyErr_Format(PyExc_TypeError, - "Array of type '%s' required. Array of type '%s' given", - desired_type, actual_type); - ary = NULL; - } - else - { - const char* desired_type = typecode_string(typecode); - const char* actual_type = pytype_string(input); - PyErr_Format(PyExc_TypeError, - "Array of type '%s' required. A '%s' was given", - desired_type, - actual_type); - ary = NULL; - } - return ary; - } - - /* Convert the given PyObject to a NumPy array with the given - * typecode. On success, return a valid PyArrayObject* with the - * correct type. On failure, the python error string will be set and - * the routine returns NULL. - */ - PyArrayObject* obj_to_array_allow_conversion(PyObject* input, - int typecode, - int* is_new_object) - { - PyArrayObject* ary = NULL; - PyObject* py_obj; - if (is_array(input) && (typecode == NPY_NOTYPE || - PyArray_EquivTypenums(array_type(input),typecode))) - { - ary = (PyArrayObject*) input; - *is_new_object = 0; - } - else - { - py_obj = PyArray_FROMANY(input, typecode, 0, 0, NPY_ARRAY_DEFAULT); - /* If NULL, PyArray_FromObject will have set python error value.*/ - ary = (PyArrayObject*) py_obj; - *is_new_object = 1; - } - return ary; - } - - /* Given a PyArrayObject, check to see if it is contiguous. If so, - * return the input pointer and flag it as not a new object. If it is - * not contiguous, create a new PyArrayObject using the original data, - * flag it as a new object and return the pointer. - */ - PyArrayObject* make_contiguous(PyArrayObject* ary, - int* is_new_object, - int min_dims, - int max_dims) - { - PyArrayObject* result; - if (array_is_contiguous(ary)) - { - result = ary; - *is_new_object = 0; - } - else - { - result = (PyArrayObject*) PyArray_ContiguousFromObject((PyObject*)ary, - array_type(ary), - min_dims, - max_dims); - *is_new_object = 1; - } - return result; - } - - /* Given a PyArrayObject, check to see if it is Fortran-contiguous. - * If so, return the input pointer, but do not flag it as not a new - * object. If it is not Fortran-contiguous, create a new - * PyArrayObject using the original data, flag it as a new object - * and return the pointer. - */ - PyArrayObject* make_fortran(PyArrayObject* ary, - int* is_new_object) - { - PyArrayObject* result; - if (array_is_fortran(ary)) - { - result = ary; - *is_new_object = 0; - } - else - { - Py_INCREF(array_descr(ary)); - result = (PyArrayObject*) PyArray_FromArray(ary, - array_descr(ary), -%#if NPY_API_VERSION < 0x00000007 - NPY_FORTRANORDER); -%#else - NPY_ARRAY_F_CONTIGUOUS); -%#endif - *is_new_object = 1; - } - return result; - } - - /* Convert a given PyObject to a contiguous PyArrayObject of the - * specified type. If the input object is not a contiguous - * PyArrayObject, a new one will be created and the new object flag - * will be set. - */ - PyArrayObject* obj_to_array_contiguous_allow_conversion(PyObject* input, - int typecode, - int* is_new_object) - { - int is_new1 = 0; - int is_new2 = 0; - PyArrayObject* ary2; - PyArrayObject* ary1 = obj_to_array_allow_conversion(input, - typecode, - &is_new1); - if (ary1) - { - ary2 = make_contiguous(ary1, &is_new2, 0, 0); - if ( is_new1 && is_new2) - { - Py_DECREF(ary1); - } - ary1 = ary2; - } - *is_new_object = is_new1 || is_new2; - return ary1; - } - - /* Convert a given PyObject to a Fortran-ordered PyArrayObject of the - * specified type. If the input object is not a Fortran-ordered - * PyArrayObject, a new one will be created and the new object flag - * will be set. - */ - PyArrayObject* obj_to_array_fortran_allow_conversion(PyObject* input, - int typecode, - int* is_new_object) - { - int is_new1 = 0; - int is_new2 = 0; - PyArrayObject* ary2; - PyArrayObject* ary1 = obj_to_array_allow_conversion(input, - typecode, - &is_new1); - if (ary1) - { - ary2 = make_fortran(ary1, &is_new2); - if (is_new1 && is_new2) - { - Py_DECREF(ary1); - } - ary1 = ary2; - } - *is_new_object = is_new1 || is_new2; - return ary1; - } -} /* end fragment */ - -/**********************************************************************/ - -%fragment("NumPy_Array_Requirements", - "header", - fragment="NumPy_Backward_Compatibility", - fragment="NumPy_Macros") -{ - /* Test whether a python object is contiguous. If array is - * contiguous, return 1. Otherwise, set the python error string and - * return 0. - */ - int require_contiguous(PyArrayObject* ary) - { - int contiguous = 1; - if (!array_is_contiguous(ary)) - { - PyErr_SetString(PyExc_TypeError, - "Array must be contiguous. A non-contiguous array was given"); - contiguous = 0; - } - return contiguous; - } - - /* Test whether a python object is (C_ or F_) contiguous. If array is - * contiguous, return 1. Otherwise, set the python error string and - * return 0. - */ - int require_c_or_f_contiguous(PyArrayObject* ary) - { - int contiguous = 1; - if (!(array_is_contiguous(ary) || array_is_fortran(ary))) - { - PyErr_SetString(PyExc_TypeError, - "Array must be contiguous (C_ or F_). A non-contiguous array was given"); - contiguous = 0; - } - return contiguous; - } - - /* Require that a numpy array is not byte-swapped. If the array is - * not byte-swapped, return 1. Otherwise, set the python error string - * and return 0. - */ - int require_native(PyArrayObject* ary) - { - int native = 1; - if (!array_is_native(ary)) - { - PyErr_SetString(PyExc_TypeError, - "Array must have native byteorder. " - "A byte-swapped array was given"); - native = 0; - } - return native; - } - - /* Require the given PyArrayObject to have a specified number of - * dimensions. If the array has the specified number of dimensions, - * return 1. Otherwise, set the python error string and return 0. - */ - int require_dimensions(PyArrayObject* ary, - int exact_dimensions) - { - int success = 1; - if (array_numdims(ary) != exact_dimensions) - { - PyErr_Format(PyExc_TypeError, - "Array must have %d dimensions. Given array has %d dimensions", - exact_dimensions, - array_numdims(ary)); - success = 0; - } - return success; - } - - /* Require the given PyArrayObject to have one of a list of specified - * number of dimensions. If the array has one of the specified number - * of dimensions, return 1. Otherwise, set the python error string - * and return 0. - */ - int require_dimensions_n(PyArrayObject* ary, - int* exact_dimensions, - int n) - { - int success = 0; - int i; - char dims_str[255] = ""; - char s[255]; - for (i = 0; i < n && !success; i++) - { - if (array_numdims(ary) == exact_dimensions[i]) - { - success = 1; - } - } - if (!success) - { - for (i = 0; i < n-1; i++) - { - sprintf(s, "%d, ", exact_dimensions[i]); - strcat(dims_str,s); - } - sprintf(s, " or %d", exact_dimensions[n-1]); - strcat(dims_str,s); - PyErr_Format(PyExc_TypeError, - "Array must have %s dimensions. Given array has %d dimensions", - dims_str, - array_numdims(ary)); - } - return success; - } - - /* Require the given PyArrayObject to have a specified shape. If the - * array has the specified shape, return 1. Otherwise, set the python - * error string and return 0. - */ - int require_size(PyArrayObject* ary, - npy_intp* size, - int n) - { - int i; - int success = 1; - size_t len; - char desired_dims[255] = "["; - char s[255]; - char actual_dims[255] = "["; - for(i=0; i < n;i++) - { - if (size[i] != -1 && size[i] != array_size(ary,i)) - { - success = 0; - } - } - if (!success) - { - for (i = 0; i < n; i++) - { - if (size[i] == -1) - { - sprintf(s, "*,"); - } - else - { - sprintf(s, "%ld,", (long int)size[i]); - } - strcat(desired_dims,s); - } - len = strlen(desired_dims); - desired_dims[len-1] = ']'; - for (i = 0; i < n; i++) - { - sprintf(s, "%ld,", (long int)array_size(ary,i)); - strcat(actual_dims,s); - } - len = strlen(actual_dims); - actual_dims[len-1] = ']'; - PyErr_Format(PyExc_TypeError, - "Array must have shape of %s. Given array has shape of %s", - desired_dims, - actual_dims); - } - return success; - } - - /* Require the given PyArrayObject to to be Fortran ordered. If the - * the PyArrayObject is already Fortran ordered, do nothing. Else, - * set the Fortran ordering flag and recompute the strides. - */ - int require_fortran(PyArrayObject* ary) - { - int success = 1; - int nd = array_numdims(ary); - int i; - npy_intp * strides = array_strides(ary); - if (array_is_fortran(ary)) return success; - int n_non_one = 0; - /* Set the Fortran ordered flag */ - const npy_intp *dims = array_dimensions(ary); - for (i=0; i < nd; ++i) - n_non_one += (dims[i] != 1) ? 1 : 0; - if (n_non_one > 1) - array_clearflags(ary,NPY_ARRAY_CARRAY); - array_enableflags(ary,NPY_ARRAY_FARRAY); - /* Recompute the strides */ - strides[0] = strides[nd-1]; - for (i=1; i < nd; ++i) - strides[i] = strides[i-1] * array_size(ary,i-1); - return success; - } -} - -/* Combine all NumPy fragments into one for convenience */ -%fragment("NumPy_Fragments", - "header", - fragment="NumPy_Backward_Compatibility", - fragment="NumPy_Macros", - fragment="NumPy_Utilities", - fragment="NumPy_Object_to_Array", - fragment="NumPy_Array_Requirements") -{ -} - -/* End John Hunter translation (with modifications by Bill Spotz) - */ - -/* %numpy_typemaps() macro - * - * This macro defines a family of 75 typemaps that allow C arguments - * of the form - * - * 1. (DATA_TYPE IN_ARRAY1[ANY]) - * 2. (DATA_TYPE* IN_ARRAY1, DIM_TYPE DIM1) - * 3. (DIM_TYPE DIM1, DATA_TYPE* IN_ARRAY1) - * - * 4. (DATA_TYPE IN_ARRAY2[ANY][ANY]) - * 5. (DATA_TYPE* IN_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) - * 6. (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_ARRAY2) - * 7. (DATA_TYPE* IN_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) - * 8. (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_FARRAY2) - * - * 9. (DATA_TYPE IN_ARRAY3[ANY][ANY][ANY]) - * 10. (DATA_TYPE* IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) - * 11. (DATA_TYPE** IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) - * 12. (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* IN_ARRAY3) - * 13. (DATA_TYPE* IN_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) - * 14. (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* IN_FARRAY3) - * - * 15. (DATA_TYPE IN_ARRAY4[ANY][ANY][ANY][ANY]) - * 16. (DATA_TYPE* IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) - * 17. (DATA_TYPE** IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) - * 18. (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, , DIM_TYPE DIM4, DATA_TYPE* IN_ARRAY4) - * 19. (DATA_TYPE* IN_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) - * 20. (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* IN_FARRAY4) - * - * 21. (DATA_TYPE INPLACE_ARRAY1[ANY]) - * 22. (DATA_TYPE* INPLACE_ARRAY1, DIM_TYPE DIM1) - * 23. (DIM_TYPE DIM1, DATA_TYPE* INPLACE_ARRAY1) - * - * 24. (DATA_TYPE INPLACE_ARRAY2[ANY][ANY]) - * 25. (DATA_TYPE* INPLACE_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) - * 26. (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* INPLACE_ARRAY2) - * 27. (DATA_TYPE* INPLACE_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) - * 28. (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* INPLACE_FARRAY2) - * - * 29. (DATA_TYPE INPLACE_ARRAY3[ANY][ANY][ANY]) - * 30. (DATA_TYPE* INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) - * 31. (DATA_TYPE** INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) - * 32. (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* INPLACE_ARRAY3) - * 33. (DATA_TYPE* INPLACE_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) - * 34. (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* INPLACE_FARRAY3) - * - * 35. (DATA_TYPE INPLACE_ARRAY4[ANY][ANY][ANY][ANY]) - * 36. (DATA_TYPE* INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) - * 37. (DATA_TYPE** INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) - * 38. (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* INPLACE_ARRAY4) - * 39. (DATA_TYPE* INPLACE_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) - * 40. (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* INPLACE_FARRAY4) - * - * 41. (DATA_TYPE ARGOUT_ARRAY1[ANY]) - * 42. (DATA_TYPE* ARGOUT_ARRAY1, DIM_TYPE DIM1) - * 43. (DIM_TYPE DIM1, DATA_TYPE* ARGOUT_ARRAY1) - * - * 44. (DATA_TYPE ARGOUT_ARRAY2[ANY][ANY]) - * - * 45. (DATA_TYPE ARGOUT_ARRAY3[ANY][ANY][ANY]) - * - * 46. (DATA_TYPE ARGOUT_ARRAY4[ANY][ANY][ANY][ANY]) - * - * 47. (DATA_TYPE** ARGOUTVIEW_ARRAY1, DIM_TYPE* DIM1) - * 48. (DIM_TYPE* DIM1, DATA_TYPE** ARGOUTVIEW_ARRAY1) - * - * 49. (DATA_TYPE** ARGOUTVIEW_ARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) - * 50. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEW_ARRAY2) - * 51. (DATA_TYPE** ARGOUTVIEW_FARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) - * 52. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEW_FARRAY2) - * - * 53. (DATA_TYPE** ARGOUTVIEW_ARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) - * 54. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEW_ARRAY3) - * 55. (DATA_TYPE** ARGOUTVIEW_FARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) - * 56. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEW_FARRAY3) - * - * 57. (DATA_TYPE** ARGOUTVIEW_ARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) - * 58. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEW_ARRAY4) - * 59. (DATA_TYPE** ARGOUTVIEW_FARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) - * 60. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEW_FARRAY4) - * - * 61. (DATA_TYPE** ARGOUTVIEWM_ARRAY1, DIM_TYPE* DIM1) - * 62. (DIM_TYPE* DIM1, DATA_TYPE** ARGOUTVIEWM_ARRAY1) - * - * 63. (DATA_TYPE** ARGOUTVIEWM_ARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) - * 64. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEWM_ARRAY2) - * 65. (DATA_TYPE** ARGOUTVIEWM_FARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) - * 66. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEWM_FARRAY2) - * - * 67. (DATA_TYPE** ARGOUTVIEWM_ARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) - * 68. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEWM_ARRAY3) - * 69. (DATA_TYPE** ARGOUTVIEWM_FARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) - * 70. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEWM_FARRAY3) - * - * 71. (DATA_TYPE** ARGOUTVIEWM_ARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) - * 72. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEWM_ARRAY4) - * 73. (DATA_TYPE** ARGOUTVIEWM_FARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) - * 74. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEWM_FARRAY4) - * - * 75. (DATA_TYPE* INPLACE_ARRAY_FLAT, DIM_TYPE DIM_FLAT) - * - * where "DATA_TYPE" is any type supported by the NumPy module, and - * "DIM_TYPE" is any int-like type suitable for specifying dimensions. - * The difference between "ARRAY" typemaps and "FARRAY" typemaps is - * that the "FARRAY" typemaps expect Fortran ordering of - * multidimensional arrays. In python, the dimensions will not need - * to be specified (except for the "DATA_TYPE* ARGOUT_ARRAY1" - * typemaps). The IN_ARRAYs can be a numpy array or any sequence that - * can be converted to a numpy array of the specified type. The - * INPLACE_ARRAYs must be numpy arrays of the appropriate type. The - * ARGOUT_ARRAYs will be returned as new numpy arrays of the - * appropriate type. - * - * These typemaps can be applied to existing functions using the - * %apply directive. For example: - * - * %apply (double* IN_ARRAY1, int DIM1) {(double* series, int length)}; - * double prod(double* series, int length); - * - * %apply (int DIM1, int DIM2, double* INPLACE_ARRAY2) - * {(int rows, int cols, double* matrix )}; - * void floor(int rows, int cols, double* matrix, double f); - * - * %apply (double IN_ARRAY3[ANY][ANY][ANY]) - * {(double tensor[2][2][2] )}; - * %apply (double ARGOUT_ARRAY3[ANY][ANY][ANY]) - * {(double low[2][2][2] )}; - * %apply (double ARGOUT_ARRAY3[ANY][ANY][ANY]) - * {(double upp[2][2][2] )}; - * void luSplit(double tensor[2][2][2], - * double low[2][2][2], - * double upp[2][2][2] ); - * - * or directly with - * - * double prod(double* IN_ARRAY1, int DIM1); - * - * void floor(int DIM1, int DIM2, double* INPLACE_ARRAY2, double f); - * - * void luSplit(double IN_ARRAY3[ANY][ANY][ANY], - * double ARGOUT_ARRAY3[ANY][ANY][ANY], - * double ARGOUT_ARRAY3[ANY][ANY][ANY]); - */ - -%define %numpy_typemaps(DATA_TYPE, DATA_TYPECODE, DIM_TYPE) - -/************************/ -/* Input Array Typemaps */ -/************************/ - -/* Typemap suite for (DATA_TYPE IN_ARRAY1[ANY]) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE IN_ARRAY1[ANY]) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE IN_ARRAY1[ANY]) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[1] = { $1_dim0 }; - array = obj_to_array_contiguous_allow_conversion($input, - DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 1) || - !require_size(array, size, 1)) SWIG_fail; - $1 = ($1_ltype) array_data(array); -} -%typemap(freearg) - (DATA_TYPE IN_ARRAY1[ANY]) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DATA_TYPE* IN_ARRAY1, DIM_TYPE DIM1) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* IN_ARRAY1, DIM_TYPE DIM1) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* IN_ARRAY1, DIM_TYPE DIM1) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[1] = { -1 }; - array = obj_to_array_contiguous_allow_conversion($input, - DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 1) || - !require_size(array, size, 1)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); -} -%typemap(freearg) - (DATA_TYPE* IN_ARRAY1, DIM_TYPE DIM1) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DIM_TYPE DIM1, DATA_TYPE* IN_ARRAY1) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DATA_TYPE* IN_ARRAY1) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DATA_TYPE* IN_ARRAY1) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[1] = {-1}; - array = obj_to_array_contiguous_allow_conversion($input, - DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 1) || - !require_size(array, size, 1)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DATA_TYPE*) array_data(array); -} -%typemap(freearg) - (DIM_TYPE DIM1, DATA_TYPE* IN_ARRAY1) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DATA_TYPE IN_ARRAY2[ANY][ANY]) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE IN_ARRAY2[ANY][ANY]) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE IN_ARRAY2[ANY][ANY]) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[2] = { $1_dim0, $1_dim1 }; - array = obj_to_array_contiguous_allow_conversion($input, - DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 2) || - !require_size(array, size, 2)) SWIG_fail; - $1 = ($1_ltype) array_data(array); -} -%typemap(freearg) - (DATA_TYPE IN_ARRAY2[ANY][ANY]) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DATA_TYPE* IN_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* IN_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* IN_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[2] = { -1, -1 }; - array = obj_to_array_contiguous_allow_conversion($input, DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 2) || - !require_size(array, size, 2)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); - $3 = (DIM_TYPE) array_size(array,1); -} -%typemap(freearg) - (DATA_TYPE* IN_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_ARRAY2) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_ARRAY2) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_ARRAY2) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[2] = { -1, -1 }; - array = obj_to_array_contiguous_allow_conversion($input, - DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 2) || - !require_size(array, size, 2)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DIM_TYPE) array_size(array,1); - $3 = (DATA_TYPE*) array_data(array); -} -%typemap(freearg) - (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_ARRAY2) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DATA_TYPE* IN_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* IN_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* IN_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[2] = { -1, -1 }; - array = obj_to_array_fortran_allow_conversion($input, - DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 2) || - !require_size(array, size, 2) || !require_fortran(array)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); - $3 = (DIM_TYPE) array_size(array,1); -} -%typemap(freearg) - (DATA_TYPE* IN_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_FARRAY2) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_FARRAY2) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_FARRAY2) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[2] = { -1, -1 }; - array = obj_to_array_fortran_allow_conversion($input, - DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 2) || - !require_size(array, size, 2) || !require_fortran(array)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DIM_TYPE) array_size(array,1); - $3 = (DATA_TYPE*) array_data(array); -} -%typemap(freearg) - (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_FARRAY2) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DATA_TYPE IN_ARRAY3[ANY][ANY][ANY]) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE IN_ARRAY3[ANY][ANY][ANY]) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE IN_ARRAY3[ANY][ANY][ANY]) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[3] = { $1_dim0, $1_dim1, $1_dim2 }; - array = obj_to_array_contiguous_allow_conversion($input, - DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 3) || - !require_size(array, size, 3)) SWIG_fail; - $1 = ($1_ltype) array_data(array); -} -%typemap(freearg) - (DATA_TYPE IN_ARRAY3[ANY][ANY][ANY]) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DATA_TYPE* IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, - * DIM_TYPE DIM3) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[3] = { -1, -1, -1 }; - array = obj_to_array_contiguous_allow_conversion($input, DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 3) || - !require_size(array, size, 3)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); - $3 = (DIM_TYPE) array_size(array,1); - $4 = (DIM_TYPE) array_size(array,2); -} -%typemap(freearg) - (DATA_TYPE* IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DATA_TYPE** IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, - * DIM_TYPE DIM3) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE** IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) -{ - /* for now, only concerned with lists */ - $1 = PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE** IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) - (DATA_TYPE** array=NULL, PyArrayObject** object_array=NULL, int* is_new_object_array=NULL) -{ - npy_intp size[2] = { -1, -1 }; - PyArrayObject* temp_array; - Py_ssize_t i; - int is_new_object; - - /* length of the list */ - $2 = PyList_Size($input); - - /* the arrays */ - array = (DATA_TYPE **)malloc($2*sizeof(DATA_TYPE *)); - object_array = (PyArrayObject **)calloc($2,sizeof(PyArrayObject *)); - is_new_object_array = (int *)calloc($2,sizeof(int)); - - if (array == NULL || object_array == NULL || is_new_object_array == NULL) - { - SWIG_fail; - } - - for (i=0; i<$2; i++) - { - temp_array = obj_to_array_contiguous_allow_conversion(PySequence_GetItem($input,i), DATA_TYPECODE, &is_new_object); - - /* the new array must be stored so that it can be destroyed in freearg */ - object_array[i] = temp_array; - is_new_object_array[i] = is_new_object; - - if (!temp_array || !require_dimensions(temp_array, 2)) SWIG_fail; - - /* store the size of the first array in the list, then use that for comparison. */ - if (i == 0) - { - size[0] = array_size(temp_array,0); - size[1] = array_size(temp_array,1); - } - - if (!require_size(temp_array, size, 2)) SWIG_fail; - - array[i] = (DATA_TYPE*) array_data(temp_array); - } - - $1 = (DATA_TYPE**) array; - $3 = (DIM_TYPE) size[0]; - $4 = (DIM_TYPE) size[1]; -} -%typemap(freearg) - (DATA_TYPE** IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) -{ - Py_ssize_t i; - - if (array$argnum!=NULL) free(array$argnum); - - /*freeing the individual arrays if needed */ - if (object_array$argnum!=NULL) - { - if (is_new_object_array$argnum!=NULL) - { - for (i=0; i<$2; i++) - { - if (object_array$argnum[i] != NULL && is_new_object_array$argnum[i]) - { Py_DECREF(object_array$argnum[i]); } - } - free(is_new_object_array$argnum); - } - free(object_array$argnum); - } -} - -/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, - * DATA_TYPE* IN_ARRAY3) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* IN_ARRAY3) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* IN_ARRAY3) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[3] = { -1, -1, -1 }; - array = obj_to_array_contiguous_allow_conversion($input, DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 3) || - !require_size(array, size, 3)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DIM_TYPE) array_size(array,1); - $3 = (DIM_TYPE) array_size(array,2); - $4 = (DATA_TYPE*) array_data(array); -} -%typemap(freearg) - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* IN_ARRAY3) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DATA_TYPE* IN_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, - * DIM_TYPE DIM3) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* IN_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* IN_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[3] = { -1, -1, -1 }; - array = obj_to_array_fortran_allow_conversion($input, DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 3) || - !require_size(array, size, 3) | !require_fortran(array)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); - $3 = (DIM_TYPE) array_size(array,1); - $4 = (DIM_TYPE) array_size(array,2); -} -%typemap(freearg) - (DATA_TYPE* IN_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, - * DATA_TYPE* IN_FARRAY3) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* IN_FARRAY3) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* IN_FARRAY3) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[3] = { -1, -1, -1 }; - array = obj_to_array_fortran_allow_conversion($input, - DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 3) || - !require_size(array, size, 3) || !require_fortran(array)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DIM_TYPE) array_size(array,1); - $3 = (DIM_TYPE) array_size(array,2); - $4 = (DATA_TYPE*) array_data(array); -} -%typemap(freearg) - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* IN_FARRAY3) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DATA_TYPE IN_ARRAY4[ANY][ANY][ANY][ANY]) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE IN_ARRAY4[ANY][ANY][ANY][ANY]) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE IN_ARRAY4[ANY][ANY][ANY][ANY]) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[4] = { $1_dim0, $1_dim1, $1_dim2 , $1_dim3}; - array = obj_to_array_contiguous_allow_conversion($input, DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 4) || - !require_size(array, size, 4)) SWIG_fail; - $1 = ($1_ltype) array_data(array); -} -%typemap(freearg) - (DATA_TYPE IN_ARRAY4[ANY][ANY][ANY][ANY]) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DATA_TYPE* IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, - * DIM_TYPE DIM3, DIM_TYPE DIM4) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[4] = { -1, -1, -1, -1 }; - array = obj_to_array_contiguous_allow_conversion($input, DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 4) || - !require_size(array, size, 4)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); - $3 = (DIM_TYPE) array_size(array,1); - $4 = (DIM_TYPE) array_size(array,2); - $5 = (DIM_TYPE) array_size(array,3); -} -%typemap(freearg) - (DATA_TYPE* IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DATA_TYPE** IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, - * DIM_TYPE DIM3, DIM_TYPE DIM4) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE** IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) -{ - /* for now, only concerned with lists */ - $1 = PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE** IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) - (DATA_TYPE** array=NULL, PyArrayObject** object_array=NULL, int* is_new_object_array=NULL) -{ - npy_intp size[3] = { -1, -1, -1 }; - PyArrayObject* temp_array; - Py_ssize_t i; - int is_new_object; - - /* length of the list */ - $2 = PyList_Size($input); - - /* the arrays */ - array = (DATA_TYPE **)malloc($2*sizeof(DATA_TYPE *)); - object_array = (PyArrayObject **)calloc($2,sizeof(PyArrayObject *)); - is_new_object_array = (int *)calloc($2,sizeof(int)); - - if (array == NULL || object_array == NULL || is_new_object_array == NULL) - { - SWIG_fail; - } - - for (i=0; i<$2; i++) - { - temp_array = obj_to_array_contiguous_allow_conversion(PySequence_GetItem($input,i), DATA_TYPECODE, &is_new_object); - - /* the new array must be stored so that it can be destroyed in freearg */ - object_array[i] = temp_array; - is_new_object_array[i] = is_new_object; - - if (!temp_array || !require_dimensions(temp_array, 3)) SWIG_fail; - - /* store the size of the first array in the list, then use that for comparison. */ - if (i == 0) - { - size[0] = array_size(temp_array,0); - size[1] = array_size(temp_array,1); - size[2] = array_size(temp_array,2); - } - - if (!require_size(temp_array, size, 3)) SWIG_fail; - - array[i] = (DATA_TYPE*) array_data(temp_array); - } - - $1 = (DATA_TYPE**) array; - $3 = (DIM_TYPE) size[0]; - $4 = (DIM_TYPE) size[1]; - $5 = (DIM_TYPE) size[2]; -} -%typemap(freearg) - (DATA_TYPE** IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) -{ - Py_ssize_t i; - - if (array$argnum!=NULL) free(array$argnum); - - /*freeing the individual arrays if needed */ - if (object_array$argnum!=NULL) - { - if (is_new_object_array$argnum!=NULL) - { - for (i=0; i<$2; i++) - { - if (object_array$argnum[i] != NULL && is_new_object_array$argnum[i]) - { Py_DECREF(object_array$argnum[i]); } - } - free(is_new_object_array$argnum); - } - free(object_array$argnum); - } -} - -/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, - * DATA_TYPE* IN_ARRAY4) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* IN_ARRAY4) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* IN_ARRAY4) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[4] = { -1, -1, -1 , -1}; - array = obj_to_array_contiguous_allow_conversion($input, DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 4) || - !require_size(array, size, 4)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DIM_TYPE) array_size(array,1); - $3 = (DIM_TYPE) array_size(array,2); - $4 = (DIM_TYPE) array_size(array,3); - $5 = (DATA_TYPE*) array_data(array); -} -%typemap(freearg) - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* IN_ARRAY4) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DATA_TYPE* IN_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, - * DIM_TYPE DIM3, DIM_TYPE DIM4) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* IN_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* IN_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[4] = { -1, -1, -1, -1 }; - array = obj_to_array_fortran_allow_conversion($input, DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 4) || - !require_size(array, size, 4) | !require_fortran(array)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); - $3 = (DIM_TYPE) array_size(array,1); - $4 = (DIM_TYPE) array_size(array,2); - $5 = (DIM_TYPE) array_size(array,3); -} -%typemap(freearg) - (DATA_TYPE* IN_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, - * DATA_TYPE* IN_FARRAY4) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* IN_FARRAY4) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* IN_FARRAY4) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[4] = { -1, -1, -1 , -1 }; - array = obj_to_array_fortran_allow_conversion($input, DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 4) || - !require_size(array, size, 4) || !require_fortran(array)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DIM_TYPE) array_size(array,1); - $3 = (DIM_TYPE) array_size(array,2); - $4 = (DIM_TYPE) array_size(array,3); - $5 = (DATA_TYPE*) array_data(array); -} -%typemap(freearg) - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* IN_FARRAY4) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/***************************/ -/* In-Place Array Typemaps */ -/***************************/ - -/* Typemap suite for (DATA_TYPE INPLACE_ARRAY1[ANY]) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE INPLACE_ARRAY1[ANY]) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE INPLACE_ARRAY1[ANY]) - (PyArrayObject* array=NULL) -{ - npy_intp size[1] = { $1_dim0 }; - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,1) || !require_size(array, size, 1) || - !require_contiguous(array) || !require_native(array)) SWIG_fail; - $1 = ($1_ltype) array_data(array); -} - -/* Typemap suite for (DATA_TYPE* INPLACE_ARRAY1, DIM_TYPE DIM1) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* INPLACE_ARRAY1, DIM_TYPE DIM1) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* INPLACE_ARRAY1, DIM_TYPE DIM1) - (PyArrayObject* array=NULL, int i=1) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,1) || !require_contiguous(array) - || !require_native(array)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = 1; - for (i=0; i < array_numdims(array); ++i) $2 *= array_size(array,i); -} - -/* Typemap suite for (DIM_TYPE DIM1, DATA_TYPE* INPLACE_ARRAY1) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DATA_TYPE* INPLACE_ARRAY1) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DATA_TYPE* INPLACE_ARRAY1) - (PyArrayObject* array=NULL, int i=0) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,1) || !require_contiguous(array) - || !require_native(array)) SWIG_fail; - $1 = 1; - for (i=0; i < array_numdims(array); ++i) $1 *= array_size(array,i); - $2 = (DATA_TYPE*) array_data(array); -} - -/* Typemap suite for (DATA_TYPE INPLACE_ARRAY2[ANY][ANY]) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE INPLACE_ARRAY2[ANY][ANY]) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE INPLACE_ARRAY2[ANY][ANY]) - (PyArrayObject* array=NULL) -{ - npy_intp size[2] = { $1_dim0, $1_dim1 }; - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,2) || !require_size(array, size, 2) || - !require_contiguous(array) || !require_native(array)) SWIG_fail; - $1 = ($1_ltype) array_data(array); -} - -/* Typemap suite for (DATA_TYPE* INPLACE_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* INPLACE_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* INPLACE_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) - (PyArrayObject* array=NULL) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,2) || !require_contiguous(array) - || !require_native(array)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); - $3 = (DIM_TYPE) array_size(array,1); -} - -/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* INPLACE_ARRAY2) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* INPLACE_ARRAY2) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* INPLACE_ARRAY2) - (PyArrayObject* array=NULL) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,2) || !require_contiguous(array) || - !require_native(array)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DIM_TYPE) array_size(array,1); - $3 = (DATA_TYPE*) array_data(array); -} - -/* Typemap suite for (DATA_TYPE* INPLACE_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* INPLACE_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* INPLACE_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) - (PyArrayObject* array=NULL) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,2) || !require_contiguous(array) - || !require_native(array) || !require_fortran(array)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); - $3 = (DIM_TYPE) array_size(array,1); -} - -/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* INPLACE_FARRAY2) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* INPLACE_FARRAY2) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* INPLACE_FARRAY2) - (PyArrayObject* array=NULL) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,2) || !require_contiguous(array) || - !require_native(array) || !require_fortran(array)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DIM_TYPE) array_size(array,1); - $3 = (DATA_TYPE*) array_data(array); -} - -/* Typemap suite for (DATA_TYPE INPLACE_ARRAY3[ANY][ANY][ANY]) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE INPLACE_ARRAY3[ANY][ANY][ANY]) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE INPLACE_ARRAY3[ANY][ANY][ANY]) - (PyArrayObject* array=NULL) -{ - npy_intp size[3] = { $1_dim0, $1_dim1, $1_dim2 }; - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,3) || !require_size(array, size, 3) || - !require_contiguous(array) || !require_native(array)) SWIG_fail; - $1 = ($1_ltype) array_data(array); -} - -/* Typemap suite for (DATA_TYPE* INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, - * DIM_TYPE DIM3) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) - (PyArrayObject* array=NULL) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,3) || !require_contiguous(array) || - !require_native(array)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); - $3 = (DIM_TYPE) array_size(array,1); - $4 = (DIM_TYPE) array_size(array,2); -} - -/* Typemap suite for (DATA_TYPE** INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, - * DIM_TYPE DIM3) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE** INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) -{ - $1 = PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE** INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) - (DATA_TYPE** array=NULL, PyArrayObject** object_array=NULL) -{ - npy_intp size[2] = { -1, -1 }; - PyArrayObject* temp_array; - Py_ssize_t i; - - /* length of the list */ - $2 = PyList_Size($input); - - /* the arrays */ - array = (DATA_TYPE **)malloc($2*sizeof(DATA_TYPE *)); - object_array = (PyArrayObject **)calloc($2,sizeof(PyArrayObject *)); - - if (array == NULL || object_array == NULL) - { - SWIG_fail; - } - - for (i=0; i<$2; i++) - { - temp_array = obj_to_array_no_conversion(PySequence_GetItem($input,i), DATA_TYPECODE); - - /* the new array must be stored so that it can be destroyed in freearg */ - object_array[i] = temp_array; - - if ( !temp_array || !require_dimensions(temp_array, 2) || - !require_contiguous(temp_array) || - !require_native(temp_array) || - !PyArray_EquivTypenums(array_type(temp_array), DATA_TYPECODE) - ) SWIG_fail; - - /* store the size of the first array in the list, then use that for comparison. */ - if (i == 0) - { - size[0] = array_size(temp_array,0); - size[1] = array_size(temp_array,1); - } - - if (!require_size(temp_array, size, 2)) SWIG_fail; - - array[i] = (DATA_TYPE*) array_data(temp_array); - } - - $1 = (DATA_TYPE**) array; - $3 = (DIM_TYPE) size[0]; - $4 = (DIM_TYPE) size[1]; -} -%typemap(freearg) - (DATA_TYPE** INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) -{ - if (array$argnum!=NULL) free(array$argnum); - if (object_array$argnum!=NULL) free(object_array$argnum); -} - -/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, - * DATA_TYPE* INPLACE_ARRAY3) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* INPLACE_ARRAY3) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* INPLACE_ARRAY3) - (PyArrayObject* array=NULL) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,3) || !require_contiguous(array) - || !require_native(array)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DIM_TYPE) array_size(array,1); - $3 = (DIM_TYPE) array_size(array,2); - $4 = (DATA_TYPE*) array_data(array); -} - -/* Typemap suite for (DATA_TYPE* INPLACE_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, - * DIM_TYPE DIM3) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* INPLACE_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* INPLACE_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) - (PyArrayObject* array=NULL) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,3) || !require_contiguous(array) || - !require_native(array) || !require_fortran(array)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); - $3 = (DIM_TYPE) array_size(array,1); - $4 = (DIM_TYPE) array_size(array,2); -} - -/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, - * DATA_TYPE* INPLACE_FARRAY3) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* INPLACE_FARRAY3) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* INPLACE_FARRAY3) - (PyArrayObject* array=NULL) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,3) || !require_contiguous(array) - || !require_native(array) || !require_fortran(array)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DIM_TYPE) array_size(array,1); - $3 = (DIM_TYPE) array_size(array,2); - $4 = (DATA_TYPE*) array_data(array); -} - -/* Typemap suite for (DATA_TYPE INPLACE_ARRAY4[ANY][ANY][ANY][ANY]) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE INPLACE_ARRAY4[ANY][ANY][ANY][ANY]) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE INPLACE_ARRAY4[ANY][ANY][ANY][ANY]) - (PyArrayObject* array=NULL) -{ - npy_intp size[4] = { $1_dim0, $1_dim1, $1_dim2 , $1_dim3 }; - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,4) || !require_size(array, size, 4) || - !require_contiguous(array) || !require_native(array)) SWIG_fail; - $1 = ($1_ltype) array_data(array); -} - -/* Typemap suite for (DATA_TYPE* INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, - * DIM_TYPE DIM3, DIM_TYPE DIM4) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) - (PyArrayObject* array=NULL) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,4) || !require_contiguous(array) || - !require_native(array)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); - $3 = (DIM_TYPE) array_size(array,1); - $4 = (DIM_TYPE) array_size(array,2); - $5 = (DIM_TYPE) array_size(array,3); -} - -/* Typemap suite for (DATA_TYPE** INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, - * DIM_TYPE DIM3, DIM_TYPE DIM4) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE** INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) -{ - $1 = PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE** INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) - (DATA_TYPE** array=NULL, PyArrayObject** object_array=NULL) -{ - npy_intp size[3] = { -1, -1, -1 }; - PyArrayObject* temp_array; - Py_ssize_t i; - - /* length of the list */ - $2 = PyList_Size($input); - - /* the arrays */ - array = (DATA_TYPE **)malloc($2*sizeof(DATA_TYPE *)); - object_array = (PyArrayObject **)calloc($2,sizeof(PyArrayObject *)); - - if (array == NULL || object_array == NULL) - { - SWIG_fail; - } - - for (i=0; i<$2; i++) - { - temp_array = obj_to_array_no_conversion(PySequence_GetItem($input,i), DATA_TYPECODE); - - /* the new array must be stored so that it can be destroyed in freearg */ - object_array[i] = temp_array; - - if ( !temp_array || !require_dimensions(temp_array, 3) || - !require_contiguous(temp_array) || - !require_native(temp_array) || - !PyArray_EquivTypenums(array_type(temp_array), DATA_TYPECODE) - ) SWIG_fail; - - /* store the size of the first array in the list, then use that for comparison. */ - if (i == 0) - { - size[0] = array_size(temp_array,0); - size[1] = array_size(temp_array,1); - size[2] = array_size(temp_array,2); - } - - if (!require_size(temp_array, size, 3)) SWIG_fail; - - array[i] = (DATA_TYPE*) array_data(temp_array); - } - - $1 = (DATA_TYPE**) array; - $3 = (DIM_TYPE) size[0]; - $4 = (DIM_TYPE) size[1]; - $5 = (DIM_TYPE) size[2]; -} -%typemap(freearg) - (DATA_TYPE** INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) -{ - if (array$argnum!=NULL) free(array$argnum); - if (object_array$argnum!=NULL) free(object_array$argnum); -} - -/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, - * DATA_TYPE* INPLACE_ARRAY4) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* INPLACE_ARRAY4) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* INPLACE_ARRAY4) - (PyArrayObject* array=NULL) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,4) || !require_contiguous(array) - || !require_native(array)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DIM_TYPE) array_size(array,1); - $3 = (DIM_TYPE) array_size(array,2); - $4 = (DIM_TYPE) array_size(array,3); - $5 = (DATA_TYPE*) array_data(array); -} - -/* Typemap suite for (DATA_TYPE* INPLACE_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, - * DIM_TYPE DIM3, DIM_TYPE DIM4) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* INPLACE_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* INPLACE_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) - (PyArrayObject* array=NULL) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,4) || !require_contiguous(array) || - !require_native(array) || !require_fortran(array)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); - $3 = (DIM_TYPE) array_size(array,1); - $4 = (DIM_TYPE) array_size(array,2); - $5 = (DIM_TYPE) array_size(array,3); -} - -/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, - * DATA_TYPE* INPLACE_FARRAY4) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* INPLACE_FARRAY4) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* INPLACE_FARRAY4) - (PyArrayObject* array=NULL) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,4) || !require_contiguous(array) - || !require_native(array) || !require_fortran(array)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DIM_TYPE) array_size(array,1); - $3 = (DIM_TYPE) array_size(array,2); - $4 = (DIM_TYPE) array_size(array,3); - $5 = (DATA_TYPE*) array_data(array); -} - -/*************************/ -/* Argout Array Typemaps */ -/*************************/ - -/* Typemap suite for (DATA_TYPE ARGOUT_ARRAY1[ANY]) - */ -%typemap(in,numinputs=0, - fragment="NumPy_Backward_Compatibility,NumPy_Macros") - (DATA_TYPE ARGOUT_ARRAY1[ANY]) - (PyObject* array = NULL) -{ - npy_intp dims[1] = { $1_dim0 }; - array = PyArray_SimpleNew(1, dims, DATA_TYPECODE); - if (!array) SWIG_fail; - $1 = ($1_ltype) array_data(array); -} -%typemap(argout) - (DATA_TYPE ARGOUT_ARRAY1[ANY]) -{ - $result = SWIG_Python_AppendOutput($result,(PyObject*)array$argnum); -} - -/* Typemap suite for (DATA_TYPE* ARGOUT_ARRAY1, DIM_TYPE DIM1) - */ -%typemap(in,numinputs=1, - fragment="NumPy_Fragments") - (DATA_TYPE* ARGOUT_ARRAY1, DIM_TYPE DIM1) - (PyObject* array = NULL) -{ - npy_intp dims[1]; - if (!PyInt_Check($input)) - { - const char* typestring = pytype_string($input); - PyErr_Format(PyExc_TypeError, - "Int dimension expected. '%s' given.", - typestring); - SWIG_fail; - } - $2 = (DIM_TYPE) PyInt_AsLong($input); - dims[0] = (npy_intp) $2; - array = PyArray_SimpleNew(1, dims, DATA_TYPECODE); - if (!array) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); -} -%typemap(argout) - (DATA_TYPE* ARGOUT_ARRAY1, DIM_TYPE DIM1) -{ - $result = SWIG_Python_AppendOutput($result,(PyObject*)array$argnum); -} - -/* Typemap suite for (DIM_TYPE DIM1, DATA_TYPE* ARGOUT_ARRAY1) - */ -%typemap(in,numinputs=1, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DATA_TYPE* ARGOUT_ARRAY1) - (PyObject* array = NULL) -{ - npy_intp dims[1]; - if (!PyInt_Check($input)) - { - const char* typestring = pytype_string($input); - PyErr_Format(PyExc_TypeError, - "Int dimension expected. '%s' given.", - typestring); - SWIG_fail; - } - $1 = (DIM_TYPE) PyInt_AsLong($input); - dims[0] = (npy_intp) $1; - array = PyArray_SimpleNew(1, dims, DATA_TYPECODE); - if (!array) SWIG_fail; - $2 = (DATA_TYPE*) array_data(array); -} -%typemap(argout) - (DIM_TYPE DIM1, DATA_TYPE* ARGOUT_ARRAY1) -{ - $result = SWIG_Python_AppendOutput($result,(PyObject*)array$argnum); -} - -/* Typemap suite for (DATA_TYPE ARGOUT_ARRAY2[ANY][ANY]) - */ -%typemap(in,numinputs=0, - fragment="NumPy_Backward_Compatibility,NumPy_Macros") - (DATA_TYPE ARGOUT_ARRAY2[ANY][ANY]) - (PyObject* array = NULL) -{ - npy_intp dims[2] = { $1_dim0, $1_dim1 }; - array = PyArray_SimpleNew(2, dims, DATA_TYPECODE); - if (!array) SWIG_fail; - $1 = ($1_ltype) array_data(array); -} -%typemap(argout) - (DATA_TYPE ARGOUT_ARRAY2[ANY][ANY]) -{ - $result = SWIG_Python_AppendOutput($result,(PyObject*)array$argnum); -} - -/* Typemap suite for (DATA_TYPE ARGOUT_ARRAY3[ANY][ANY][ANY]) - */ -%typemap(in,numinputs=0, - fragment="NumPy_Backward_Compatibility,NumPy_Macros") - (DATA_TYPE ARGOUT_ARRAY3[ANY][ANY][ANY]) - (PyObject* array = NULL) -{ - npy_intp dims[3] = { $1_dim0, $1_dim1, $1_dim2 }; - array = PyArray_SimpleNew(3, dims, DATA_TYPECODE); - if (!array) SWIG_fail; - $1 = ($1_ltype) array_data(array); -} -%typemap(argout) - (DATA_TYPE ARGOUT_ARRAY3[ANY][ANY][ANY]) -{ - $result = SWIG_Python_AppendOutput($result,(PyObject*)array$argnum); -} - -/* Typemap suite for (DATA_TYPE ARGOUT_ARRAY4[ANY][ANY][ANY][ANY]) - */ -%typemap(in,numinputs=0, - fragment="NumPy_Backward_Compatibility,NumPy_Macros") - (DATA_TYPE ARGOUT_ARRAY4[ANY][ANY][ANY][ANY]) - (PyObject* array = NULL) -{ - npy_intp dims[4] = { $1_dim0, $1_dim1, $1_dim2, $1_dim3 }; - array = PyArray_SimpleNew(4, dims, DATA_TYPECODE); - if (!array) SWIG_fail; - $1 = ($1_ltype) array_data(array); -} -%typemap(argout) - (DATA_TYPE ARGOUT_ARRAY4[ANY][ANY][ANY][ANY]) -{ - $result = SWIG_Python_AppendOutput($result,(PyObject*)array$argnum); -} - -/*****************************/ -/* Argoutview Array Typemaps */ -/*****************************/ - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEW_ARRAY1, DIM_TYPE* DIM1) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEW_ARRAY1, DIM_TYPE* DIM1 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim_temp) -{ - $1 = &data_temp; - $2 = &dim_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DATA_TYPE** ARGOUTVIEW_ARRAY1, DIM_TYPE* DIM1) -{ - npy_intp dims[1] = { *$2 }; - PyObject* obj = PyArray_SimpleNewFromData(1, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DATA_TYPE** ARGOUTVIEW_ARRAY1) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DATA_TYPE** ARGOUTVIEW_ARRAY1) - (DIM_TYPE dim_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim_temp; - $2 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DIM_TYPE* DIM1, DATA_TYPE** ARGOUTVIEW_ARRAY1) -{ - npy_intp dims[1] = { *$1 }; - PyObject* obj = PyArray_SimpleNewFromData(1, dims, DATA_TYPECODE, (void*)(*$2)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEW_ARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEW_ARRAY2, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DATA_TYPE** ARGOUTVIEW_ARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) -{ - npy_intp dims[2] = { *$2, *$3 }; - PyObject* obj = PyArray_SimpleNewFromData(2, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEW_ARRAY2) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DATA_TYPE** ARGOUTVIEW_ARRAY2) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEW_ARRAY2) -{ - npy_intp dims[2] = { *$1, *$2 }; - PyObject* obj = PyArray_SimpleNewFromData(2, dims, DATA_TYPECODE, (void*)(*$3)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEW_FARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEW_FARRAY2, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") - (DATA_TYPE** ARGOUTVIEW_FARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) -{ - npy_intp dims[2] = { *$2, *$3 }; - PyObject* obj = PyArray_SimpleNewFromData(2, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEW_FARRAY2) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DATA_TYPE** ARGOUTVIEW_FARRAY2) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEW_FARRAY2) -{ - npy_intp dims[2] = { *$1, *$2 }; - PyObject* obj = PyArray_SimpleNewFromData(2, dims, DATA_TYPECODE, (void*)(*$3)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEW_ARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, - DIM_TYPE* DIM3) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEW_ARRAY3, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; - $4 = &dim3_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DATA_TYPE** ARGOUTVIEW_ARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) -{ - npy_intp dims[3] = { *$2, *$3, *$4 }; - PyObject* obj = PyArray_SimpleNewFromData(3, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, - DATA_TYPE** ARGOUTVIEW_ARRAY3) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEW_ARRAY3) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DATA_TYPE* data_temp = NULL) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &dim3_temp; - $4 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEW_ARRAY3) -{ - npy_intp dims[3] = { *$1, *$2, *$3 }; - PyObject* obj = PyArray_SimpleNewFromData(3, dims, DATA_TYPECODE, (void*)(*$4)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEW_FARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, - DIM_TYPE* DIM3) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEW_FARRAY3, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; - $4 = &dim3_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") - (DATA_TYPE** ARGOUTVIEW_FARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) -{ - npy_intp dims[3] = { *$2, *$3, *$4 }; - PyObject* obj = PyArray_SimpleNewFromData(3, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, - DATA_TYPE** ARGOUTVIEW_FARRAY3) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DATA_TYPE** ARGOUTVIEW_FARRAY3) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &dim3_temp; - $4 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEW_FARRAY3) -{ - npy_intp dims[3] = { *$1, *$2, *$3 }; - PyObject* obj = PyArray_SimpleNewFromData(3, dims, DATA_TYPECODE, (void*)(*$4)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEW_ARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, - DIM_TYPE* DIM3, DIM_TYPE* DIM4) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEW_ARRAY4, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; - $4 = &dim3_temp; - $5 = &dim4_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DATA_TYPE** ARGOUTVIEW_ARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) -{ - npy_intp dims[4] = { *$2, *$3, *$4 , *$5 }; - PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, - DATA_TYPE** ARGOUTVIEW_ARRAY4) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 , DATA_TYPE** ARGOUTVIEW_ARRAY4) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &dim3_temp; - $4 = &dim4_temp; - $5 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEW_ARRAY4) -{ - npy_intp dims[4] = { *$1, *$2, *$3 , *$4 }; - PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$5)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEW_FARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, - DIM_TYPE* DIM3, DIM_TYPE* DIM4) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEW_FARRAY4, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; - $4 = &dim3_temp; - $5 = &dim4_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") - (DATA_TYPE** ARGOUTVIEW_FARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) -{ - npy_intp dims[4] = { *$2, *$3, *$4 , *$5 }; - PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, - DATA_TYPE** ARGOUTVIEW_FARRAY4) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 , DATA_TYPE** ARGOUTVIEW_FARRAY4) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &dim3_temp; - $4 = &dim4_temp; - $5 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEW_FARRAY4) -{ - npy_intp dims[4] = { *$1, *$2, *$3 , *$4 }; - PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$5)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/*************************************/ -/* Managed Argoutview Array Typemaps */ -/*************************************/ - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_ARRAY1, DIM_TYPE* DIM1) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEWM_ARRAY1, DIM_TYPE* DIM1 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim_temp) -{ - $1 = &data_temp; - $2 = &dim_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Utilities") - (DATA_TYPE** ARGOUTVIEWM_ARRAY1, DIM_TYPE* DIM1) -{ - npy_intp dims[1] = { *$2 }; - PyObject* obj = PyArray_SimpleNewFromData(1, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DATA_TYPE** ARGOUTVIEWM_ARRAY1) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DATA_TYPE** ARGOUTVIEWM_ARRAY1) - (DIM_TYPE dim_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim_temp; - $2 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Utilities") - (DIM_TYPE* DIM1, DATA_TYPE** ARGOUTVIEWM_ARRAY1) -{ - npy_intp dims[1] = { *$1 }; - PyObject* obj = PyArray_SimpleNewFromData(1, dims, DATA_TYPECODE, (void*)(*$2)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_ARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEWM_ARRAY2, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Utilities") - (DATA_TYPE** ARGOUTVIEWM_ARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) -{ - npy_intp dims[2] = { *$2, *$3 }; - PyObject* obj = PyArray_SimpleNewFromData(2, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEWM_ARRAY2) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DATA_TYPE** ARGOUTVIEWM_ARRAY2) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Utilities") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEWM_ARRAY2) -{ - npy_intp dims[2] = { *$1, *$2 }; - PyObject* obj = PyArray_SimpleNewFromData(2, dims, DATA_TYPECODE, (void*)(*$3)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_FARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEWM_FARRAY2, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements,NumPy_Utilities") - (DATA_TYPE** ARGOUTVIEWM_FARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) -{ - npy_intp dims[2] = { *$2, *$3 }; - PyObject* obj = PyArray_SimpleNewFromData(2, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEWM_FARRAY2) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DATA_TYPE** ARGOUTVIEWM_FARRAY2) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements,NumPy_Utilities") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEWM_FARRAY2) -{ - npy_intp dims[2] = { *$1, *$2 }; - PyObject* obj = PyArray_SimpleNewFromData(2, dims, DATA_TYPECODE, (void*)(*$3)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_ARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, - DIM_TYPE* DIM3) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEWM_ARRAY3, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; - $4 = &dim3_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Utilities") - (DATA_TYPE** ARGOUTVIEWM_ARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) -{ - npy_intp dims[3] = { *$2, *$3, *$4 }; - PyObject* obj = PyArray_SimpleNewFromData(3, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, - DATA_TYPE** ARGOUTVIEWM_ARRAY3) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DATA_TYPE** ARGOUTVIEWM_ARRAY3) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &dim3_temp; - $4 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Utilities") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEWM_ARRAY3) -{ - npy_intp dims[3] = { *$1, *$2, *$3 }; - PyObject* obj= PyArray_SimpleNewFromData(3, dims, DATA_TYPECODE, (void*)(*$4)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_FARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, - DIM_TYPE* DIM3) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEWM_FARRAY3, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; - $4 = &dim3_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements,NumPy_Utilities") - (DATA_TYPE** ARGOUTVIEWM_FARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) -{ - npy_intp dims[3] = { *$2, *$3, *$4 }; - PyObject* obj = PyArray_SimpleNewFromData(3, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, - DATA_TYPE** ARGOUTVIEWM_FARRAY3) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DATA_TYPE** ARGOUTVIEWM_FARRAY3) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &dim3_temp; - $4 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements,NumPy_Utilities") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEWM_FARRAY3) -{ - npy_intp dims[3] = { *$1, *$2, *$3 }; - PyObject* obj = PyArray_SimpleNewFromData(3, dims, DATA_TYPECODE, (void*)(*$4)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_ARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, - DIM_TYPE* DIM3, DIM_TYPE* DIM4) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEWM_ARRAY4, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; - $4 = &dim3_temp; - $5 = &dim4_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Utilities") - (DATA_TYPE** ARGOUTVIEWM_ARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) -{ - npy_intp dims[4] = { *$2, *$3, *$4 , *$5 }; - PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, - DATA_TYPE** ARGOUTVIEWM_ARRAY4) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 , DATA_TYPE** ARGOUTVIEWM_ARRAY4) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &dim3_temp; - $4 = &dim4_temp; - $5 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Utilities") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEWM_ARRAY4) -{ - npy_intp dims[4] = { *$1, *$2, *$3 , *$4 }; - PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$5)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_FARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, - DIM_TYPE* DIM3, DIM_TYPE* DIM4) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEWM_FARRAY4, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; - $4 = &dim3_temp; - $5 = &dim4_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements,NumPy_Utilities") - (DATA_TYPE** ARGOUTVIEWM_FARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) -{ - npy_intp dims[4] = { *$2, *$3, *$4 , *$5 }; - PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, - DATA_TYPE** ARGOUTVIEWM_FARRAY4) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 , DATA_TYPE** ARGOUTVIEWM_FARRAY4) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &dim3_temp; - $4 = &dim4_temp; - $5 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements,NumPy_Utilities") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEWM_FARRAY4) -{ - npy_intp dims[4] = { *$1, *$2, *$3 , *$4 }; - PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$5)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_ARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, - DIM_TYPE* DIM3, DIM_TYPE* DIM4) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEWM_ARRAY4, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; - $4 = &dim3_temp; - $5 = &dim4_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Utilities") - (DATA_TYPE** ARGOUTVIEWM_ARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) -{ - npy_intp dims[4] = { *$2, *$3, *$4 , *$5 }; - PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, - DATA_TYPE** ARGOUTVIEWM_ARRAY4) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 , DATA_TYPE** ARGOUTVIEWM_ARRAY4) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &dim3_temp; - $4 = &dim4_temp; - $5 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Utilities") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEWM_ARRAY4) -{ - npy_intp dims[4] = { *$1, *$2, *$3 , *$4 }; - PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$5)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_FARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, - DIM_TYPE* DIM3, DIM_TYPE* DIM4) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEWM_FARRAY4, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; - $4 = &dim3_temp; - $5 = &dim4_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements,NumPy_Utilities") - (DATA_TYPE** ARGOUTVIEWM_FARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) -{ - npy_intp dims[4] = { *$2, *$3, *$4 , *$5 }; - PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, - DATA_TYPE** ARGOUTVIEWM_FARRAY4) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 , DATA_TYPE** ARGOUTVIEWM_FARRAY4) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &dim3_temp; - $4 = &dim4_temp; - $5 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements,NumPy_Utilities") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEWM_FARRAY4) -{ - npy_intp dims[4] = { *$1, *$2, *$3 , *$4 }; - PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$5)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/**************************************/ -/* In-Place Array Typemap - flattened */ -/**************************************/ - -/* Typemap suite for (DATA_TYPE* INPLACE_ARRAY_FLAT, DIM_TYPE DIM_FLAT) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* INPLACE_ARRAY_FLAT, DIM_TYPE DIM_FLAT) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* INPLACE_ARRAY_FLAT, DIM_TYPE DIM_FLAT) - (PyArrayObject* array=NULL, int i=1) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_c_or_f_contiguous(array) - || !require_native(array)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = 1; - for (i=0; i < array_numdims(array); ++i) $2 *= array_size(array,i); -} - -%enddef /* %numpy_typemaps() macro */ -/* *************************************************************** */ - -/* Concrete instances of the %numpy_typemaps() macro: Each invocation - * below applies all of the typemaps above to the specified data type. - */ -%numpy_typemaps(signed char , NPY_BYTE , int) -%numpy_typemaps(unsigned char , NPY_UBYTE , int) -%numpy_typemaps(short , NPY_SHORT , int) -%numpy_typemaps(unsigned short , NPY_USHORT , int) -%numpy_typemaps(int , NPY_INT , int) -%numpy_typemaps(unsigned int , NPY_UINT , int) -%numpy_typemaps(long , NPY_LONG , int) -%numpy_typemaps(unsigned long , NPY_ULONG , int) -%numpy_typemaps(long long , NPY_LONGLONG , int) -%numpy_typemaps(unsigned long long, NPY_ULONGLONG, int) -%numpy_typemaps(float , NPY_FLOAT , int) -%numpy_typemaps(double , NPY_DOUBLE , int) -%numpy_typemaps(int8_t , NPY_INT8 , int) -%numpy_typemaps(int16_t , NPY_INT16 , int) -%numpy_typemaps(int32_t , NPY_INT32 , int) -%numpy_typemaps(int64_t , NPY_INT64 , int) -%numpy_typemaps(uint8_t , NPY_UINT8 , int) -%numpy_typemaps(uint16_t , NPY_UINT16 , int) -%numpy_typemaps(uint32_t , NPY_UINT32 , int) -%numpy_typemaps(uint64_t , NPY_UINT64 , int) - - -/* *************************************************************** - * The follow macro expansion does not work, because C++ bool is 4 - * bytes and NPY_BOOL is 1 byte - * - * %numpy_typemaps(bool, NPY_BOOL, int) - */ - -/* *************************************************************** - * On my Mac, I get the following warning for this macro expansion: - * 'swig/python detected a memory leak of type 'long double *', no destructor found.' - * - * %numpy_typemaps(long double, NPY_LONGDOUBLE, int) - */ - -#ifdef __cplusplus - -%include - -%numpy_typemaps(std::complex, NPY_CFLOAT , int) -%numpy_typemaps(std::complex, NPY_CDOUBLE, int) - -#endif - -#endif /* SWIGPYTHON */ diff --git a/python3/run_tests.sh b/python3/run_tests.sh deleted file mode 100755 index d60911cf7..000000000 --- a/python3/run_tests.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -input=$1 - -./test_general.py $input -./test_index.py $input -./test_keysiterator.py $input -./test_iterator.py $input diff --git a/python3/setup.py.in b/python3/setup.py.in deleted file mode 100644 index 57dc65460..000000000 --- a/python3/setup.py.in +++ /dev/null @@ -1,77 +0,0 @@ -#!/usr/bin/env python - -from distutils.core import setup, Extension -import os -import sys - -import numpy -# Obtain the numpy include directory. This logic works across numpy versions. -try: - numpy_include = numpy.get_include() -except AttributeError: - numpy_include = numpy.get_numpy_include() - -# See ECC-644 -extra_compile_args = [] -cmake_c_compiler_id='@CMAKE_C_COMPILER_ID@' -if cmake_c_compiler_id == 'PGI': - extra_compile_args.append('-noswitcherror') - -attdict = dict(sources=['@CMAKE_CURRENT_SOURCE_DIR@/swig_wrap_numpy.c', - '@CMAKE_CURRENT_SOURCE_DIR@/grib_interface.c'], - swig_opts=[], - include_dirs=['.', '@CMAKE_CURRENT_BINARY_DIR@/../src', - '@CMAKE_CURRENT_SOURCE_DIR@/../src', - numpy_include], - library_dirs=['@CMAKE_BINARY_DIR@/lib'], - runtime_library_dirs=[], - libraries=['eccodes'], - extra_compile_args=extra_compile_args, - extra_objects=[]) - -shared_libs='@BUILD_SHARED_LIBS@' -if shared_libs == 'OFF': - - add_attribute = lambda **args: [list.append(attdict[key], value) - for key, value in args.items()] - - if @HAVE_LIBJASPER@: - jasper_dir = '@JASPER_DIR@' - if jasper_dir and jasper_dir != 'system': - add_attribute(library_dirs=os.path.join(jasper_dir, 'lib'), - runtime_library_dirs=os.path.join(jasper_dir, 'lib')) - add_attribute(libraries='jasper') - - if @HAVE_LIBOPENJPEG@: - openjpeg_lib_dir = '@OPENJPEG_LIB_DIR@' - openjpeg_libname = '@OJ_WITHOUT_LIB@' - if openjpeg_lib_dir: - add_attribute(library_dirs=openjpeg_lib_dir, - runtime_library_dirs=openjpeg_lib_dir) - add_attribute(libraries=openjpeg_libname) - - # assumes png is supplied by system paths -- may not be true - if @HAVE_LIBPNG@: - add_attribute(libraries='png') - - if @HAVE_MEMFS@: - add_attribute(libraries='eccodes_memfs') - - if @HAVE_AEC@: - aec_dir = '@AEC_DIR@' - if aec_dir and aec_dir != 'system': - add_attribute(library_dirs=os.path.join(aec_dir, 'lib'), - runtime_library_dirs=os.path.join(aec_dir, 'lib')) - add_attribute(libraries='aec') - - -setup(name='eccodes', - version='@ECCODES_VERSION_STR@', - author='ECMWF', - author_email='Software.Support@ecmwf.int', - description="""Python 3 interface for ecCodes""", - license='Apache License, Version 2.0', - url='https://confluence.ecmwf.int/display/ECC/ecCodes+Home', - download_url='https://confluence.ecmwf.int/display/ECC/Releases', - ext_modules=[Extension('gribapi._gribapi_swig', **attdict)], - packages=['eccodes', 'eccodes.high_level', 'gribapi']) diff --git a/python3/swig_wrap_numpy.c b/python3/swig_wrap_numpy.c deleted file mode 100644 index a5d31f6e5..000000000 --- a/python3/swig_wrap_numpy.c +++ /dev/null @@ -1,10635 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 3.0.12 - * - * This file is not intended to be easily readable and contains a number of - * coding conventions designed to improve portability and efficiency. Do not make - * changes to this file unless you know what you are doing--modify the SWIG - * interface file instead. - * ----------------------------------------------------------------------------- */ - - -#ifndef SWIGPYTHON -#define SWIGPYTHON -#endif - -#define SWIG_PYTHON_DIRECTOR_NO_VTABLE - -/* ----------------------------------------------------------------------------- - * This section contains generic SWIG labels for method/variable - * declarations/attributes, and other compiler dependent labels. - * ----------------------------------------------------------------------------- */ - -/* template workaround for compilers that cannot correctly implement the C++ standard */ -#ifndef SWIGTEMPLATEDISAMBIGUATOR -# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) -# define SWIGTEMPLATEDISAMBIGUATOR template -# elif defined(__HP_aCC) -/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ -/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ -# define SWIGTEMPLATEDISAMBIGUATOR template -# else -# define SWIGTEMPLATEDISAMBIGUATOR -# endif -#endif - -/* inline attribute */ -#ifndef SWIGINLINE -# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) -# define SWIGINLINE inline -# else -# define SWIGINLINE -# endif -#endif - -/* attribute recognised by some compilers to avoid 'unused' warnings */ -#ifndef SWIGUNUSED -# if defined(__GNUC__) -# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) -# define SWIGUNUSED __attribute__ ((__unused__)) -# else -# define SWIGUNUSED -# endif -# elif defined(__ICC) -# define SWIGUNUSED __attribute__ ((__unused__)) -# else -# define SWIGUNUSED -# endif -#endif - -#ifndef SWIG_MSC_UNSUPPRESS_4505 -# if defined(_MSC_VER) -# pragma warning(disable : 4505) /* unreferenced local function has been removed */ -# endif -#endif - -#ifndef SWIGUNUSEDPARM -# ifdef __cplusplus -# define SWIGUNUSEDPARM(p) -# else -# define SWIGUNUSEDPARM(p) p SWIGUNUSED -# endif -#endif - -/* internal SWIG method */ -#ifndef SWIGINTERN -# define SWIGINTERN static SWIGUNUSED -#endif - -/* internal inline SWIG method */ -#ifndef SWIGINTERNINLINE -# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE -#endif - -/* exporting methods */ -#if defined(__GNUC__) -# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) -# ifndef GCC_HASCLASSVISIBILITY -# define GCC_HASCLASSVISIBILITY -# endif -# endif -#endif - -#ifndef SWIGEXPORT -# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) -# if defined(STATIC_LINKED) -# define SWIGEXPORT -# else -# define SWIGEXPORT __declspec(dllexport) -# endif -# else -# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) -# define SWIGEXPORT __attribute__ ((visibility("default"))) -# else -# define SWIGEXPORT -# endif -# endif -#endif - -/* calling conventions for Windows */ -#ifndef SWIGSTDCALL -# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) -# define SWIGSTDCALL __stdcall -# else -# define SWIGSTDCALL -# endif -#endif - -/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ -#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) -# define _CRT_SECURE_NO_DEPRECATE -#endif - -/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ -#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) -# define _SCL_SECURE_NO_DEPRECATE -#endif - -/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ -#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) -# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 -#endif - -/* Intel's compiler complains if a variable which was never initialised is - * cast to void, which is a common idiom which we use to indicate that we - * are aware a variable isn't used. So we just silence that warning. - * See: https://github.com/swig/swig/issues/192 for more discussion. - */ -#ifdef __INTEL_COMPILER -# pragma warning disable 592 -#endif - - -#if defined(_DEBUG) && defined(SWIG_PYTHON_INTERPRETER_NO_DEBUG) -/* Use debug wrappers with the Python release dll */ -# undef _DEBUG -# include -# define _DEBUG -#else -# include -#endif - -/* ----------------------------------------------------------------------------- - * swigrun.swg - * - * This file contains generic C API SWIG runtime support for pointer - * type checking. - * ----------------------------------------------------------------------------- */ - -/* This should only be incremented when either the layout of swig_type_info changes, - or for whatever reason, the runtime changes incompatibly */ -#define SWIG_RUNTIME_VERSION "4" - -/* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */ -#ifdef SWIG_TYPE_TABLE -# define SWIG_QUOTE_STRING(x) #x -# define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x) -# define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE) -#else -# define SWIG_TYPE_TABLE_NAME -#endif - -/* - You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for - creating a static or dynamic library from the SWIG runtime code. - In 99.9% of the cases, SWIG just needs to declare them as 'static'. - - But only do this if strictly necessary, ie, if you have problems - with your compiler or suchlike. -*/ - -#ifndef SWIGRUNTIME -# define SWIGRUNTIME SWIGINTERN -#endif - -#ifndef SWIGRUNTIMEINLINE -# define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE -#endif - -/* Generic buffer size */ -#ifndef SWIG_BUFFER_SIZE -# define SWIG_BUFFER_SIZE 1024 -#endif - -/* Flags for pointer conversions */ -#define SWIG_POINTER_DISOWN 0x1 -#define SWIG_CAST_NEW_MEMORY 0x2 - -/* Flags for new pointer objects */ -#define SWIG_POINTER_OWN 0x1 - - -/* - Flags/methods for returning states. - - The SWIG conversion methods, as ConvertPtr, return an integer - that tells if the conversion was successful or not. And if not, - an error code can be returned (see swigerrors.swg for the codes). - - Use the following macros/flags to set or process the returning - states. - - In old versions of SWIG, code such as the following was usually written: - - if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) { - // success code - } else { - //fail code - } - - Now you can be more explicit: - - int res = SWIG_ConvertPtr(obj,vptr,ty.flags); - if (SWIG_IsOK(res)) { - // success code - } else { - // fail code - } - - which is the same really, but now you can also do - - Type *ptr; - int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags); - if (SWIG_IsOK(res)) { - // success code - if (SWIG_IsNewObj(res) { - ... - delete *ptr; - } else { - ... - } - } else { - // fail code - } - - I.e., now SWIG_ConvertPtr can return new objects and you can - identify the case and take care of the deallocation. Of course that - also requires SWIG_ConvertPtr to return new result values, such as - - int SWIG_ConvertPtr(obj, ptr,...) { - if () { - if () { - *ptr = ; - return SWIG_NEWOBJ; - } else { - *ptr = ; - return SWIG_OLDOBJ; - } - } else { - return SWIG_BADOBJ; - } - } - - Of course, returning the plain '0(success)/-1(fail)' still works, but you can be - more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the - SWIG errors code. - - Finally, if the SWIG_CASTRANK_MODE is enabled, the result code - allows to return the 'cast rank', for example, if you have this - - int food(double) - int fooi(int); - - and you call - - food(1) // cast rank '1' (1 -> 1.0) - fooi(1) // cast rank '0' - - just use the SWIG_AddCast()/SWIG_CheckState() -*/ - -#define SWIG_OK (0) -#define SWIG_ERROR (-1) -#define SWIG_IsOK(r) (r >= 0) -#define SWIG_ArgError(r) ((r != SWIG_ERROR) ? r : SWIG_TypeError) - -/* The CastRankLimit says how many bits are used for the cast rank */ -#define SWIG_CASTRANKLIMIT (1 << 8) -/* The NewMask denotes the object was created (using new/malloc) */ -#define SWIG_NEWOBJMASK (SWIG_CASTRANKLIMIT << 1) -/* The TmpMask is for in/out typemaps that use temporal objects */ -#define SWIG_TMPOBJMASK (SWIG_NEWOBJMASK << 1) -/* Simple returning values */ -#define SWIG_BADOBJ (SWIG_ERROR) -#define SWIG_OLDOBJ (SWIG_OK) -#define SWIG_NEWOBJ (SWIG_OK | SWIG_NEWOBJMASK) -#define SWIG_TMPOBJ (SWIG_OK | SWIG_TMPOBJMASK) -/* Check, add and del mask methods */ -#define SWIG_AddNewMask(r) (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r) -#define SWIG_DelNewMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r) -#define SWIG_IsNewObj(r) (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK)) -#define SWIG_AddTmpMask(r) (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r) -#define SWIG_DelTmpMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r) -#define SWIG_IsTmpObj(r) (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK)) - -/* Cast-Rank Mode */ -#if defined(SWIG_CASTRANK_MODE) -# ifndef SWIG_TypeRank -# define SWIG_TypeRank unsigned long -# endif -# ifndef SWIG_MAXCASTRANK /* Default cast allowed */ -# define SWIG_MAXCASTRANK (2) -# endif -# define SWIG_CASTRANKMASK ((SWIG_CASTRANKLIMIT) -1) -# define SWIG_CastRank(r) (r & SWIG_CASTRANKMASK) -SWIGINTERNINLINE int SWIG_AddCast(int r) { - return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r; -} -SWIGINTERNINLINE int SWIG_CheckState(int r) { - return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0; -} -#else /* no cast-rank mode */ -# define SWIG_AddCast(r) (r) -# define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0) -#endif - - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef void *(*swig_converter_func)(void *, int *); -typedef struct swig_type_info *(*swig_dycast_func)(void **); - -/* Structure to store information on one type */ -typedef struct swig_type_info { - const char *name; /* mangled name of this type */ - const char *str; /* human readable name of this type */ - swig_dycast_func dcast; /* dynamic cast function down a hierarchy */ - struct swig_cast_info *cast; /* linked list of types that can cast into this type */ - void *clientdata; /* language specific type data */ - int owndata; /* flag if the structure owns the clientdata */ -} swig_type_info; - -/* Structure to store a type and conversion function used for casting */ -typedef struct swig_cast_info { - swig_type_info *type; /* pointer to type that is equivalent to this type */ - swig_converter_func converter; /* function to cast the void pointers */ - struct swig_cast_info *next; /* pointer to next cast in linked list */ - struct swig_cast_info *prev; /* pointer to the previous cast */ -} swig_cast_info; - -/* Structure used to store module information - * Each module generates one structure like this, and the runtime collects - * all of these structures and stores them in a circularly linked list.*/ -typedef struct swig_module_info { - swig_type_info **types; /* Array of pointers to swig_type_info structures that are in this module */ - size_t size; /* Number of types in this module */ - struct swig_module_info *next; /* Pointer to next element in circularly linked list */ - swig_type_info **type_initial; /* Array of initially generated type structures */ - swig_cast_info **cast_initial; /* Array of initially generated casting structures */ - void *clientdata; /* Language specific module data */ -} swig_module_info; - -/* - Compare two type names skipping the space characters, therefore - "char*" == "char *" and "Class" == "Class", etc. - - Return 0 when the two name types are equivalent, as in - strncmp, but skipping ' '. -*/ -SWIGRUNTIME int -SWIG_TypeNameComp(const char *f1, const char *l1, - const char *f2, const char *l2) { - for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) { - while ((*f1 == ' ') && (f1 != l1)) ++f1; - while ((*f2 == ' ') && (f2 != l2)) ++f2; - if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1; - } - return (int)((l1 - f1) - (l2 - f2)); -} - -/* - Check type equivalence in a name list like ||... - Return 0 if equal, -1 if nb < tb, 1 if nb > tb -*/ -SWIGRUNTIME int -SWIG_TypeCmp(const char *nb, const char *tb) { - int equiv = 1; - const char* te = tb + strlen(tb); - const char* ne = nb; - while (equiv != 0 && *ne) { - for (nb = ne; *ne; ++ne) { - if (*ne == '|') break; - } - equiv = SWIG_TypeNameComp(nb, ne, tb, te); - if (*ne) ++ne; - } - return equiv; -} - -/* - Check type equivalence in a name list like ||... - Return 0 if not equal, 1 if equal -*/ -SWIGRUNTIME int -SWIG_TypeEquiv(const char *nb, const char *tb) { - return SWIG_TypeCmp(nb, tb) == 0 ? 1 : 0; -} - -/* - Check the typename -*/ -SWIGRUNTIME swig_cast_info * -SWIG_TypeCheck(const char *c, swig_type_info *ty) { - if (ty) { - swig_cast_info *iter = ty->cast; - while (iter) { - if (strcmp(iter->type->name, c) == 0) { - if (iter == ty->cast) - return iter; - /* Move iter to the top of the linked list */ - iter->prev->next = iter->next; - if (iter->next) - iter->next->prev = iter->prev; - iter->next = ty->cast; - iter->prev = 0; - if (ty->cast) ty->cast->prev = iter; - ty->cast = iter; - return iter; - } - iter = iter->next; - } - } - return 0; -} - -/* - Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison -*/ -SWIGRUNTIME swig_cast_info * -SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) { - if (ty) { - swig_cast_info *iter = ty->cast; - while (iter) { - if (iter->type == from) { - if (iter == ty->cast) - return iter; - /* Move iter to the top of the linked list */ - iter->prev->next = iter->next; - if (iter->next) - iter->next->prev = iter->prev; - iter->next = ty->cast; - iter->prev = 0; - if (ty->cast) ty->cast->prev = iter; - ty->cast = iter; - return iter; - } - iter = iter->next; - } - } - return 0; -} - -/* - Cast a pointer up an inheritance hierarchy -*/ -SWIGRUNTIMEINLINE void * -SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) { - return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory); -} - -/* - Dynamic pointer casting. Down an inheritance hierarchy -*/ -SWIGRUNTIME swig_type_info * -SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) { - swig_type_info *lastty = ty; - if (!ty || !ty->dcast) return ty; - while (ty && (ty->dcast)) { - ty = (*ty->dcast)(ptr); - if (ty) lastty = ty; - } - return lastty; -} - -/* - Return the name associated with this type -*/ -SWIGRUNTIMEINLINE const char * -SWIG_TypeName(const swig_type_info *ty) { - return ty->name; -} - -/* - Return the pretty name associated with this type, - that is an unmangled type name in a form presentable to the user. -*/ -SWIGRUNTIME const char * -SWIG_TypePrettyName(const swig_type_info *type) { - /* The "str" field contains the equivalent pretty names of the - type, separated by vertical-bar characters. We choose - to print the last name, as it is often (?) the most - specific. */ - if (!type) return NULL; - if (type->str != NULL) { - const char *last_name = type->str; - const char *s; - for (s = type->str; *s; s++) - if (*s == '|') last_name = s+1; - return last_name; - } - else - return type->name; -} - -/* - Set the clientdata field for a type -*/ -SWIGRUNTIME void -SWIG_TypeClientData(swig_type_info *ti, void *clientdata) { - swig_cast_info *cast = ti->cast; - /* if (ti->clientdata == clientdata) return; */ - ti->clientdata = clientdata; - - while (cast) { - if (!cast->converter) { - swig_type_info *tc = cast->type; - if (!tc->clientdata) { - SWIG_TypeClientData(tc, clientdata); - } - } - cast = cast->next; - } -} -SWIGRUNTIME void -SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) { - SWIG_TypeClientData(ti, clientdata); - ti->owndata = 1; -} - -/* - Search for a swig_type_info structure only by mangled name - Search is a O(log #types) - - We start searching at module start, and finish searching when start == end. - Note: if start == end at the beginning of the function, we go all the way around - the circular list. -*/ -SWIGRUNTIME swig_type_info * -SWIG_MangledTypeQueryModule(swig_module_info *start, - swig_module_info *end, - const char *name) { - swig_module_info *iter = start; - do { - if (iter->size) { - size_t l = 0; - size_t r = iter->size - 1; - do { - /* since l+r >= 0, we can (>> 1) instead (/ 2) */ - size_t i = (l + r) >> 1; - const char *iname = iter->types[i]->name; - if (iname) { - int compare = strcmp(name, iname); - if (compare == 0) { - return iter->types[i]; - } else if (compare < 0) { - if (i) { - r = i - 1; - } else { - break; - } - } else if (compare > 0) { - l = i + 1; - } - } else { - break; /* should never happen */ - } - } while (l <= r); - } - iter = iter->next; - } while (iter != end); - return 0; -} - -/* - Search for a swig_type_info structure for either a mangled name or a human readable name. - It first searches the mangled names of the types, which is a O(log #types) - If a type is not found it then searches the human readable names, which is O(#types). - - We start searching at module start, and finish searching when start == end. - Note: if start == end at the beginning of the function, we go all the way around - the circular list. -*/ -SWIGRUNTIME swig_type_info * -SWIG_TypeQueryModule(swig_module_info *start, - swig_module_info *end, - const char *name) { - /* STEP 1: Search the name field using binary search */ - swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name); - if (ret) { - return ret; - } else { - /* STEP 2: If the type hasn't been found, do a complete search - of the str field (the human readable name) */ - swig_module_info *iter = start; - do { - size_t i = 0; - for (; i < iter->size; ++i) { - if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name))) - return iter->types[i]; - } - iter = iter->next; - } while (iter != end); - } - - /* neither found a match */ - return 0; -} - -/* - Pack binary data into a string -*/ -SWIGRUNTIME char * -SWIG_PackData(char *c, void *ptr, size_t sz) { - static const char hex[17] = "0123456789abcdef"; - const unsigned char *u = (unsigned char *) ptr; - const unsigned char *eu = u + sz; - for (; u != eu; ++u) { - unsigned char uu = *u; - *(c++) = hex[(uu & 0xf0) >> 4]; - *(c++) = hex[uu & 0xf]; - } - return c; -} - -/* - Unpack binary data from a string -*/ -SWIGRUNTIME const char * -SWIG_UnpackData(const char *c, void *ptr, size_t sz) { - unsigned char *u = (unsigned char *) ptr; - const unsigned char *eu = u + sz; - for (; u != eu; ++u) { - char d = *(c++); - unsigned char uu; - if ((d >= '0') && (d <= '9')) - uu = (unsigned char)((d - '0') << 4); - else if ((d >= 'a') && (d <= 'f')) - uu = (unsigned char)((d - ('a'-10)) << 4); - else - return (char *) 0; - d = *(c++); - if ((d >= '0') && (d <= '9')) - uu |= (unsigned char)(d - '0'); - else if ((d >= 'a') && (d <= 'f')) - uu |= (unsigned char)(d - ('a'-10)); - else - return (char *) 0; - *u = uu; - } - return c; -} - -/* - Pack 'void *' into a string buffer. -*/ -SWIGRUNTIME char * -SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) { - char *r = buff; - if ((2*sizeof(void *) + 2) > bsz) return 0; - *(r++) = '_'; - r = SWIG_PackData(r,&ptr,sizeof(void *)); - if (strlen(name) + 1 > (bsz - (r - buff))) return 0; - strcpy(r,name); - return buff; -} - -SWIGRUNTIME const char * -SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) { - if (*c != '_') { - if (strcmp(c,"NULL") == 0) { - *ptr = (void *) 0; - return name; - } else { - return 0; - } - } - return SWIG_UnpackData(++c,ptr,sizeof(void *)); -} - -SWIGRUNTIME char * -SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) { - char *r = buff; - size_t lname = (name ? strlen(name) : 0); - if ((2*sz + 2 + lname) > bsz) return 0; - *(r++) = '_'; - r = SWIG_PackData(r,ptr,sz); - if (lname) { - strncpy(r,name,lname+1); - } else { - *r = 0; - } - return buff; -} - -SWIGRUNTIME const char * -SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) { - if (*c != '_') { - if (strcmp(c,"NULL") == 0) { - memset(ptr,0,sz); - return name; - } else { - return 0; - } - } - return SWIG_UnpackData(++c,ptr,sz); -} - -#ifdef __cplusplus -} -#endif - -/* Errors in SWIG */ -#define SWIG_UnknownError -1 -#define SWIG_IOError -2 -#define SWIG_RuntimeError -3 -#define SWIG_IndexError -4 -#define SWIG_TypeError -5 -#define SWIG_DivisionByZero -6 -#define SWIG_OverflowError -7 -#define SWIG_SyntaxError -8 -#define SWIG_ValueError -9 -#define SWIG_SystemError -10 -#define SWIG_AttributeError -11 -#define SWIG_MemoryError -12 -#define SWIG_NullReferenceError -13 - - - -/* Compatibility macros for Python 3 */ -#if PY_VERSION_HEX >= 0x03000000 - -#define PyClass_Check(obj) PyObject_IsInstance(obj, (PyObject *)&PyType_Type) -#define PyInt_Check(x) PyLong_Check(x) -#define PyInt_AsLong(x) PyLong_AsLong(x) -#define PyInt_FromLong(x) PyLong_FromLong(x) -#define PyInt_FromSize_t(x) PyLong_FromSize_t(x) -#define PyString_Check(name) PyBytes_Check(name) -#define PyString_FromString(x) PyUnicode_FromString(x) -#define PyString_Format(fmt, args) PyUnicode_Format(fmt, args) -#define PyString_AsString(str) PyBytes_AsString(str) -#define PyString_Size(str) PyBytes_Size(str) -#define PyString_InternFromString(key) PyUnicode_InternFromString(key) -#define Py_TPFLAGS_HAVE_CLASS Py_TPFLAGS_BASETYPE -#define PyString_AS_STRING(x) PyUnicode_AS_STRING(x) -#define _PyLong_FromSsize_t(x) PyLong_FromSsize_t(x) - -#endif - -#ifndef Py_TYPE -# define Py_TYPE(op) ((op)->ob_type) -#endif - -/* SWIG APIs for compatibility of both Python 2 & 3 */ - -#if PY_VERSION_HEX >= 0x03000000 -# define SWIG_Python_str_FromFormat PyUnicode_FromFormat -#else -# define SWIG_Python_str_FromFormat PyString_FromFormat -#endif - - -/* Warning: This function will allocate a new string in Python 3, - * so please call SWIG_Python_str_DelForPy3(x) to free the space. - */ -SWIGINTERN char* -SWIG_Python_str_AsChar(PyObject *str) -{ -#if PY_VERSION_HEX >= 0x03000000 - char *cstr; - char *newstr; - Py_ssize_t len; - str = PyUnicode_AsUTF8String(str); - PyBytes_AsStringAndSize(str, &cstr, &len); - newstr = (char *) malloc(len+1); - memcpy(newstr, cstr, len+1); - Py_XDECREF(str); - return newstr; -#else - return PyString_AsString(str); -#endif -} - -#if PY_VERSION_HEX >= 0x03000000 -# define SWIG_Python_str_DelForPy3(x) free( (void*) (x) ) -#else -# define SWIG_Python_str_DelForPy3(x) -#endif - - -SWIGINTERN PyObject* -SWIG_Python_str_FromChar(const char *c) -{ -#if PY_VERSION_HEX >= 0x03000000 - return PyUnicode_FromString(c); -#else - return PyString_FromString(c); -#endif -} - -/* Add PyOS_snprintf for old Pythons */ -#if PY_VERSION_HEX < 0x02020000 -# if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) -# define PyOS_snprintf _snprintf -# else -# define PyOS_snprintf snprintf -# endif -#endif - -/* A crude PyString_FromFormat implementation for old Pythons */ -#if PY_VERSION_HEX < 0x02020000 - -#ifndef SWIG_PYBUFFER_SIZE -# define SWIG_PYBUFFER_SIZE 1024 -#endif - -static PyObject * -PyString_FromFormat(const char *fmt, ...) { - va_list ap; - char buf[SWIG_PYBUFFER_SIZE * 2]; - int res; - va_start(ap, fmt); - res = vsnprintf(buf, sizeof(buf), fmt, ap); - va_end(ap); - return (res < 0 || res >= (int)sizeof(buf)) ? 0 : PyString_FromString(buf); -} -#endif - -#ifndef PyObject_DEL -# define PyObject_DEL PyObject_Del -#endif - -/* A crude PyExc_StopIteration exception for old Pythons */ -#if PY_VERSION_HEX < 0x02020000 -# ifndef PyExc_StopIteration -# define PyExc_StopIteration PyExc_RuntimeError -# endif -# ifndef PyObject_GenericGetAttr -# define PyObject_GenericGetAttr 0 -# endif -#endif - -/* Py_NotImplemented is defined in 2.1 and up. */ -#if PY_VERSION_HEX < 0x02010000 -# ifndef Py_NotImplemented -# define Py_NotImplemented PyExc_RuntimeError -# endif -#endif - -/* A crude PyString_AsStringAndSize implementation for old Pythons */ -#if PY_VERSION_HEX < 0x02010000 -# ifndef PyString_AsStringAndSize -# define PyString_AsStringAndSize(obj, s, len) {*s = PyString_AsString(obj); *len = *s ? strlen(*s) : 0;} -# endif -#endif - -/* PySequence_Size for old Pythons */ -#if PY_VERSION_HEX < 0x02000000 -# ifndef PySequence_Size -# define PySequence_Size PySequence_Length -# endif -#endif - -/* PyBool_FromLong for old Pythons */ -#if PY_VERSION_HEX < 0x02030000 -static -PyObject *PyBool_FromLong(long ok) -{ - PyObject *result = ok ? Py_True : Py_False; - Py_INCREF(result); - return result; -} -#endif - -/* Py_ssize_t for old Pythons */ -/* This code is as recommended by: */ -/* http://www.python.org/dev/peps/pep-0353/#conversion-guidelines */ -#if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN) -typedef int Py_ssize_t; -# define PY_SSIZE_T_MAX INT_MAX -# define PY_SSIZE_T_MIN INT_MIN -typedef inquiry lenfunc; -typedef intargfunc ssizeargfunc; -typedef intintargfunc ssizessizeargfunc; -typedef intobjargproc ssizeobjargproc; -typedef intintobjargproc ssizessizeobjargproc; -typedef getreadbufferproc readbufferproc; -typedef getwritebufferproc writebufferproc; -typedef getsegcountproc segcountproc; -typedef getcharbufferproc charbufferproc; -static long PyNumber_AsSsize_t (PyObject *x, void *SWIGUNUSEDPARM(exc)) -{ - long result = 0; - PyObject *i = PyNumber_Int(x); - if (i) { - result = PyInt_AsLong(i); - Py_DECREF(i); - } - return result; -} -#endif - -#if PY_VERSION_HEX < 0x02050000 -#define PyInt_FromSize_t(x) PyInt_FromLong((long)x) -#endif - -#if PY_VERSION_HEX < 0x02040000 -#define Py_VISIT(op) \ - do { \ - if (op) { \ - int vret = visit((op), arg); \ - if (vret) \ - return vret; \ - } \ - } while (0) -#endif - -#if PY_VERSION_HEX < 0x02030000 -typedef struct { - PyTypeObject type; - PyNumberMethods as_number; - PyMappingMethods as_mapping; - PySequenceMethods as_sequence; - PyBufferProcs as_buffer; - PyObject *name, *slots; -} PyHeapTypeObject; -#endif - -#if PY_VERSION_HEX < 0x02030000 -typedef destructor freefunc; -#endif - -#if ((PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION > 6) || \ - (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION > 0) || \ - (PY_MAJOR_VERSION > 3)) -# define SWIGPY_USE_CAPSULE -# define SWIGPY_CAPSULE_NAME ((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION ".type_pointer_capsule" SWIG_TYPE_TABLE_NAME) -#endif - -#if PY_VERSION_HEX < 0x03020000 -#define PyDescr_TYPE(x) (((PyDescrObject *)(x))->d_type) -#define PyDescr_NAME(x) (((PyDescrObject *)(x))->d_name) -#define Py_hash_t long -#endif - -/* ----------------------------------------------------------------------------- - * error manipulation - * ----------------------------------------------------------------------------- */ - -SWIGRUNTIME PyObject* -SWIG_Python_ErrorType(int code) { - PyObject* type = 0; - switch(code) { - case SWIG_MemoryError: - type = PyExc_MemoryError; - break; - case SWIG_IOError: - type = PyExc_IOError; - break; - case SWIG_RuntimeError: - type = PyExc_RuntimeError; - break; - case SWIG_IndexError: - type = PyExc_IndexError; - break; - case SWIG_TypeError: - type = PyExc_TypeError; - break; - case SWIG_DivisionByZero: - type = PyExc_ZeroDivisionError; - break; - case SWIG_OverflowError: - type = PyExc_OverflowError; - break; - case SWIG_SyntaxError: - type = PyExc_SyntaxError; - break; - case SWIG_ValueError: - type = PyExc_ValueError; - break; - case SWIG_SystemError: - type = PyExc_SystemError; - break; - case SWIG_AttributeError: - type = PyExc_AttributeError; - break; - default: - type = PyExc_RuntimeError; - } - return type; -} - - -SWIGRUNTIME void -SWIG_Python_AddErrorMsg(const char* mesg) -{ - PyObject *type = 0; - PyObject *value = 0; - PyObject *traceback = 0; - - if (PyErr_Occurred()) PyErr_Fetch(&type, &value, &traceback); - if (value) { - char *tmp; - PyObject *old_str = PyObject_Str(value); - PyErr_Clear(); - Py_XINCREF(type); - - PyErr_Format(type, "%s %s", tmp = SWIG_Python_str_AsChar(old_str), mesg); - SWIG_Python_str_DelForPy3(tmp); - Py_DECREF(old_str); - Py_DECREF(value); - } else { - PyErr_SetString(PyExc_RuntimeError, mesg); - } -} - -#if defined(SWIG_PYTHON_NO_THREADS) -# if defined(SWIG_PYTHON_THREADS) -# undef SWIG_PYTHON_THREADS -# endif -#endif -#if defined(SWIG_PYTHON_THREADS) /* Threading support is enabled */ -# if !defined(SWIG_PYTHON_USE_GIL) && !defined(SWIG_PYTHON_NO_USE_GIL) -# if (PY_VERSION_HEX >= 0x02030000) /* For 2.3 or later, use the PyGILState calls */ -# define SWIG_PYTHON_USE_GIL -# endif -# endif -# if defined(SWIG_PYTHON_USE_GIL) /* Use PyGILState threads calls */ -# ifndef SWIG_PYTHON_INITIALIZE_THREADS -# define SWIG_PYTHON_INITIALIZE_THREADS PyEval_InitThreads() -# endif -# ifdef __cplusplus /* C++ code */ - class SWIG_Python_Thread_Block { - bool status; - PyGILState_STATE state; - public: - void end() { if (status) { PyGILState_Release(state); status = false;} } - SWIG_Python_Thread_Block() : status(true), state(PyGILState_Ensure()) {} - ~SWIG_Python_Thread_Block() { end(); } - }; - class SWIG_Python_Thread_Allow { - bool status; - PyThreadState *save; - public: - void end() { if (status) { PyEval_RestoreThread(save); status = false; }} - SWIG_Python_Thread_Allow() : status(true), save(PyEval_SaveThread()) {} - ~SWIG_Python_Thread_Allow() { end(); } - }; -# define SWIG_PYTHON_THREAD_BEGIN_BLOCK SWIG_Python_Thread_Block _swig_thread_block -# define SWIG_PYTHON_THREAD_END_BLOCK _swig_thread_block.end() -# define SWIG_PYTHON_THREAD_BEGIN_ALLOW SWIG_Python_Thread_Allow _swig_thread_allow -# define SWIG_PYTHON_THREAD_END_ALLOW _swig_thread_allow.end() -# else /* C code */ -# define SWIG_PYTHON_THREAD_BEGIN_BLOCK PyGILState_STATE _swig_thread_block = PyGILState_Ensure() -# define SWIG_PYTHON_THREAD_END_BLOCK PyGILState_Release(_swig_thread_block) -# define SWIG_PYTHON_THREAD_BEGIN_ALLOW PyThreadState *_swig_thread_allow = PyEval_SaveThread() -# define SWIG_PYTHON_THREAD_END_ALLOW PyEval_RestoreThread(_swig_thread_allow) -# endif -# else /* Old thread way, not implemented, user must provide it */ -# if !defined(SWIG_PYTHON_INITIALIZE_THREADS) -# define SWIG_PYTHON_INITIALIZE_THREADS -# endif -# if !defined(SWIG_PYTHON_THREAD_BEGIN_BLOCK) -# define SWIG_PYTHON_THREAD_BEGIN_BLOCK -# endif -# if !defined(SWIG_PYTHON_THREAD_END_BLOCK) -# define SWIG_PYTHON_THREAD_END_BLOCK -# endif -# if !defined(SWIG_PYTHON_THREAD_BEGIN_ALLOW) -# define SWIG_PYTHON_THREAD_BEGIN_ALLOW -# endif -# if !defined(SWIG_PYTHON_THREAD_END_ALLOW) -# define SWIG_PYTHON_THREAD_END_ALLOW -# endif -# endif -#else /* No thread support */ -# define SWIG_PYTHON_INITIALIZE_THREADS -# define SWIG_PYTHON_THREAD_BEGIN_BLOCK -# define SWIG_PYTHON_THREAD_END_BLOCK -# define SWIG_PYTHON_THREAD_BEGIN_ALLOW -# define SWIG_PYTHON_THREAD_END_ALLOW -#endif - -/* ----------------------------------------------------------------------------- - * Python API portion that goes into the runtime - * ----------------------------------------------------------------------------- */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* ----------------------------------------------------------------------------- - * Constant declarations - * ----------------------------------------------------------------------------- */ - -/* Constant Types */ -#define SWIG_PY_POINTER 4 -#define SWIG_PY_BINARY 5 - -/* Constant information structure */ -typedef struct swig_const_info { - int type; - char *name; - long lvalue; - double dvalue; - void *pvalue; - swig_type_info **ptype; -} swig_const_info; - - -/* ----------------------------------------------------------------------------- - * Wrapper of PyInstanceMethod_New() used in Python 3 - * It is exported to the generated module, used for -fastproxy - * ----------------------------------------------------------------------------- */ -#if PY_VERSION_HEX >= 0x03000000 -SWIGRUNTIME PyObject* SWIG_PyInstanceMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *func) -{ - return PyInstanceMethod_New(func); -} -#else -SWIGRUNTIME PyObject* SWIG_PyInstanceMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *SWIGUNUSEDPARM(func)) -{ - return NULL; -} -#endif - -#ifdef __cplusplus -} -#endif - - -/* ----------------------------------------------------------------------------- - * pyrun.swg - * - * This file contains the runtime support for Python modules - * and includes code for managing global variables and pointer - * type checking. - * - * ----------------------------------------------------------------------------- */ - -/* Common SWIG API */ - -/* for raw pointers */ -#define SWIG_Python_ConvertPtr(obj, pptr, type, flags) SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, 0) -#define SWIG_ConvertPtr(obj, pptr, type, flags) SWIG_Python_ConvertPtr(obj, pptr, type, flags) -#define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own) SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, own) - -#ifdef SWIGPYTHON_BUILTIN -#define SWIG_NewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(self, ptr, type, flags) -#else -#define SWIG_NewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(NULL, ptr, type, flags) -#endif - -#define SWIG_InternalNewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(NULL, ptr, type, flags) - -#define SWIG_CheckImplicit(ty) SWIG_Python_CheckImplicit(ty) -#define SWIG_AcquirePtr(ptr, src) SWIG_Python_AcquirePtr(ptr, src) -#define swig_owntype int - -/* for raw packed data */ -#define SWIG_ConvertPacked(obj, ptr, sz, ty) SWIG_Python_ConvertPacked(obj, ptr, sz, ty) -#define SWIG_NewPackedObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type) - -/* for class or struct pointers */ -#define SWIG_ConvertInstance(obj, pptr, type, flags) SWIG_ConvertPtr(obj, pptr, type, flags) -#define SWIG_NewInstanceObj(ptr, type, flags) SWIG_NewPointerObj(ptr, type, flags) - -/* for C or C++ function pointers */ -#define SWIG_ConvertFunctionPtr(obj, pptr, type) SWIG_Python_ConvertFunctionPtr(obj, pptr, type) -#define SWIG_NewFunctionPtrObj(ptr, type) SWIG_Python_NewPointerObj(NULL, ptr, type, 0) - -/* for C++ member pointers, ie, member methods */ -#define SWIG_ConvertMember(obj, ptr, sz, ty) SWIG_Python_ConvertPacked(obj, ptr, sz, ty) -#define SWIG_NewMemberObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type) - - -/* Runtime API */ - -#define SWIG_GetModule(clientdata) SWIG_Python_GetModule(clientdata) -#define SWIG_SetModule(clientdata, pointer) SWIG_Python_SetModule(pointer) -#define SWIG_NewClientData(obj) SwigPyClientData_New(obj) - -#define SWIG_SetErrorObj SWIG_Python_SetErrorObj -#define SWIG_SetErrorMsg SWIG_Python_SetErrorMsg -#define SWIG_ErrorType(code) SWIG_Python_ErrorType(code) -#define SWIG_Error(code, msg) SWIG_Python_SetErrorMsg(SWIG_ErrorType(code), msg) -#define SWIG_fail goto fail - - -/* Runtime API implementation */ - -/* Error manipulation */ - -SWIGINTERN void -SWIG_Python_SetErrorObj(PyObject *errtype, PyObject *obj) { - SWIG_PYTHON_THREAD_BEGIN_BLOCK; - PyErr_SetObject(errtype, obj); - Py_DECREF(obj); - SWIG_PYTHON_THREAD_END_BLOCK; -} - -SWIGINTERN void -SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg) { - SWIG_PYTHON_THREAD_BEGIN_BLOCK; - PyErr_SetString(errtype, msg); - SWIG_PYTHON_THREAD_END_BLOCK; -} - -#define SWIG_Python_Raise(obj, type, desc) SWIG_Python_SetErrorObj(SWIG_Python_ExceptionType(desc), obj) - -/* Set a constant value */ - -#if defined(SWIGPYTHON_BUILTIN) - -SWIGINTERN void -SwigPyBuiltin_AddPublicSymbol(PyObject *seq, const char *key) { - PyObject *s = PyString_InternFromString(key); - PyList_Append(seq, s); - Py_DECREF(s); -} - -SWIGINTERN void -SWIG_Python_SetConstant(PyObject *d, PyObject *public_interface, const char *name, PyObject *obj) { -#if PY_VERSION_HEX < 0x02030000 - PyDict_SetItemString(d, (char *)name, obj); -#else - PyDict_SetItemString(d, name, obj); -#endif - Py_DECREF(obj); - if (public_interface) - SwigPyBuiltin_AddPublicSymbol(public_interface, name); -} - -#else - -SWIGINTERN void -SWIG_Python_SetConstant(PyObject *d, const char *name, PyObject *obj) { -#if PY_VERSION_HEX < 0x02030000 - PyDict_SetItemString(d, (char *)name, obj); -#else - PyDict_SetItemString(d, name, obj); -#endif - Py_DECREF(obj); -} - -#endif - -/* Append a value to the result obj */ - -SWIGINTERN PyObject* -SWIG_Python_AppendOutput(PyObject* result, PyObject* obj) { -#if !defined(SWIG_PYTHON_OUTPUT_TUPLE) - if (!result) { - result = obj; - } else if (result == Py_None) { - Py_DECREF(result); - result = obj; - } else { - if (!PyList_Check(result)) { - PyObject *o2 = result; - result = PyList_New(1); - PyList_SetItem(result, 0, o2); - } - PyList_Append(result,obj); - Py_DECREF(obj); - } - return result; -#else - PyObject* o2; - PyObject* o3; - if (!result) { - result = obj; - } else if (result == Py_None) { - Py_DECREF(result); - result = obj; - } else { - if (!PyTuple_Check(result)) { - o2 = result; - result = PyTuple_New(1); - PyTuple_SET_ITEM(result, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SET_ITEM(o3, 0, obj); - o2 = result; - result = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return result; -#endif -} - -/* Unpack the argument tuple */ - -SWIGINTERN Py_ssize_t -SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs) -{ - if (!args) { - if (!min && !max) { - return 1; - } else { - PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got none", - name, (min == max ? "" : "at least "), (int)min); - return 0; - } - } - if (!PyTuple_Check(args)) { - if (min <= 1 && max >= 1) { - Py_ssize_t i; - objs[0] = args; - for (i = 1; i < max; ++i) { - objs[i] = 0; - } - return 2; - } - PyErr_SetString(PyExc_SystemError, "UnpackTuple() argument list is not a tuple"); - return 0; - } else { - Py_ssize_t l = PyTuple_GET_SIZE(args); - if (l < min) { - PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", - name, (min == max ? "" : "at least "), (int)min, (int)l); - return 0; - } else if (l > max) { - PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", - name, (min == max ? "" : "at most "), (int)max, (int)l); - return 0; - } else { - Py_ssize_t i; - for (i = 0; i < l; ++i) { - objs[i] = PyTuple_GET_ITEM(args, i); - } - for (; l < max; ++l) { - objs[l] = 0; - } - return i + 1; - } - } -} - -/* A functor is a function object with one single object argument */ -#if PY_VERSION_HEX >= 0x02020000 -#define SWIG_Python_CallFunctor(functor, obj) PyObject_CallFunctionObjArgs(functor, obj, NULL); -#else -#define SWIG_Python_CallFunctor(functor, obj) PyObject_CallFunction(functor, "O", obj); -#endif - -/* - Helper for static pointer initialization for both C and C++ code, for example - static PyObject *SWIG_STATIC_POINTER(MyVar) = NewSomething(...); -*/ -#ifdef __cplusplus -#define SWIG_STATIC_POINTER(var) var -#else -#define SWIG_STATIC_POINTER(var) var = 0; if (!var) var -#endif - -/* ----------------------------------------------------------------------------- - * Pointer declarations - * ----------------------------------------------------------------------------- */ - -/* Flags for new pointer objects */ -#define SWIG_POINTER_NOSHADOW (SWIG_POINTER_OWN << 1) -#define SWIG_POINTER_NEW (SWIG_POINTER_NOSHADOW | SWIG_POINTER_OWN) - -#define SWIG_POINTER_IMPLICIT_CONV (SWIG_POINTER_DISOWN << 1) - -#define SWIG_BUILTIN_TP_INIT (SWIG_POINTER_OWN << 2) -#define SWIG_BUILTIN_INIT (SWIG_BUILTIN_TP_INIT | SWIG_POINTER_OWN) - -#ifdef __cplusplus -extern "C" { -#endif - -/* How to access Py_None */ -#if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) -# ifndef SWIG_PYTHON_NO_BUILD_NONE -# ifndef SWIG_PYTHON_BUILD_NONE -# define SWIG_PYTHON_BUILD_NONE -# endif -# endif -#endif - -#ifdef SWIG_PYTHON_BUILD_NONE -# ifdef Py_None -# undef Py_None -# define Py_None SWIG_Py_None() -# endif -SWIGRUNTIMEINLINE PyObject * -_SWIG_Py_None(void) -{ - PyObject *none = Py_BuildValue((char*)""); - Py_DECREF(none); - return none; -} -SWIGRUNTIME PyObject * -SWIG_Py_None(void) -{ - static PyObject *SWIG_STATIC_POINTER(none) = _SWIG_Py_None(); - return none; -} -#endif - -/* The python void return value */ - -SWIGRUNTIMEINLINE PyObject * -SWIG_Py_Void(void) -{ - PyObject *none = Py_None; - Py_INCREF(none); - return none; -} - -/* SwigPyClientData */ - -typedef struct { - PyObject *klass; - PyObject *newraw; - PyObject *newargs; - PyObject *destroy; - int delargs; - int implicitconv; - PyTypeObject *pytype; -} SwigPyClientData; - -SWIGRUNTIMEINLINE int -SWIG_Python_CheckImplicit(swig_type_info *ty) -{ - SwigPyClientData *data = (SwigPyClientData *)ty->clientdata; - return data ? data->implicitconv : 0; -} - -SWIGRUNTIMEINLINE PyObject * -SWIG_Python_ExceptionType(swig_type_info *desc) { - SwigPyClientData *data = desc ? (SwigPyClientData *) desc->clientdata : 0; - PyObject *klass = data ? data->klass : 0; - return (klass ? klass : PyExc_RuntimeError); -} - - -SWIGRUNTIME SwigPyClientData * -SwigPyClientData_New(PyObject* obj) -{ - if (!obj) { - return 0; - } else { - SwigPyClientData *data = (SwigPyClientData *)malloc(sizeof(SwigPyClientData)); - /* the klass element */ - data->klass = obj; - Py_INCREF(data->klass); - /* the newraw method and newargs arguments used to create a new raw instance */ - if (PyClass_Check(obj)) { - data->newraw = 0; - data->newargs = obj; - Py_INCREF(obj); - } else { -#if (PY_VERSION_HEX < 0x02020000) - data->newraw = 0; -#else - data->newraw = PyObject_GetAttrString(data->klass, (char *)"__new__"); -#endif - if (data->newraw) { - Py_INCREF(data->newraw); - data->newargs = PyTuple_New(1); - PyTuple_SetItem(data->newargs, 0, obj); - } else { - data->newargs = obj; - } - Py_INCREF(data->newargs); - } - /* the destroy method, aka as the C++ delete method */ - data->destroy = PyObject_GetAttrString(data->klass, (char *)"__swig_destroy__"); - if (PyErr_Occurred()) { - PyErr_Clear(); - data->destroy = 0; - } - if (data->destroy) { - int flags; - Py_INCREF(data->destroy); - flags = PyCFunction_GET_FLAGS(data->destroy); -#ifdef METH_O - data->delargs = !(flags & (METH_O)); -#else - data->delargs = 0; -#endif - } else { - data->delargs = 0; - } - data->implicitconv = 0; - data->pytype = 0; - return data; - } -} - -SWIGRUNTIME void -SwigPyClientData_Del(SwigPyClientData *data) { - Py_XDECREF(data->newraw); - Py_XDECREF(data->newargs); - Py_XDECREF(data->destroy); -} - -/* =============== SwigPyObject =====================*/ - -typedef struct { - PyObject_HEAD - void *ptr; - swig_type_info *ty; - int own; - PyObject *next; -#ifdef SWIGPYTHON_BUILTIN - PyObject *dict; -#endif -} SwigPyObject; - - -#ifdef SWIGPYTHON_BUILTIN - -SWIGRUNTIME PyObject * -SwigPyObject_get___dict__(PyObject *v, PyObject *SWIGUNUSEDPARM(args)) -{ - SwigPyObject *sobj = (SwigPyObject *)v; - - if (!sobj->dict) - sobj->dict = PyDict_New(); - - Py_INCREF(sobj->dict); - return sobj->dict; -} - -#endif - -SWIGRUNTIME PyObject * -SwigPyObject_long(SwigPyObject *v) -{ - return PyLong_FromVoidPtr(v->ptr); -} - -SWIGRUNTIME PyObject * -SwigPyObject_format(const char* fmt, SwigPyObject *v) -{ - PyObject *res = NULL; - PyObject *args = PyTuple_New(1); - if (args) { - if (PyTuple_SetItem(args, 0, SwigPyObject_long(v)) == 0) { - PyObject *ofmt = SWIG_Python_str_FromChar(fmt); - if (ofmt) { -#if PY_VERSION_HEX >= 0x03000000 - res = PyUnicode_Format(ofmt,args); -#else - res = PyString_Format(ofmt,args); -#endif - Py_DECREF(ofmt); - } - Py_DECREF(args); - } - } - return res; -} - -SWIGRUNTIME PyObject * -SwigPyObject_oct(SwigPyObject *v) -{ - return SwigPyObject_format("%o",v); -} - -SWIGRUNTIME PyObject * -SwigPyObject_hex(SwigPyObject *v) -{ - return SwigPyObject_format("%x",v); -} - -SWIGRUNTIME PyObject * -#ifdef METH_NOARGS -SwigPyObject_repr(SwigPyObject *v) -#else -SwigPyObject_repr(SwigPyObject *v, PyObject *args) -#endif -{ - const char *name = SWIG_TypePrettyName(v->ty); - PyObject *repr = SWIG_Python_str_FromFormat("", (name ? name : "unknown"), (void *)v); - if (v->next) { -# ifdef METH_NOARGS - PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next); -# else - PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next, args); -# endif -# if PY_VERSION_HEX >= 0x03000000 - PyObject *joined = PyUnicode_Concat(repr, nrep); - Py_DecRef(repr); - Py_DecRef(nrep); - repr = joined; -# else - PyString_ConcatAndDel(&repr,nrep); -# endif - } - return repr; -} - -SWIGRUNTIME int -SwigPyObject_compare(SwigPyObject *v, SwigPyObject *w) -{ - void *i = v->ptr; - void *j = w->ptr; - return (i < j) ? -1 : ((i > j) ? 1 : 0); -} - -/* Added for Python 3.x, would it also be useful for Python 2.x? */ -SWIGRUNTIME PyObject* -SwigPyObject_richcompare(SwigPyObject *v, SwigPyObject *w, int op) -{ - PyObject* res; - if( op != Py_EQ && op != Py_NE ) { - Py_INCREF(Py_NotImplemented); - return Py_NotImplemented; - } - res = PyBool_FromLong( (SwigPyObject_compare(v, w)==0) == (op == Py_EQ) ? 1 : 0); - return res; -} - - -SWIGRUNTIME PyTypeObject* SwigPyObject_TypeOnce(void); - -#ifdef SWIGPYTHON_BUILTIN -static swig_type_info *SwigPyObject_stype = 0; -SWIGRUNTIME PyTypeObject* -SwigPyObject_type(void) { - SwigPyClientData *cd; - assert(SwigPyObject_stype); - cd = (SwigPyClientData*) SwigPyObject_stype->clientdata; - assert(cd); - assert(cd->pytype); - return cd->pytype; -} -#else -SWIGRUNTIME PyTypeObject* -SwigPyObject_type(void) { - static PyTypeObject *SWIG_STATIC_POINTER(type) = SwigPyObject_TypeOnce(); - return type; -} -#endif - -SWIGRUNTIMEINLINE int -SwigPyObject_Check(PyObject *op) { -#ifdef SWIGPYTHON_BUILTIN - PyTypeObject *target_tp = SwigPyObject_type(); - if (PyType_IsSubtype(op->ob_type, target_tp)) - return 1; - return (strcmp(op->ob_type->tp_name, "SwigPyObject") == 0); -#else - return (Py_TYPE(op) == SwigPyObject_type()) - || (strcmp(Py_TYPE(op)->tp_name,"SwigPyObject") == 0); -#endif -} - -SWIGRUNTIME PyObject * -SwigPyObject_New(void *ptr, swig_type_info *ty, int own); - -SWIGRUNTIME void -SwigPyObject_dealloc(PyObject *v) -{ - SwigPyObject *sobj = (SwigPyObject *) v; - PyObject *next = sobj->next; - if (sobj->own == SWIG_POINTER_OWN) { - swig_type_info *ty = sobj->ty; - SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0; - PyObject *destroy = data ? data->destroy : 0; - if (destroy) { - /* destroy is always a VARARGS method */ - PyObject *res; - - /* PyObject_CallFunction() has the potential to silently drop - the active active exception. In cases of unnamed temporary - variable or where we just finished iterating over a generator - StopIteration will be active right now, and this needs to - remain true upon return from SwigPyObject_dealloc. So save - and restore. */ - - PyObject *val = NULL, *type = NULL, *tb = NULL; - PyErr_Fetch(&val, &type, &tb); - - if (data->delargs) { - /* we need to create a temporary object to carry the destroy operation */ - PyObject *tmp = SwigPyObject_New(sobj->ptr, ty, 0); - res = SWIG_Python_CallFunctor(destroy, tmp); - Py_DECREF(tmp); - } else { - PyCFunction meth = PyCFunction_GET_FUNCTION(destroy); - PyObject *mself = PyCFunction_GET_SELF(destroy); - res = ((*meth)(mself, v)); - } - if (!res) - PyErr_WriteUnraisable(destroy); - - PyErr_Restore(val, type, tb); - - Py_XDECREF(res); - } -#if !defined(SWIG_PYTHON_SILENT_MEMLEAK) - else { - const char *name = SWIG_TypePrettyName(ty); - printf("swig/python detected a memory leak of type '%s', no destructor found.\n", (name ? name : "unknown")); - } -#endif - } - Py_XDECREF(next); - PyObject_DEL(v); -} - -SWIGRUNTIME PyObject* -SwigPyObject_append(PyObject* v, PyObject* next) -{ - SwigPyObject *sobj = (SwigPyObject *) v; -#ifndef METH_O - PyObject *tmp = 0; - if (!PyArg_ParseTuple(next,(char *)"O:append", &tmp)) return NULL; - next = tmp; -#endif - if (!SwigPyObject_Check(next)) { - PyErr_SetString(PyExc_TypeError, "Attempt to append a non SwigPyObject"); - return NULL; - } - sobj->next = next; - Py_INCREF(next); - return SWIG_Py_Void(); -} - -SWIGRUNTIME PyObject* -#ifdef METH_NOARGS -SwigPyObject_next(PyObject* v) -#else -SwigPyObject_next(PyObject* v, PyObject *SWIGUNUSEDPARM(args)) -#endif -{ - SwigPyObject *sobj = (SwigPyObject *) v; - if (sobj->next) { - Py_INCREF(sobj->next); - return sobj->next; - } else { - return SWIG_Py_Void(); - } -} - -SWIGINTERN PyObject* -#ifdef METH_NOARGS -SwigPyObject_disown(PyObject *v) -#else -SwigPyObject_disown(PyObject* v, PyObject *SWIGUNUSEDPARM(args)) -#endif -{ - SwigPyObject *sobj = (SwigPyObject *)v; - sobj->own = 0; - return SWIG_Py_Void(); -} - -SWIGINTERN PyObject* -#ifdef METH_NOARGS -SwigPyObject_acquire(PyObject *v) -#else -SwigPyObject_acquire(PyObject* v, PyObject *SWIGUNUSEDPARM(args)) -#endif -{ - SwigPyObject *sobj = (SwigPyObject *)v; - sobj->own = SWIG_POINTER_OWN; - return SWIG_Py_Void(); -} - -SWIGINTERN PyObject* -SwigPyObject_own(PyObject *v, PyObject *args) -{ - PyObject *val = 0; -#if (PY_VERSION_HEX < 0x02020000) - if (!PyArg_ParseTuple(args,(char *)"|O:own",&val)) -#elif (PY_VERSION_HEX < 0x02050000) - if (!PyArg_UnpackTuple(args, (char *)"own", 0, 1, &val)) -#else - if (!PyArg_UnpackTuple(args, "own", 0, 1, &val)) -#endif - { - return NULL; - } - else - { - SwigPyObject *sobj = (SwigPyObject *)v; - PyObject *obj = PyBool_FromLong(sobj->own); - if (val) { -#ifdef METH_NOARGS - if (PyObject_IsTrue(val)) { - SwigPyObject_acquire(v); - } else { - SwigPyObject_disown(v); - } -#else - if (PyObject_IsTrue(val)) { - SwigPyObject_acquire(v,args); - } else { - SwigPyObject_disown(v,args); - } -#endif - } - return obj; - } -} - -#ifdef METH_O -static PyMethodDef -swigobject_methods[] = { - {(char *)"disown", (PyCFunction)SwigPyObject_disown, METH_NOARGS, (char *)"releases ownership of the pointer"}, - {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_NOARGS, (char *)"acquires ownership of the pointer"}, - {(char *)"own", (PyCFunction)SwigPyObject_own, METH_VARARGS, (char *)"returns/sets ownership of the pointer"}, - {(char *)"append", (PyCFunction)SwigPyObject_append, METH_O, (char *)"appends another 'this' object"}, - {(char *)"next", (PyCFunction)SwigPyObject_next, METH_NOARGS, (char *)"returns the next 'this' object"}, - {(char *)"__repr__",(PyCFunction)SwigPyObject_repr, METH_NOARGS, (char *)"returns object representation"}, - {0, 0, 0, 0} -}; -#else -static PyMethodDef -swigobject_methods[] = { - {(char *)"disown", (PyCFunction)SwigPyObject_disown, METH_VARARGS, (char *)"releases ownership of the pointer"}, - {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_VARARGS, (char *)"acquires ownership of the pointer"}, - {(char *)"own", (PyCFunction)SwigPyObject_own, METH_VARARGS, (char *)"returns/sets ownership of the pointer"}, - {(char *)"append", (PyCFunction)SwigPyObject_append, METH_VARARGS, (char *)"appends another 'this' object"}, - {(char *)"next", (PyCFunction)SwigPyObject_next, METH_VARARGS, (char *)"returns the next 'this' object"}, - {(char *)"__repr__",(PyCFunction)SwigPyObject_repr, METH_VARARGS, (char *)"returns object representation"}, - {0, 0, 0, 0} -}; -#endif - -#if PY_VERSION_HEX < 0x02020000 -SWIGINTERN PyObject * -SwigPyObject_getattr(SwigPyObject *sobj,char *name) -{ - return Py_FindMethod(swigobject_methods, (PyObject *)sobj, name); -} -#endif - -SWIGRUNTIME PyTypeObject* -SwigPyObject_TypeOnce(void) { - static char swigobject_doc[] = "Swig object carries a C/C++ instance pointer"; - - static PyNumberMethods SwigPyObject_as_number = { - (binaryfunc)0, /*nb_add*/ - (binaryfunc)0, /*nb_subtract*/ - (binaryfunc)0, /*nb_multiply*/ - /* nb_divide removed in Python 3 */ -#if PY_VERSION_HEX < 0x03000000 - (binaryfunc)0, /*nb_divide*/ -#endif - (binaryfunc)0, /*nb_remainder*/ - (binaryfunc)0, /*nb_divmod*/ - (ternaryfunc)0,/*nb_power*/ - (unaryfunc)0, /*nb_negative*/ - (unaryfunc)0, /*nb_positive*/ - (unaryfunc)0, /*nb_absolute*/ - (inquiry)0, /*nb_nonzero*/ - 0, /*nb_invert*/ - 0, /*nb_lshift*/ - 0, /*nb_rshift*/ - 0, /*nb_and*/ - 0, /*nb_xor*/ - 0, /*nb_or*/ -#if PY_VERSION_HEX < 0x03000000 - 0, /*nb_coerce*/ -#endif - (unaryfunc)SwigPyObject_long, /*nb_int*/ -#if PY_VERSION_HEX < 0x03000000 - (unaryfunc)SwigPyObject_long, /*nb_long*/ -#else - 0, /*nb_reserved*/ -#endif - (unaryfunc)0, /*nb_float*/ -#if PY_VERSION_HEX < 0x03000000 - (unaryfunc)SwigPyObject_oct, /*nb_oct*/ - (unaryfunc)SwigPyObject_hex, /*nb_hex*/ -#endif -#if PY_VERSION_HEX >= 0x03050000 /* 3.5 */ - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_matrix_multiply */ -#elif PY_VERSION_HEX >= 0x03000000 /* 3.0 */ - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index, nb_inplace_divide removed */ -#elif PY_VERSION_HEX >= 0x02050000 /* 2.5.0 */ - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */ -#elif PY_VERSION_HEX >= 0x02020000 /* 2.2.0 */ - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */ -#elif PY_VERSION_HEX >= 0x02000000 /* 2.0.0 */ - 0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_or */ -#endif - }; - - static PyTypeObject swigpyobject_type; - static int type_init = 0; - if (!type_init) { - const PyTypeObject tmp = { -#if PY_VERSION_HEX >= 0x03000000 - PyVarObject_HEAD_INIT(NULL, 0) -#else - PyObject_HEAD_INIT(NULL) - 0, /* ob_size */ -#endif - (char *)"SwigPyObject", /* tp_name */ - sizeof(SwigPyObject), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor)SwigPyObject_dealloc, /* tp_dealloc */ - 0, /* tp_print */ -#if PY_VERSION_HEX < 0x02020000 - (getattrfunc)SwigPyObject_getattr, /* tp_getattr */ -#else - (getattrfunc)0, /* tp_getattr */ -#endif - (setattrfunc)0, /* tp_setattr */ -#if PY_VERSION_HEX >= 0x03000000 - 0, /* tp_reserved in 3.0.1, tp_compare in 3.0.0 but not used */ -#else - (cmpfunc)SwigPyObject_compare, /* tp_compare */ -#endif - (reprfunc)SwigPyObject_repr, /* tp_repr */ - &SwigPyObject_as_number, /* tp_as_number */ - 0, /* tp_as_sequence */ - 0, /* tp_as_mapping */ - (hashfunc)0, /* tp_hash */ - (ternaryfunc)0, /* tp_call */ - 0, /* tp_str */ - PyObject_GenericGetAttr, /* tp_getattro */ - 0, /* tp_setattro */ - 0, /* tp_as_buffer */ - Py_TPFLAGS_DEFAULT, /* tp_flags */ - swigobject_doc, /* tp_doc */ - 0, /* tp_traverse */ - 0, /* tp_clear */ - (richcmpfunc)SwigPyObject_richcompare,/* tp_richcompare */ - 0, /* tp_weaklistoffset */ -#if PY_VERSION_HEX >= 0x02020000 - 0, /* tp_iter */ - 0, /* tp_iternext */ - swigobject_methods, /* tp_methods */ - 0, /* tp_members */ - 0, /* tp_getset */ - 0, /* tp_base */ - 0, /* tp_dict */ - 0, /* tp_descr_get */ - 0, /* tp_descr_set */ - 0, /* tp_dictoffset */ - 0, /* tp_init */ - 0, /* tp_alloc */ - 0, /* tp_new */ - 0, /* tp_free */ - 0, /* tp_is_gc */ - 0, /* tp_bases */ - 0, /* tp_mro */ - 0, /* tp_cache */ - 0, /* tp_subclasses */ - 0, /* tp_weaklist */ -#endif -#if PY_VERSION_HEX >= 0x02030000 - 0, /* tp_del */ -#endif -#if PY_VERSION_HEX >= 0x02060000 - 0, /* tp_version_tag */ -#endif -#if PY_VERSION_HEX >= 0x03040000 - 0, /* tp_finalize */ -#endif -#ifdef COUNT_ALLOCS - 0, /* tp_allocs */ - 0, /* tp_frees */ - 0, /* tp_maxalloc */ -#if PY_VERSION_HEX >= 0x02050000 - 0, /* tp_prev */ -#endif - 0 /* tp_next */ -#endif - }; - swigpyobject_type = tmp; - type_init = 1; -#if PY_VERSION_HEX < 0x02020000 - swigpyobject_type.ob_type = &PyType_Type; -#else - if (PyType_Ready(&swigpyobject_type) < 0) - return NULL; -#endif - } - return &swigpyobject_type; -} - -SWIGRUNTIME PyObject * -SwigPyObject_New(void *ptr, swig_type_info *ty, int own) -{ - SwigPyObject *sobj = PyObject_NEW(SwigPyObject, SwigPyObject_type()); - if (sobj) { - sobj->ptr = ptr; - sobj->ty = ty; - sobj->own = own; - sobj->next = 0; - } - return (PyObject *)sobj; -} - -/* ----------------------------------------------------------------------------- - * Implements a simple Swig Packed type, and use it instead of string - * ----------------------------------------------------------------------------- */ - -typedef struct { - PyObject_HEAD - void *pack; - swig_type_info *ty; - size_t size; -} SwigPyPacked; - -SWIGRUNTIME int -SwigPyPacked_print(SwigPyPacked *v, FILE *fp, int SWIGUNUSEDPARM(flags)) -{ - char result[SWIG_BUFFER_SIZE]; - fputs("pack, v->size, 0, sizeof(result))) { - fputs("at ", fp); - fputs(result, fp); - } - fputs(v->ty->name,fp); - fputs(">", fp); - return 0; -} - -SWIGRUNTIME PyObject * -SwigPyPacked_repr(SwigPyPacked *v) -{ - char result[SWIG_BUFFER_SIZE]; - if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) { - return SWIG_Python_str_FromFormat("", result, v->ty->name); - } else { - return SWIG_Python_str_FromFormat("", v->ty->name); - } -} - -SWIGRUNTIME PyObject * -SwigPyPacked_str(SwigPyPacked *v) -{ - char result[SWIG_BUFFER_SIZE]; - if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))){ - return SWIG_Python_str_FromFormat("%s%s", result, v->ty->name); - } else { - return SWIG_Python_str_FromChar(v->ty->name); - } -} - -SWIGRUNTIME int -SwigPyPacked_compare(SwigPyPacked *v, SwigPyPacked *w) -{ - size_t i = v->size; - size_t j = w->size; - int s = (i < j) ? -1 : ((i > j) ? 1 : 0); - return s ? s : strncmp((char *)v->pack, (char *)w->pack, 2*v->size); -} - -SWIGRUNTIME PyTypeObject* SwigPyPacked_TypeOnce(void); - -SWIGRUNTIME PyTypeObject* -SwigPyPacked_type(void) { - static PyTypeObject *SWIG_STATIC_POINTER(type) = SwigPyPacked_TypeOnce(); - return type; -} - -SWIGRUNTIMEINLINE int -SwigPyPacked_Check(PyObject *op) { - return ((op)->ob_type == SwigPyPacked_TypeOnce()) - || (strcmp((op)->ob_type->tp_name,"SwigPyPacked") == 0); -} - -SWIGRUNTIME void -SwigPyPacked_dealloc(PyObject *v) -{ - if (SwigPyPacked_Check(v)) { - SwigPyPacked *sobj = (SwigPyPacked *) v; - free(sobj->pack); - } - PyObject_DEL(v); -} - -SWIGRUNTIME PyTypeObject* -SwigPyPacked_TypeOnce(void) { - static char swigpacked_doc[] = "Swig object carries a C/C++ instance pointer"; - static PyTypeObject swigpypacked_type; - static int type_init = 0; - if (!type_init) { - const PyTypeObject tmp = { -#if PY_VERSION_HEX>=0x03000000 - PyVarObject_HEAD_INIT(NULL, 0) -#else - PyObject_HEAD_INIT(NULL) - 0, /* ob_size */ -#endif - (char *)"SwigPyPacked", /* tp_name */ - sizeof(SwigPyPacked), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor)SwigPyPacked_dealloc, /* tp_dealloc */ - (printfunc)SwigPyPacked_print, /* tp_print */ - (getattrfunc)0, /* tp_getattr */ - (setattrfunc)0, /* tp_setattr */ -#if PY_VERSION_HEX>=0x03000000 - 0, /* tp_reserved in 3.0.1 */ -#else - (cmpfunc)SwigPyPacked_compare, /* tp_compare */ -#endif - (reprfunc)SwigPyPacked_repr, /* tp_repr */ - 0, /* tp_as_number */ - 0, /* tp_as_sequence */ - 0, /* tp_as_mapping */ - (hashfunc)0, /* tp_hash */ - (ternaryfunc)0, /* tp_call */ - (reprfunc)SwigPyPacked_str, /* tp_str */ - PyObject_GenericGetAttr, /* tp_getattro */ - 0, /* tp_setattro */ - 0, /* tp_as_buffer */ - Py_TPFLAGS_DEFAULT, /* tp_flags */ - swigpacked_doc, /* tp_doc */ - 0, /* tp_traverse */ - 0, /* tp_clear */ - 0, /* tp_richcompare */ - 0, /* tp_weaklistoffset */ -#if PY_VERSION_HEX >= 0x02020000 - 0, /* tp_iter */ - 0, /* tp_iternext */ - 0, /* tp_methods */ - 0, /* tp_members */ - 0, /* tp_getset */ - 0, /* tp_base */ - 0, /* tp_dict */ - 0, /* tp_descr_get */ - 0, /* tp_descr_set */ - 0, /* tp_dictoffset */ - 0, /* tp_init */ - 0, /* tp_alloc */ - 0, /* tp_new */ - 0, /* tp_free */ - 0, /* tp_is_gc */ - 0, /* tp_bases */ - 0, /* tp_mro */ - 0, /* tp_cache */ - 0, /* tp_subclasses */ - 0, /* tp_weaklist */ -#endif -#if PY_VERSION_HEX >= 0x02030000 - 0, /* tp_del */ -#endif -#if PY_VERSION_HEX >= 0x02060000 - 0, /* tp_version_tag */ -#endif -#if PY_VERSION_HEX >= 0x03040000 - 0, /* tp_finalize */ -#endif -#ifdef COUNT_ALLOCS - 0, /* tp_allocs */ - 0, /* tp_frees */ - 0, /* tp_maxalloc */ -#if PY_VERSION_HEX >= 0x02050000 - 0, /* tp_prev */ -#endif - 0 /* tp_next */ -#endif - }; - swigpypacked_type = tmp; - type_init = 1; -#if PY_VERSION_HEX < 0x02020000 - swigpypacked_type.ob_type = &PyType_Type; -#else - if (PyType_Ready(&swigpypacked_type) < 0) - return NULL; -#endif - } - return &swigpypacked_type; -} - -SWIGRUNTIME PyObject * -SwigPyPacked_New(void *ptr, size_t size, swig_type_info *ty) -{ - SwigPyPacked *sobj = PyObject_NEW(SwigPyPacked, SwigPyPacked_type()); - if (sobj) { - void *pack = malloc(size); - if (pack) { - memcpy(pack, ptr, size); - sobj->pack = pack; - sobj->ty = ty; - sobj->size = size; - } else { - PyObject_DEL((PyObject *) sobj); - sobj = 0; - } - } - return (PyObject *) sobj; -} - -SWIGRUNTIME swig_type_info * -SwigPyPacked_UnpackData(PyObject *obj, void *ptr, size_t size) -{ - if (SwigPyPacked_Check(obj)) { - SwigPyPacked *sobj = (SwigPyPacked *)obj; - if (sobj->size != size) return 0; - memcpy(ptr, sobj->pack, size); - return sobj->ty; - } else { - return 0; - } -} - -/* ----------------------------------------------------------------------------- - * pointers/data manipulation - * ----------------------------------------------------------------------------- */ - -SWIGRUNTIMEINLINE PyObject * -_SWIG_This(void) -{ - return SWIG_Python_str_FromChar("this"); -} - -static PyObject *swig_this = NULL; - -SWIGRUNTIME PyObject * -SWIG_This(void) -{ - if (swig_this == NULL) - swig_this = _SWIG_This(); - return swig_this; -} - -/* #define SWIG_PYTHON_SLOW_GETSET_THIS */ - -/* TODO: I don't know how to implement the fast getset in Python 3 right now */ -#if PY_VERSION_HEX>=0x03000000 -#define SWIG_PYTHON_SLOW_GETSET_THIS -#endif - -SWIGRUNTIME SwigPyObject * -SWIG_Python_GetSwigThis(PyObject *pyobj) -{ - PyObject *obj; - - if (SwigPyObject_Check(pyobj)) - return (SwigPyObject *) pyobj; - -#ifdef SWIGPYTHON_BUILTIN - (void)obj; -# ifdef PyWeakref_CheckProxy - if (PyWeakref_CheckProxy(pyobj)) { - pyobj = PyWeakref_GET_OBJECT(pyobj); - if (pyobj && SwigPyObject_Check(pyobj)) - return (SwigPyObject*) pyobj; - } -# endif - return NULL; -#else - - obj = 0; - -#if (!defined(SWIG_PYTHON_SLOW_GETSET_THIS) && (PY_VERSION_HEX >= 0x02030000)) - if (PyInstance_Check(pyobj)) { - obj = _PyInstance_Lookup(pyobj, SWIG_This()); - } else { - PyObject **dictptr = _PyObject_GetDictPtr(pyobj); - if (dictptr != NULL) { - PyObject *dict = *dictptr; - obj = dict ? PyDict_GetItem(dict, SWIG_This()) : 0; - } else { -#ifdef PyWeakref_CheckProxy - if (PyWeakref_CheckProxy(pyobj)) { - PyObject *wobj = PyWeakref_GET_OBJECT(pyobj); - return wobj ? SWIG_Python_GetSwigThis(wobj) : 0; - } -#endif - obj = PyObject_GetAttr(pyobj,SWIG_This()); - if (obj) { - Py_DECREF(obj); - } else { - if (PyErr_Occurred()) PyErr_Clear(); - return 0; - } - } - } -#else - obj = PyObject_GetAttr(pyobj,SWIG_This()); - if (obj) { - Py_DECREF(obj); - } else { - if (PyErr_Occurred()) PyErr_Clear(); - return 0; - } -#endif - if (obj && !SwigPyObject_Check(obj)) { - /* a PyObject is called 'this', try to get the 'real this' - SwigPyObject from it */ - return SWIG_Python_GetSwigThis(obj); - } - return (SwigPyObject *)obj; -#endif -} - -/* Acquire a pointer value */ - -SWIGRUNTIME int -SWIG_Python_AcquirePtr(PyObject *obj, int own) { - if (own == SWIG_POINTER_OWN) { - SwigPyObject *sobj = SWIG_Python_GetSwigThis(obj); - if (sobj) { - int oldown = sobj->own; - sobj->own = own; - return oldown; - } - } - return 0; -} - -/* Convert a pointer value */ - -SWIGRUNTIME int -SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int flags, int *own) { - int res; - SwigPyObject *sobj; - int implicit_conv = (flags & SWIG_POINTER_IMPLICIT_CONV) != 0; - - if (!obj) - return SWIG_ERROR; - if (obj == Py_None && !implicit_conv) { - if (ptr) - *ptr = 0; - return SWIG_OK; - } - - res = SWIG_ERROR; - - sobj = SWIG_Python_GetSwigThis(obj); - if (own) - *own = 0; - while (sobj) { - void *vptr = sobj->ptr; - if (ty) { - swig_type_info *to = sobj->ty; - if (to == ty) { - /* no type cast needed */ - if (ptr) *ptr = vptr; - break; - } else { - swig_cast_info *tc = SWIG_TypeCheck(to->name,ty); - if (!tc) { - sobj = (SwigPyObject *)sobj->next; - } else { - if (ptr) { - int newmemory = 0; - *ptr = SWIG_TypeCast(tc,vptr,&newmemory); - if (newmemory == SWIG_CAST_NEW_MEMORY) { - assert(own); /* badly formed typemap which will lead to a memory leak - it must set and use own to delete *ptr */ - if (own) - *own = *own | SWIG_CAST_NEW_MEMORY; - } - } - break; - } - } - } else { - if (ptr) *ptr = vptr; - break; - } - } - if (sobj) { - if (own) - *own = *own | sobj->own; - if (flags & SWIG_POINTER_DISOWN) { - sobj->own = 0; - } - res = SWIG_OK; - } else { - if (implicit_conv) { - SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0; - if (data && !data->implicitconv) { - PyObject *klass = data->klass; - if (klass) { - PyObject *impconv; - data->implicitconv = 1; /* avoid recursion and call 'explicit' constructors*/ - impconv = SWIG_Python_CallFunctor(klass, obj); - data->implicitconv = 0; - if (PyErr_Occurred()) { - PyErr_Clear(); - impconv = 0; - } - if (impconv) { - SwigPyObject *iobj = SWIG_Python_GetSwigThis(impconv); - if (iobj) { - void *vptr; - res = SWIG_Python_ConvertPtrAndOwn((PyObject*)iobj, &vptr, ty, 0, 0); - if (SWIG_IsOK(res)) { - if (ptr) { - *ptr = vptr; - /* transfer the ownership to 'ptr' */ - iobj->own = 0; - res = SWIG_AddCast(res); - res = SWIG_AddNewMask(res); - } else { - res = SWIG_AddCast(res); - } - } - } - Py_DECREF(impconv); - } - } - } - } - if (!SWIG_IsOK(res) && obj == Py_None) { - if (ptr) - *ptr = 0; - if (PyErr_Occurred()) - PyErr_Clear(); - res = SWIG_OK; - } - } - return res; -} - -/* Convert a function ptr value */ - -SWIGRUNTIME int -SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty) { - if (!PyCFunction_Check(obj)) { - return SWIG_ConvertPtr(obj, ptr, ty, 0); - } else { - void *vptr = 0; - - /* here we get the method pointer for callbacks */ - const char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc); - const char *desc = doc ? strstr(doc, "swig_ptr: ") : 0; - if (desc) - desc = ty ? SWIG_UnpackVoidPtr(desc + 10, &vptr, ty->name) : 0; - if (!desc) - return SWIG_ERROR; - if (ty) { - swig_cast_info *tc = SWIG_TypeCheck(desc,ty); - if (tc) { - int newmemory = 0; - *ptr = SWIG_TypeCast(tc,vptr,&newmemory); - assert(!newmemory); /* newmemory handling not yet implemented */ - } else { - return SWIG_ERROR; - } - } else { - *ptr = vptr; - } - return SWIG_OK; - } -} - -/* Convert a packed value value */ - -SWIGRUNTIME int -SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t sz, swig_type_info *ty) { - swig_type_info *to = SwigPyPacked_UnpackData(obj, ptr, sz); - if (!to) return SWIG_ERROR; - if (ty) { - if (to != ty) { - /* check type cast? */ - swig_cast_info *tc = SWIG_TypeCheck(to->name,ty); - if (!tc) return SWIG_ERROR; - } - } - return SWIG_OK; -} - -/* ----------------------------------------------------------------------------- - * Create a new pointer object - * ----------------------------------------------------------------------------- */ - -/* - Create a new instance object, without calling __init__, and set the - 'this' attribute. -*/ - -SWIGRUNTIME PyObject* -SWIG_Python_NewShadowInstance(SwigPyClientData *data, PyObject *swig_this) -{ -#if (PY_VERSION_HEX >= 0x02020000) - PyObject *inst = 0; - PyObject *newraw = data->newraw; - if (newraw) { - inst = PyObject_Call(newraw, data->newargs, NULL); - if (inst) { -#if !defined(SWIG_PYTHON_SLOW_GETSET_THIS) - PyObject **dictptr = _PyObject_GetDictPtr(inst); - if (dictptr != NULL) { - PyObject *dict = *dictptr; - if (dict == NULL) { - dict = PyDict_New(); - *dictptr = dict; - PyDict_SetItem(dict, SWIG_This(), swig_this); - } - } -#else - PyObject *key = SWIG_This(); - PyObject_SetAttr(inst, key, swig_this); -#endif - } - } else { -#if PY_VERSION_HEX >= 0x03000000 - inst = ((PyTypeObject*) data->newargs)->tp_new((PyTypeObject*) data->newargs, Py_None, Py_None); - if (inst) { - PyObject_SetAttr(inst, SWIG_This(), swig_this); - Py_TYPE(inst)->tp_flags &= ~Py_TPFLAGS_VALID_VERSION_TAG; - } -#else - PyObject *dict = PyDict_New(); - if (dict) { - PyDict_SetItem(dict, SWIG_This(), swig_this); - inst = PyInstance_NewRaw(data->newargs, dict); - Py_DECREF(dict); - } -#endif - } - return inst; -#else -#if (PY_VERSION_HEX >= 0x02010000) - PyObject *inst = 0; - PyObject *dict = PyDict_New(); - if (dict) { - PyDict_SetItem(dict, SWIG_This(), swig_this); - inst = PyInstance_NewRaw(data->newargs, dict); - Py_DECREF(dict); - } - return (PyObject *) inst; -#else - PyInstanceObject *inst = PyObject_NEW(PyInstanceObject, &PyInstance_Type); - if (inst == NULL) { - return NULL; - } - inst->in_class = (PyClassObject *)data->newargs; - Py_INCREF(inst->in_class); - inst->in_dict = PyDict_New(); - if (inst->in_dict == NULL) { - Py_DECREF(inst); - return NULL; - } -#ifdef Py_TPFLAGS_HAVE_WEAKREFS - inst->in_weakreflist = NULL; -#endif -#ifdef Py_TPFLAGS_GC - PyObject_GC_Init(inst); -#endif - PyDict_SetItem(inst->in_dict, SWIG_This(), swig_this); - return (PyObject *) inst; -#endif -#endif -} - -SWIGRUNTIME void -SWIG_Python_SetSwigThis(PyObject *inst, PyObject *swig_this) -{ - PyObject *dict; -#if (PY_VERSION_HEX >= 0x02020000) && !defined(SWIG_PYTHON_SLOW_GETSET_THIS) - PyObject **dictptr = _PyObject_GetDictPtr(inst); - if (dictptr != NULL) { - dict = *dictptr; - if (dict == NULL) { - dict = PyDict_New(); - *dictptr = dict; - } - PyDict_SetItem(dict, SWIG_This(), swig_this); - return; - } -#endif - dict = PyObject_GetAttrString(inst, (char*)"__dict__"); - PyDict_SetItem(dict, SWIG_This(), swig_this); - Py_DECREF(dict); -} - - -SWIGINTERN PyObject * -SWIG_Python_InitShadowInstance(PyObject *args) { - PyObject *obj[2]; - if (!SWIG_Python_UnpackTuple(args, "swiginit", 2, 2, obj)) { - return NULL; - } else { - SwigPyObject *sthis = SWIG_Python_GetSwigThis(obj[0]); - if (sthis) { - SwigPyObject_append((PyObject*) sthis, obj[1]); - } else { - SWIG_Python_SetSwigThis(obj[0], obj[1]); - } - return SWIG_Py_Void(); - } -} - -/* Create a new pointer object */ - -SWIGRUNTIME PyObject * -SWIG_Python_NewPointerObj(PyObject *self, void *ptr, swig_type_info *type, int flags) { - SwigPyClientData *clientdata; - PyObject * robj; - int own; - - if (!ptr) - return SWIG_Py_Void(); - - clientdata = type ? (SwigPyClientData *)(type->clientdata) : 0; - own = (flags & SWIG_POINTER_OWN) ? SWIG_POINTER_OWN : 0; - if (clientdata && clientdata->pytype) { - SwigPyObject *newobj; - if (flags & SWIG_BUILTIN_TP_INIT) { - newobj = (SwigPyObject*) self; - if (newobj->ptr) { - PyObject *next_self = clientdata->pytype->tp_alloc(clientdata->pytype, 0); - while (newobj->next) - newobj = (SwigPyObject *) newobj->next; - newobj->next = next_self; - newobj = (SwigPyObject *)next_self; -#ifdef SWIGPYTHON_BUILTIN - newobj->dict = 0; -#endif - } - } else { - newobj = PyObject_New(SwigPyObject, clientdata->pytype); -#ifdef SWIGPYTHON_BUILTIN - newobj->dict = 0; -#endif - } - if (newobj) { - newobj->ptr = ptr; - newobj->ty = type; - newobj->own = own; - newobj->next = 0; - return (PyObject*) newobj; - } - return SWIG_Py_Void(); - } - - assert(!(flags & SWIG_BUILTIN_TP_INIT)); - - robj = SwigPyObject_New(ptr, type, own); - if (robj && clientdata && !(flags & SWIG_POINTER_NOSHADOW)) { - PyObject *inst = SWIG_Python_NewShadowInstance(clientdata, robj); - Py_DECREF(robj); - robj = inst; - } - return robj; -} - -/* Create a new packed object */ - -SWIGRUNTIMEINLINE PyObject * -SWIG_Python_NewPackedObj(void *ptr, size_t sz, swig_type_info *type) { - return ptr ? SwigPyPacked_New((void *) ptr, sz, type) : SWIG_Py_Void(); -} - -/* -----------------------------------------------------------------------------* - * Get type list - * -----------------------------------------------------------------------------*/ - -#ifdef SWIG_LINK_RUNTIME -void *SWIG_ReturnGlobalTypeList(void *); -#endif - -SWIGRUNTIME swig_module_info * -SWIG_Python_GetModule(void *SWIGUNUSEDPARM(clientdata)) { - static void *type_pointer = (void *)0; - /* first check if module already created */ - if (!type_pointer) { -#ifdef SWIG_LINK_RUNTIME - type_pointer = SWIG_ReturnGlobalTypeList((void *)0); -#else -# ifdef SWIGPY_USE_CAPSULE - type_pointer = PyCapsule_Import(SWIGPY_CAPSULE_NAME, 0); -# else - type_pointer = PyCObject_Import((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION, - (char*)"type_pointer" SWIG_TYPE_TABLE_NAME); -# endif - if (PyErr_Occurred()) { - PyErr_Clear(); - type_pointer = (void *)0; - } -#endif - } - return (swig_module_info *) type_pointer; -} - -#if PY_MAJOR_VERSION < 2 -/* PyModule_AddObject function was introduced in Python 2.0. The following function - is copied out of Python/modsupport.c in python version 2.3.4 */ -SWIGINTERN int -PyModule_AddObject(PyObject *m, char *name, PyObject *o) -{ - PyObject *dict; - if (!PyModule_Check(m)) { - PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs module as first arg"); - return SWIG_ERROR; - } - if (!o) { - PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs non-NULL value"); - return SWIG_ERROR; - } - - dict = PyModule_GetDict(m); - if (dict == NULL) { - /* Internal error -- modules must have a dict! */ - PyErr_Format(PyExc_SystemError, "module '%s' has no __dict__", - PyModule_GetName(m)); - return SWIG_ERROR; - } - if (PyDict_SetItemString(dict, name, o)) - return SWIG_ERROR; - Py_DECREF(o); - return SWIG_OK; -} -#endif - -SWIGRUNTIME void -#ifdef SWIGPY_USE_CAPSULE -SWIG_Python_DestroyModule(PyObject *obj) -#else -SWIG_Python_DestroyModule(void *vptr) -#endif -{ -#ifdef SWIGPY_USE_CAPSULE - swig_module_info *swig_module = (swig_module_info *) PyCapsule_GetPointer(obj, SWIGPY_CAPSULE_NAME); -#else - swig_module_info *swig_module = (swig_module_info *) vptr; -#endif - swig_type_info **types = swig_module->types; - size_t i; - for (i =0; i < swig_module->size; ++i) { - swig_type_info *ty = types[i]; - if (ty->owndata) { - SwigPyClientData *data = (SwigPyClientData *) ty->clientdata; - if (data) SwigPyClientData_Del(data); - } - } - Py_DECREF(SWIG_This()); - swig_this = NULL; -} - -SWIGRUNTIME void -SWIG_Python_SetModule(swig_module_info *swig_module) { -#if PY_VERSION_HEX >= 0x03000000 - /* Add a dummy module object into sys.modules */ - PyObject *module = PyImport_AddModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION); -#else - static PyMethodDef swig_empty_runtime_method_table[] = { {NULL, NULL, 0, NULL} }; /* Sentinel */ - PyObject *module = Py_InitModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION, swig_empty_runtime_method_table); -#endif -#ifdef SWIGPY_USE_CAPSULE - PyObject *pointer = PyCapsule_New((void *) swig_module, SWIGPY_CAPSULE_NAME, SWIG_Python_DestroyModule); - if (pointer && module) { - PyModule_AddObject(module, (char*)"type_pointer_capsule" SWIG_TYPE_TABLE_NAME, pointer); - } else { - Py_XDECREF(pointer); - } -#else - PyObject *pointer = PyCObject_FromVoidPtr((void *) swig_module, SWIG_Python_DestroyModule); - if (pointer && module) { - PyModule_AddObject(module, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME, pointer); - } else { - Py_XDECREF(pointer); - } -#endif -} - -/* The python cached type query */ -SWIGRUNTIME PyObject * -SWIG_Python_TypeCache(void) { - static PyObject *SWIG_STATIC_POINTER(cache) = PyDict_New(); - return cache; -} - -SWIGRUNTIME swig_type_info * -SWIG_Python_TypeQuery(const char *type) -{ - PyObject *cache = SWIG_Python_TypeCache(); - PyObject *key = SWIG_Python_str_FromChar(type); - PyObject *obj = PyDict_GetItem(cache, key); - swig_type_info *descriptor; - if (obj) { -#ifdef SWIGPY_USE_CAPSULE - descriptor = (swig_type_info *) PyCapsule_GetPointer(obj, NULL); -#else - descriptor = (swig_type_info *) PyCObject_AsVoidPtr(obj); -#endif - } else { - swig_module_info *swig_module = SWIG_GetModule(0); - descriptor = SWIG_TypeQueryModule(swig_module, swig_module, type); - if (descriptor) { -#ifdef SWIGPY_USE_CAPSULE - obj = PyCapsule_New((void*) descriptor, NULL, NULL); -#else - obj = PyCObject_FromVoidPtr(descriptor, NULL); -#endif - PyDict_SetItem(cache, key, obj); - Py_DECREF(obj); - } - } - Py_DECREF(key); - return descriptor; -} - -/* - For backward compatibility only -*/ -#define SWIG_POINTER_EXCEPTION 0 -#define SWIG_arg_fail(arg) SWIG_Python_ArgFail(arg) -#define SWIG_MustGetPtr(p, type, argnum, flags) SWIG_Python_MustGetPtr(p, type, argnum, flags) - -SWIGRUNTIME int -SWIG_Python_AddErrMesg(const char* mesg, int infront) -{ - if (PyErr_Occurred()) { - PyObject *type = 0; - PyObject *value = 0; - PyObject *traceback = 0; - PyErr_Fetch(&type, &value, &traceback); - if (value) { - char *tmp; - PyObject *old_str = PyObject_Str(value); - Py_XINCREF(type); - PyErr_Clear(); - if (infront) { - PyErr_Format(type, "%s %s", mesg, tmp = SWIG_Python_str_AsChar(old_str)); - } else { - PyErr_Format(type, "%s %s", tmp = SWIG_Python_str_AsChar(old_str), mesg); - } - SWIG_Python_str_DelForPy3(tmp); - Py_DECREF(old_str); - } - return 1; - } else { - return 0; - } -} - -SWIGRUNTIME int -SWIG_Python_ArgFail(int argnum) -{ - if (PyErr_Occurred()) { - /* add information about failing argument */ - char mesg[256]; - PyOS_snprintf(mesg, sizeof(mesg), "argument number %d:", argnum); - return SWIG_Python_AddErrMesg(mesg, 1); - } else { - return 0; - } -} - -SWIGRUNTIMEINLINE const char * -SwigPyObject_GetDesc(PyObject *self) -{ - SwigPyObject *v = (SwigPyObject *)self; - swig_type_info *ty = v ? v->ty : 0; - return ty ? ty->str : ""; -} - -SWIGRUNTIME void -SWIG_Python_TypeError(const char *type, PyObject *obj) -{ - if (type) { -#if defined(SWIG_COBJECT_TYPES) - if (obj && SwigPyObject_Check(obj)) { - const char *otype = (const char *) SwigPyObject_GetDesc(obj); - if (otype) { - PyErr_Format(PyExc_TypeError, "a '%s' is expected, 'SwigPyObject(%s)' is received", - type, otype); - return; - } - } else -#endif - { - const char *otype = (obj ? obj->ob_type->tp_name : 0); - if (otype) { - PyObject *str = PyObject_Str(obj); - const char *cstr = str ? SWIG_Python_str_AsChar(str) : 0; - if (cstr) { - PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s(%s)' is received", - type, otype, cstr); - SWIG_Python_str_DelForPy3(cstr); - } else { - PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received", - type, otype); - } - Py_XDECREF(str); - return; - } - } - PyErr_Format(PyExc_TypeError, "a '%s' is expected", type); - } else { - PyErr_Format(PyExc_TypeError, "unexpected type is received"); - } -} - - -/* Convert a pointer value, signal an exception on a type mismatch */ -SWIGRUNTIME void * -SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int SWIGUNUSEDPARM(argnum), int flags) { - void *result; - if (SWIG_Python_ConvertPtr(obj, &result, ty, flags) == -1) { - PyErr_Clear(); -#if SWIG_POINTER_EXCEPTION - if (flags) { - SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj); - SWIG_Python_ArgFail(argnum); - } -#endif - } - return result; -} - -#ifdef SWIGPYTHON_BUILTIN -SWIGRUNTIME int -SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) { - PyTypeObject *tp = obj->ob_type; - PyObject *descr; - PyObject *encoded_name; - descrsetfunc f; - int res = -1; - -# ifdef Py_USING_UNICODE - if (PyString_Check(name)) { - name = PyUnicode_Decode(PyString_AsString(name), PyString_Size(name), NULL, NULL); - if (!name) - return -1; - } else if (!PyUnicode_Check(name)) -# else - if (!PyString_Check(name)) -# endif - { - PyErr_Format(PyExc_TypeError, "attribute name must be string, not '%.200s'", name->ob_type->tp_name); - return -1; - } else { - Py_INCREF(name); - } - - if (!tp->tp_dict) { - if (PyType_Ready(tp) < 0) - goto done; - } - - descr = _PyType_Lookup(tp, name); - f = NULL; - if (descr != NULL) - f = descr->ob_type->tp_descr_set; - if (!f) { - if (PyString_Check(name)) { - encoded_name = name; - Py_INCREF(name); - } else { - encoded_name = PyUnicode_AsUTF8String(name); - } - PyErr_Format(PyExc_AttributeError, "'%.100s' object has no attribute '%.200s'", tp->tp_name, PyString_AsString(encoded_name)); - Py_DECREF(encoded_name); - } else { - res = f(descr, obj, value); - } - - done: - Py_DECREF(name); - return res; -} -#endif - - -#ifdef __cplusplus -} -#endif - - - -#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0) - -#define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else - - - -/* -------- TYPES TABLE (BEGIN) -------- */ - -#define SWIGTYPE_p_FILE swig_types[0] -#define SWIGTYPE_p_char swig_types[1] -#define SWIGTYPE_p_double swig_types[2] -#define SWIGTYPE_p_doublep swig_types[3] -#define SWIGTYPE_p_int swig_types[4] -#define SWIGTYPE_p_intp swig_types[5] -#define SWIGTYPE_p_long swig_types[6] -#define SWIGTYPE_p_longp swig_types[7] -#define SWIGTYPE_p_p_char swig_types[8] -#define SWIGTYPE_p_p_void swig_types[9] -#define SWIGTYPE_p_size_t swig_types[10] -#define SWIGTYPE_p_sizetp swig_types[11] -static swig_type_info *swig_types[13]; -static swig_module_info swig_module = {swig_types, 12, 0, 0, 0, 0}; -#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name) -#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name) - -/* -------- TYPES TABLE (END) -------- */ - -#if (PY_VERSION_HEX <= 0x02000000) -# if !defined(SWIG_PYTHON_CLASSIC) -# error "This python version requires swig to be run with the '-classic' option" -# endif -#endif - -/*----------------------------------------------- - @(target):= _gribapi_swig.so - ------------------------------------------------*/ -#if PY_VERSION_HEX >= 0x03000000 -# define SWIG_init PyInit__gribapi_swig - -#else -# define SWIG_init init_gribapi_swig - -#endif -#define SWIG_name "_gribapi_swig" - -#define SWIGVERSION 0x030012 -#define SWIG_VERSION SWIGVERSION - - -#define SWIG_as_voidptr(a) (void *)((const void *)(a)) -#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) - - -typedef struct SWIGCDATA { - char *data; - size_t len; -} SWIGCDATA; - - - - - - -static SWIGCDATA cdata_void(void *ptr, size_t nelements) - - - -{ - SWIGCDATA d; - d.data = (char *) ptr; - - - - d.len = nelements; - - return d; -} - - - - - -SWIGINTERN int -SWIG_AsVal_double (PyObject *obj, double *val) -{ - int res = SWIG_TypeError; - if (PyFloat_Check(obj)) { - if (val) *val = PyFloat_AsDouble(obj); - return SWIG_OK; -#if PY_VERSION_HEX < 0x03000000 - } else if (PyInt_Check(obj)) { - if (val) *val = (double) PyInt_AsLong(obj); - return SWIG_OK; -#endif - } else if (PyLong_Check(obj)) { - double v = PyLong_AsDouble(obj); - if (!PyErr_Occurred()) { - if (val) *val = v; - return SWIG_OK; - } else { - PyErr_Clear(); - } - } -#ifdef SWIG_PYTHON_CAST_MODE - { - int dispatch = 0; - double d = PyFloat_AsDouble(obj); - if (!PyErr_Occurred()) { - if (val) *val = d; - return SWIG_AddCast(SWIG_OK); - } else { - PyErr_Clear(); - } - if (!dispatch) { - long v = PyLong_AsLong(obj); - if (!PyErr_Occurred()) { - if (val) *val = v; - return SWIG_AddCast(SWIG_AddCast(SWIG_OK)); - } else { - PyErr_Clear(); - } - } - } -#endif - return res; -} - - -#include - - -#include - - -SWIGINTERNINLINE int -SWIG_CanCastAsInteger(double *d, double min, double max) { - double x = *d; - if ((min <= x && x <= max)) { - double fx = floor(x); - double cx = ceil(x); - double rd = ((x - fx) < 0.5) ? fx : cx; /* simple rint */ - if ((errno == EDOM) || (errno == ERANGE)) { - errno = 0; - } else { - double summ, reps, diff; - if (rd < x) { - diff = x - rd; - } else if (rd > x) { - diff = rd - x; - } else { - return 1; - } - summ = rd + x; - reps = diff/summ; - if (reps < 8*DBL_EPSILON) { - *d = rd; - return 1; - } - } - } - return 0; -} - - -SWIGINTERN int -SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val) -{ -#if PY_VERSION_HEX < 0x03000000 - if (PyInt_Check(obj)) { - long v = PyInt_AsLong(obj); - if (v >= 0) { - if (val) *val = v; - return SWIG_OK; - } else { - return SWIG_OverflowError; - } - } else -#endif - if (PyLong_Check(obj)) { - unsigned long v = PyLong_AsUnsignedLong(obj); - if (!PyErr_Occurred()) { - if (val) *val = v; - return SWIG_OK; - } else { - PyErr_Clear(); - return SWIG_OverflowError; - } - } -#ifdef SWIG_PYTHON_CAST_MODE - { - int dispatch = 0; - unsigned long v = PyLong_AsUnsignedLong(obj); - if (!PyErr_Occurred()) { - if (val) *val = v; - return SWIG_AddCast(SWIG_OK); - } else { - PyErr_Clear(); - } - if (!dispatch) { - double d; - int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d)); - if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, ULONG_MAX)) { - if (val) *val = (unsigned long)(d); - return res; - } - } - } -#endif - return SWIG_TypeError; -} - - -#include -#if !defined(SWIG_NO_LLONG_MAX) -# if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__) -# define LLONG_MAX __LONG_LONG_MAX__ -# define LLONG_MIN (-LLONG_MAX - 1LL) -# define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL) -# endif -#endif - - -#if defined(LLONG_MAX) && !defined(SWIG_LONG_LONG_AVAILABLE) -# define SWIG_LONG_LONG_AVAILABLE -#endif - - -#ifdef SWIG_LONG_LONG_AVAILABLE -SWIGINTERN int -SWIG_AsVal_unsigned_SS_long_SS_long (PyObject *obj, unsigned long long *val) -{ - int res = SWIG_TypeError; - if (PyLong_Check(obj)) { - unsigned long long v = PyLong_AsUnsignedLongLong(obj); - if (!PyErr_Occurred()) { - if (val) *val = v; - return SWIG_OK; - } else { - PyErr_Clear(); - res = SWIG_OverflowError; - } - } else { - unsigned long v; - res = SWIG_AsVal_unsigned_SS_long (obj,&v); - if (SWIG_IsOK(res)) { - if (val) *val = v; - return res; - } - } -#ifdef SWIG_PYTHON_CAST_MODE - { - const double mant_max = 1LL << DBL_MANT_DIG; - double d; - res = SWIG_AsVal_double (obj,&d); - if (SWIG_IsOK(res) && !SWIG_CanCastAsInteger(&d, 0, mant_max)) - return SWIG_OverflowError; - if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, mant_max)) { - if (val) *val = (unsigned long long)(d); - return SWIG_AddCast(res); - } - res = SWIG_TypeError; - } -#endif - return res; -} -#endif - - -SWIGINTERNINLINE int -SWIG_AsVal_size_t (PyObject * obj, size_t *val) -{ - int res = SWIG_TypeError; -#ifdef SWIG_LONG_LONG_AVAILABLE - if (sizeof(size_t) <= sizeof(unsigned long)) { -#endif - unsigned long v; - res = SWIG_AsVal_unsigned_SS_long (obj, val ? &v : 0); - if (SWIG_IsOK(res) && val) *val = (size_t)(v); -#ifdef SWIG_LONG_LONG_AVAILABLE - } else if (sizeof(size_t) <= sizeof(unsigned long long)) { - unsigned long long v; - res = SWIG_AsVal_unsigned_SS_long_SS_long (obj, val ? &v : 0); - if (SWIG_IsOK(res) && val) *val = (size_t)(v); - } -#endif - return res; -} - - -SWIGINTERN swig_type_info* -SWIG_pchar_descriptor(void) -{ - static int init = 0; - static swig_type_info* info = 0; - if (!init) { - info = SWIG_TypeQuery("_p_char"); - init = 1; - } - return info; -} - - -SWIGINTERNINLINE PyObject * -SWIG_FromCharPtrAndSize(const char* carray, size_t size) -{ - if (carray) { - if (size > INT_MAX) { - swig_type_info* pchar_descriptor = SWIG_pchar_descriptor(); - return pchar_descriptor ? - SWIG_InternalNewPointerObj((char *)(carray), pchar_descriptor, 0) : SWIG_Py_Void(); - } else { -#if PY_VERSION_HEX >= 0x03000000 -#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR) - return PyBytes_FromStringAndSize(carray, (Py_ssize_t)(size)); -#else -#if PY_VERSION_HEX >= 0x03010000 - return PyUnicode_DecodeUTF8(carray, (Py_ssize_t)(size), "surrogateescape"); -#else - return PyUnicode_FromStringAndSize(carray, (Py_ssize_t)(size)); -#endif -#endif -#else - return PyString_FromStringAndSize(carray, (Py_ssize_t)(size)); -#endif - } - } else { - return SWIG_Py_Void(); - } -} - - -SWIGINTERN int -SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc) -{ -#if PY_VERSION_HEX>=0x03000000 -#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR) - if (PyBytes_Check(obj)) -#else - if (PyUnicode_Check(obj)) -#endif -#else - if (PyString_Check(obj)) -#endif - { - char *cstr; Py_ssize_t len; -#if PY_VERSION_HEX>=0x03000000 -#if !defined(SWIG_PYTHON_STRICT_BYTE_CHAR) - if (!alloc && cptr) { - /* We can't allow converting without allocation, since the internal - representation of string in Python 3 is UCS-2/UCS-4 but we require - a UTF-8 representation. - TODO(bhy) More detailed explanation */ - return SWIG_RuntimeError; - } - obj = PyUnicode_AsUTF8String(obj); - if(alloc) *alloc = SWIG_NEWOBJ; -#endif - PyBytes_AsStringAndSize(obj, &cstr, &len); -#else - PyString_AsStringAndSize(obj, &cstr, &len); -#endif - if (cptr) { - if (alloc) { - /* - In python the user should not be able to modify the inner - string representation. To warranty that, if you define - SWIG_PYTHON_SAFE_CSTRINGS, a new/copy of the python string - buffer is always returned. - - The default behavior is just to return the pointer value, - so, be careful. - */ -#if defined(SWIG_PYTHON_SAFE_CSTRINGS) - if (*alloc != SWIG_OLDOBJ) -#else - if (*alloc == SWIG_NEWOBJ) -#endif - { - *cptr = (char *)memcpy(malloc((len + 1)*sizeof(char)), cstr, sizeof(char)*(len + 1)); - *alloc = SWIG_NEWOBJ; - } else { - *cptr = cstr; - *alloc = SWIG_OLDOBJ; - } - } else { -#if PY_VERSION_HEX>=0x03000000 -#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR) - *cptr = PyBytes_AsString(obj); -#else - assert(0); /* Should never reach here with Unicode strings in Python 3 */ -#endif -#else - *cptr = SWIG_Python_str_AsChar(obj); -#endif - } - } - if (psize) *psize = len + 1; -#if PY_VERSION_HEX>=0x03000000 && !defined(SWIG_PYTHON_STRICT_BYTE_CHAR) - Py_XDECREF(obj); -#endif - return SWIG_OK; - } else { -#if defined(SWIG_PYTHON_2_UNICODE) -#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR) -#error "Cannot use both SWIG_PYTHON_2_UNICODE and SWIG_PYTHON_STRICT_BYTE_CHAR at once" -#endif -#if PY_VERSION_HEX<0x03000000 - if (PyUnicode_Check(obj)) { - char *cstr; Py_ssize_t len; - if (!alloc && cptr) { - return SWIG_RuntimeError; - } - obj = PyUnicode_AsUTF8String(obj); - if (PyString_AsStringAndSize(obj, &cstr, &len) != -1) { - if (cptr) { - if (alloc) *alloc = SWIG_NEWOBJ; - *cptr = (char *)memcpy(malloc((len + 1)*sizeof(char)), cstr, sizeof(char)*(len + 1)); - } - if (psize) *psize = len + 1; - - Py_XDECREF(obj); - return SWIG_OK; - } else { - Py_XDECREF(obj); - } - } -#endif -#endif - - swig_type_info* pchar_descriptor = SWIG_pchar_descriptor(); - if (pchar_descriptor) { - void* vptr = 0; - if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) { - if (cptr) *cptr = (char *) vptr; - if (psize) *psize = vptr ? (strlen((char *)vptr) + 1) : 0; - if (alloc) *alloc = SWIG_OLDOBJ; - return SWIG_OK; - } - } - } - return SWIG_TypeError; -} - - -SWIGINTERNINLINE PyObject* - SWIG_From_int (int value) -{ - return PyInt_FromLong((long) value); -} - - -#define SWIG_FILE_WITH_INIT -#include "grib_interface.h" - - -#ifndef SWIG_FILE_WITH_INIT -#define NO_IMPORT_ARRAY -#endif -#include "stdio.h" -#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION -#include - - -typedef int intp; - -SWIGINTERN intp *new_intp(void){ - return (int *)calloc(1,sizeof(int)); - } -SWIGINTERN void delete_intp(intp *self){ - if (self) free((char*)self); - } - -SWIGINTERN int -SWIG_AsVal_long (PyObject *obj, long* val) -{ -#if PY_VERSION_HEX < 0x03000000 - if (PyInt_Check(obj)) { - if (val) *val = PyInt_AsLong(obj); - return SWIG_OK; - } else -#endif - if (PyLong_Check(obj)) { - long v = PyLong_AsLong(obj); - if (!PyErr_Occurred()) { - if (val) *val = v; - return SWIG_OK; - } else { - PyErr_Clear(); - return SWIG_OverflowError; - } - } -#ifdef SWIG_PYTHON_CAST_MODE - { - int dispatch = 0; - long v = PyInt_AsLong(obj); - if (!PyErr_Occurred()) { - if (val) *val = v; - return SWIG_AddCast(SWIG_OK); - } else { - PyErr_Clear(); - } - if (!dispatch) { - double d; - int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d)); - if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) { - if (val) *val = (long)(d); - return res; - } - } - } -#endif - return SWIG_TypeError; -} - - -SWIGINTERN int -SWIG_AsVal_int (PyObject * obj, int *val) -{ - long v; - int res = SWIG_AsVal_long (obj, &v); - if (SWIG_IsOK(res)) { - if ((v < INT_MIN || v > INT_MAX)) { - return SWIG_OverflowError; - } else { - if (val) *val = (int)(v); - } - } - return res; -} - -SWIGINTERN void intp_assign(intp *self,int value){ - *self = value; - } -SWIGINTERN int intp_value(intp *self){ - return *self; - } -SWIGINTERN int *intp_cast(intp *self){ - return self; - } -SWIGINTERN intp *intp_frompointer(int *t){ - return (intp *) t; - } - -typedef size_t sizetp; - -SWIGINTERN sizetp *new_sizetp(void){ - return (size_t *)calloc(1,sizeof(size_t)); - } -SWIGINTERN void delete_sizetp(sizetp *self){ - if (self) free((char*)self); - } -SWIGINTERN void sizetp_assign(sizetp *self,size_t value){ - *self = value; - } -SWIGINTERN size_t sizetp_value(sizetp *self){ - return *self; - } - - #define SWIG_From_long PyInt_FromLong - - -SWIGINTERNINLINE PyObject* -SWIG_From_unsigned_SS_long (unsigned long value) -{ - return (value > LONG_MAX) ? - PyLong_FromUnsignedLong(value) : PyInt_FromLong((long)(value)); -} - - -#ifdef SWIG_LONG_LONG_AVAILABLE -SWIGINTERNINLINE PyObject* -SWIG_From_unsigned_SS_long_SS_long (unsigned long long value) -{ - return (value > LONG_MAX) ? - PyLong_FromUnsignedLongLong(value) : PyInt_FromLong((long)(value)); -} -#endif - - -SWIGINTERNINLINE PyObject * -SWIG_From_size_t (size_t value) -{ -#ifdef SWIG_LONG_LONG_AVAILABLE - if (sizeof(size_t) <= sizeof(unsigned long)) { -#endif - return SWIG_From_unsigned_SS_long ((unsigned long)(value)); -#ifdef SWIG_LONG_LONG_AVAILABLE - } else { - /* assume sizeof(size_t) <= sizeof(unsigned long long) */ - return SWIG_From_unsigned_SS_long_SS_long ((unsigned long long)(value)); - } -#endif -} - -SWIGINTERN size_t *sizetp_cast(sizetp *self){ - return self; - } -SWIGINTERN sizetp *sizetp_frompointer(size_t *t){ - return (sizetp *) t; - } - -typedef long longp; - -SWIGINTERN longp *new_longp(void){ - return (long *)calloc(1,sizeof(long)); - } -SWIGINTERN void delete_longp(longp *self){ - if (self) free((char*)self); - } -SWIGINTERN void longp_assign(longp *self,long value){ - *self = value; - } -SWIGINTERN long longp_value(longp *self){ - return *self; - } -SWIGINTERN long *longp_cast(longp *self){ - return self; - } -SWIGINTERN longp *longp_frompointer(long *t){ - return (longp *) t; - } - -typedef double doublep; - -SWIGINTERN doublep *new_doublep(void){ - return (double *)calloc(1,sizeof(double)); - } -SWIGINTERN void delete_doublep(doublep *self){ - if (self) free((char*)self); - } -SWIGINTERN void doublep_assign(doublep *self,double value){ - *self = value; - } -SWIGINTERN double doublep_value(doublep *self){ - return *self; - } - - #define SWIG_From_double PyFloat_FromDouble - -SWIGINTERN double *doublep_cast(doublep *self){ - return self; - } -SWIGINTERN doublep *doublep_frompointer(double *t){ - return (doublep *) t; - } - - static double *new_doubleArray(size_t nelements) { - return (double *)calloc(nelements, sizeof(double)); - } - - static void delete_doubleArray(double *ary) { - free((char*)ary); - } - - static double doubleArray_getitem(double *ary, size_t index) { - return ary[index]; - } - static void doubleArray_setitem(double *ary, size_t index, double value) { - ary[index] = value; - } - - - static long *new_longArray(size_t nelements) { - return (long *)calloc(nelements, sizeof(long)); - } - - static void delete_longArray(long *ary) { - free((char*)ary); - } - - static long longArray_getitem(long *ary, size_t index) { - return ary[index]; - } - static void longArray_setitem(long *ary, size_t index, long value) { - ary[index] = value; - } - - - static int *new_intArray(size_t nelements) { - return (int *)calloc(nelements, sizeof(int)); - } - - static void delete_intArray(int *ary) { - free((char*)ary); - } - - static int intArray_getitem(int *ary, size_t index) { - return ary[index]; - } - static void intArray_setitem(int *ary, size_t index, int value) { - ary[index] = value; - } - - - static char* *new_stringArray(size_t nelements) { - return (char* *)calloc(nelements, sizeof(char*)); - } - - static void delete_stringArray(char* *ary) { - free((char*)ary); - } - - static char* stringArray_getitem(char* *ary, size_t index) { - return ary[index]; - } - static void stringArray_setitem(char* *ary, size_t index, char* value) { - ary[index] = value; - } - - -SWIGINTERNINLINE PyObject * -SWIG_FromCharPtr(const char *cptr) -{ - return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0)); -} - - - - - -//void with_numpy() { -// return; -//} -int grib_set_double_ndarray(int* gid, char* key, double* dpin_val, int dpin_val_dim1) { - return grib_c_set_real8_array(gid,key,dpin_val,&dpin_val_dim1); -} -int grib_set_long_ndarray(int* gid, char* key, long* lpin_val, int lpin_val_dim1) { - return grib_c_set_long_array(gid,key,lpin_val,&lpin_val_dim1); -} -int grib_get_double_ndarray(int* gid, char* key, double* dpout_val, int dpout_val_dim1) { - return grib_c_get_real8_array(gid,key,dpout_val,&dpout_val_dim1); -} -int grib_get_long_ndarray(int* gid, char* key, long* lpout_val, int lpout_val_dim1) { - return grib_c_get_long_array(gid,key,lpout_val,&lpout_val_dim1); -} -int grib_get_double_ndelements(int* gid, char* key, int* ipin_index, int ipin_index_dim1, double* dpout_val, int dpout_val_dim1) { - return grib_c_get_real8_elements(gid,key,ipin_index,dpout_val,&dpout_val_dim1); -} - - -#if NPY_API_VERSION < 0x00000007 -#define NPY_ARRAY_DEFAULT NPY_DEFAULT -#define NPY_ARRAY_FARRAY NPY_FARRAY -#define NPY_FORTRANORDER NPY_FORTRAN -#endif - - -/* Macros to extract array attributes. - */ -#if NPY_API_VERSION < 0x00000007 -#define is_array(a) ((a) && PyArray_Check((PyArrayObject*)a)) -#define array_type(a) (int)(PyArray_TYPE((PyArrayObject*)a)) -#define array_numdims(a) (((PyArrayObject*)a)->nd) -#define array_dimensions(a) (((PyArrayObject*)a)->dimensions) -#define array_size(a,i) (((PyArrayObject*)a)->dimensions[i]) -#define array_strides(a) (((PyArrayObject*)a)->strides) -#define array_stride(a,i) (((PyArrayObject*)a)->strides[i]) -#define array_data(a) (((PyArrayObject*)a)->data) -#define array_descr(a) (((PyArrayObject*)a)->descr) -#define array_flags(a) (((PyArrayObject*)a)->flags) -#define array_clearflags(a,f) (((PyArrayObject*)a)->flags) &= ~f -#define array_enableflags(a,f) (((PyArrayObject*)a)->flags) = f -#define array_is_fortran(a) (PyArray_ISFORTRAN((PyArrayObject*)a)) -#else -#define is_array(a) ((a) && PyArray_Check(a)) -#define array_type(a) PyArray_TYPE((PyArrayObject*)a) -#define array_numdims(a) PyArray_NDIM((PyArrayObject*)a) -#define array_dimensions(a) PyArray_DIMS((PyArrayObject*)a) -#define array_strides(a) PyArray_STRIDES((PyArrayObject*)a) -#define array_stride(a,i) PyArray_STRIDE((PyArrayObject*)a,i) -#define array_size(a,i) PyArray_DIM((PyArrayObject*)a,i) -#define array_data(a) PyArray_DATA((PyArrayObject*)a) -#define array_descr(a) PyArray_DESCR((PyArrayObject*)a) -#define array_flags(a) PyArray_FLAGS((PyArrayObject*)a) -#define array_enableflags(a,f) PyArray_ENABLEFLAGS((PyArrayObject*)a,f) -#define array_clearflags(a,f) PyArray_CLEARFLAGS((PyArrayObject*)a,f) -#define array_is_fortran(a) (PyArray_IS_F_CONTIGUOUS((PyArrayObject*)a)) -#endif -#define array_is_contiguous(a) (PyArray_ISCONTIGUOUS((PyArrayObject*)a)) -#define array_is_native(a) (PyArray_ISNOTSWAPPED((PyArrayObject*)a)) - - - /* Given a PyObject, return a string describing its type. - */ - const char* pytype_string(PyObject* py_obj) - { - if (py_obj == NULL ) return "C NULL value"; - if (py_obj == Py_None ) return "Python None" ; - if (PyCallable_Check(py_obj)) return "callable" ; - if (PyString_Check( py_obj)) return "string" ; - if (PyInt_Check( py_obj)) return "int" ; - if (PyFloat_Check( py_obj)) return "float" ; - if (PyDict_Check( py_obj)) return "dict" ; - if (PyList_Check( py_obj)) return "list" ; - if (PyTuple_Check( py_obj)) return "tuple" ; -#if PY_MAJOR_VERSION < 3 - if (PyFile_Check( py_obj)) return "file" ; - if (PyModule_Check( py_obj)) return "module" ; - if (PyInstance_Check(py_obj)) return "instance" ; -#endif - - return "unknown type"; - } - - /* Given a NumPy typecode, return a string describing the type. - */ - const char* typecode_string(int typecode) - { - static const char* type_names[25] = {"bool", - "byte", - "unsigned byte", - "short", - "unsigned short", - "int", - "unsigned int", - "long", - "unsigned long", - "long long", - "unsigned long long", - "float", - "double", - "long double", - "complex float", - "complex double", - "complex long double", - "object", - "string", - "unicode", - "void", - "ntypes", - "notype", - "char", - "unknown"}; - return typecode < 24 ? type_names[typecode] : type_names[24]; - } - - /* Make sure input has correct numpy type. This now just calls - PyArray_EquivTypenums(). - */ - int type_match(int actual_type, - int desired_type) - { - return PyArray_EquivTypenums(actual_type, desired_type); - } - -#ifdef SWIGPY_USE_CAPSULE - void free_cap(PyObject * cap) - { - void* array = (void*) PyCapsule_GetPointer(cap,SWIGPY_CAPSULE_NAME); - if (array != NULL) free(array); - } -#endif - - - - - /* Given a PyObject pointer, cast it to a PyArrayObject pointer if - * legal. If not, set the python error string appropriately and - * return NULL. - */ - PyArrayObject* obj_to_array_no_conversion(PyObject* input, - int typecode) - { - PyArrayObject* ary = NULL; - if (is_array(input) && (typecode == NPY_NOTYPE || - PyArray_EquivTypenums(array_type(input), typecode))) - { - ary = (PyArrayObject*) input; - } - else if is_array(input) - { - const char* desired_type = typecode_string(typecode); - const char* actual_type = typecode_string(array_type(input)); - PyErr_Format(PyExc_TypeError, - "Array of type '%s' required. Array of type '%s' given", - desired_type, actual_type); - ary = NULL; - } - else - { - const char* desired_type = typecode_string(typecode); - const char* actual_type = pytype_string(input); - PyErr_Format(PyExc_TypeError, - "Array of type '%s' required. A '%s' was given", - desired_type, - actual_type); - ary = NULL; - } - return ary; - } - - /* Convert the given PyObject to a NumPy array with the given - * typecode. On success, return a valid PyArrayObject* with the - * correct type. On failure, the python error string will be set and - * the routine returns NULL. - */ - PyArrayObject* obj_to_array_allow_conversion(PyObject* input, - int typecode, - int* is_new_object) - { - PyArrayObject* ary = NULL; - PyObject* py_obj; - if (is_array(input) && (typecode == NPY_NOTYPE || - PyArray_EquivTypenums(array_type(input),typecode))) - { - ary = (PyArrayObject*) input; - *is_new_object = 0; - } - else - { - py_obj = PyArray_FROMANY(input, typecode, 0, 0, NPY_ARRAY_DEFAULT); - /* If NULL, PyArray_FromObject will have set python error value.*/ - ary = (PyArrayObject*) py_obj; - *is_new_object = 1; - } - return ary; - } - - /* Given a PyArrayObject, check to see if it is contiguous. If so, - * return the input pointer and flag it as not a new object. If it is - * not contiguous, create a new PyArrayObject using the original data, - * flag it as a new object and return the pointer. - */ - PyArrayObject* make_contiguous(PyArrayObject* ary, - int* is_new_object, - int min_dims, - int max_dims) - { - PyArrayObject* result; - if (array_is_contiguous(ary)) - { - result = ary; - *is_new_object = 0; - } - else - { - result = (PyArrayObject*) PyArray_ContiguousFromObject((PyObject*)ary, - array_type(ary), - min_dims, - max_dims); - *is_new_object = 1; - } - return result; - } - - /* Given a PyArrayObject, check to see if it is Fortran-contiguous. - * If so, return the input pointer, but do not flag it as not a new - * object. If it is not Fortran-contiguous, create a new - * PyArrayObject using the original data, flag it as a new object - * and return the pointer. - */ - PyArrayObject* make_fortran(PyArrayObject* ary, - int* is_new_object) - { - PyArrayObject* result; - if (array_is_fortran(ary)) - { - result = ary; - *is_new_object = 0; - } - else - { - Py_INCREF(array_descr(ary)); - result = (PyArrayObject*) PyArray_FromArray(ary, - array_descr(ary), -#if NPY_API_VERSION < 0x00000007 - NPY_FORTRANORDER); -#else - NPY_ARRAY_F_CONTIGUOUS); -#endif - *is_new_object = 1; - } - return result; - } - - /* Convert a given PyObject to a contiguous PyArrayObject of the - * specified type. If the input object is not a contiguous - * PyArrayObject, a new one will be created and the new object flag - * will be set. - */ - PyArrayObject* obj_to_array_contiguous_allow_conversion(PyObject* input, - int typecode, - int* is_new_object) - { - int is_new1 = 0; - int is_new2 = 0; - PyArrayObject* ary2; - PyArrayObject* ary1 = obj_to_array_allow_conversion(input, - typecode, - &is_new1); - if (ary1) - { - ary2 = make_contiguous(ary1, &is_new2, 0, 0); - if ( is_new1 && is_new2) - { - Py_DECREF(ary1); - } - ary1 = ary2; - } - *is_new_object = is_new1 || is_new2; - return ary1; - } - - /* Convert a given PyObject to a Fortran-ordered PyArrayObject of the - * specified type. If the input object is not a Fortran-ordered - * PyArrayObject, a new one will be created and the new object flag - * will be set. - */ - PyArrayObject* obj_to_array_fortran_allow_conversion(PyObject* input, - int typecode, - int* is_new_object) - { - int is_new1 = 0; - int is_new2 = 0; - PyArrayObject* ary2; - PyArrayObject* ary1 = obj_to_array_allow_conversion(input, - typecode, - &is_new1); - if (ary1) - { - ary2 = make_fortran(ary1, &is_new2); - if (is_new1 && is_new2) - { - Py_DECREF(ary1); - } - ary1 = ary2; - } - *is_new_object = is_new1 || is_new2; - return ary1; - } - - - /* Test whether a python object is contiguous. If array is - * contiguous, return 1. Otherwise, set the python error string and - * return 0. - */ - int require_contiguous(PyArrayObject* ary) - { - int contiguous = 1; - if (!array_is_contiguous(ary)) - { - PyErr_SetString(PyExc_TypeError, - "Array must be contiguous. A non-contiguous array was given"); - contiguous = 0; - } - return contiguous; - } - - /* Test whether a python object is (C_ or F_) contiguous. If array is - * contiguous, return 1. Otherwise, set the python error string and - * return 0. - */ - int require_c_or_f_contiguous(PyArrayObject* ary) - { - int contiguous = 1; - if (!(array_is_contiguous(ary) || array_is_fortran(ary))) - { - PyErr_SetString(PyExc_TypeError, - "Array must be contiguous (C_ or F_). A non-contiguous array was given"); - contiguous = 0; - } - return contiguous; - } - - /* Require that a numpy array is not byte-swapped. If the array is - * not byte-swapped, return 1. Otherwise, set the python error string - * and return 0. - */ - int require_native(PyArrayObject* ary) - { - int native = 1; - if (!array_is_native(ary)) - { - PyErr_SetString(PyExc_TypeError, - "Array must have native byteorder. " - "A byte-swapped array was given"); - native = 0; - } - return native; - } - - /* Require the given PyArrayObject to have a specified number of - * dimensions. If the array has the specified number of dimensions, - * return 1. Otherwise, set the python error string and return 0. - */ - int require_dimensions(PyArrayObject* ary, - int exact_dimensions) - { - int success = 1; - if (array_numdims(ary) != exact_dimensions) - { - PyErr_Format(PyExc_TypeError, - "Array must have %d dimensions. Given array has %d dimensions", - exact_dimensions, - array_numdims(ary)); - success = 0; - } - return success; - } - - /* Require the given PyArrayObject to have one of a list of specified - * number of dimensions. If the array has one of the specified number - * of dimensions, return 1. Otherwise, set the python error string - * and return 0. - */ - int require_dimensions_n(PyArrayObject* ary, - int* exact_dimensions, - int n) - { - int success = 0; - int i; - char dims_str[255] = ""; - char s[255]; - for (i = 0; i < n && !success; i++) - { - if (array_numdims(ary) == exact_dimensions[i]) - { - success = 1; - } - } - if (!success) - { - for (i = 0; i < n-1; i++) - { - sprintf(s, "%d, ", exact_dimensions[i]); - strcat(dims_str,s); - } - sprintf(s, " or %d", exact_dimensions[n-1]); - strcat(dims_str,s); - PyErr_Format(PyExc_TypeError, - "Array must have %s dimensions. Given array has %d dimensions", - dims_str, - array_numdims(ary)); - } - return success; - } - - /* Require the given PyArrayObject to have a specified shape. If the - * array has the specified shape, return 1. Otherwise, set the python - * error string and return 0. - */ - int require_size(PyArrayObject* ary, - npy_intp* size, - int n) - { - int i; - int success = 1; - size_t len; - char desired_dims[255] = "["; - char s[255]; - char actual_dims[255] = "["; - for(i=0; i < n;i++) - { - if (size[i] != -1 && size[i] != array_size(ary,i)) - { - success = 0; - } - } - if (!success) - { - for (i = 0; i < n; i++) - { - if (size[i] == -1) - { - sprintf(s, "*,"); - } - else - { - sprintf(s, "%ld,", (long int)size[i]); - } - strcat(desired_dims,s); - } - len = strlen(desired_dims); - desired_dims[len-1] = ']'; - for (i = 0; i < n; i++) - { - sprintf(s, "%ld,", (long int)array_size(ary,i)); - strcat(actual_dims,s); - } - len = strlen(actual_dims); - actual_dims[len-1] = ']'; - PyErr_Format(PyExc_TypeError, - "Array must have shape of %s. Given array has shape of %s", - desired_dims, - actual_dims); - } - return success; - } - - /* Require the given PyArrayObject to to be Fortran ordered. If the - * the PyArrayObject is already Fortran ordered, do nothing. Else, - * set the Fortran ordering flag and recompute the strides. - */ - int require_fortran(PyArrayObject* ary) - { - int success = 1; - int nd = array_numdims(ary); - int i; - npy_intp * strides = array_strides(ary); - if (array_is_fortran(ary)) return success; - int n_non_one = 0; - /* Set the Fortran ordered flag */ - const npy_intp *dims = array_dimensions(ary); - for (i=0; i < nd; ++i) - n_non_one += (dims[i] != 1) ? 1 : 0; - if (n_non_one > 1) - array_clearflags(ary,NPY_ARRAY_CARRAY); - array_enableflags(ary,NPY_ARRAY_FARRAY); - /* Recompute the strides */ - strides[0] = strides[nd-1]; - for (i=1; i < nd; ++i) - strides[i] = strides[i-1] * array_size(ary,i-1); - return success; - } - - - -#ifdef __cplusplus -extern "C" { -#endif -SWIGINTERN PyObject *_wrap_cdata(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - void *arg1 = (void *) 0 ; - size_t arg2 = (size_t) 1 ; - int res1 ; - size_t val2 ; - int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - SWIGCDATA result; - - if (!PyArg_ParseTuple(args,(char *)"O|O:cdata",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cdata" "', argument " "1"" of type '" "void *""'"); - } - if (obj1) { - ecode2 = SWIG_AsVal_size_t(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cdata" "', argument " "2"" of type '" "size_t""'"); - } - arg2 = (size_t)(val2); - } - result = cdata_void(arg1,arg2); - resultobj = SWIG_FromCharPtrAndSize((&result)->data,(&result)->len); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_memmove(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - void *arg1 = (void *) 0 ; - void *arg2 = (void *) 0 ; - size_t arg3 ; - int res1 ; - int res2 ; - char *buf2 = 0 ; - size_t size2 = 0 ; - int alloc2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"OO:memmove",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "memmove" "', argument " "1"" of type '" "void *""'"); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, &size2, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "memmove" "', argument " "2"" of type '" "void const *""'"); - } - arg2 = (void *)(buf2); - arg3 = (size_t)(size2); - memmove(arg1,(void const *)arg2,arg3); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_new_intp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - intp *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)":new_intp")) SWIG_fail; - result = (intp *)new_intp(); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_intp, SWIG_POINTER_NEW | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_delete_intp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - intp *arg1 = (intp *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:delete_intp",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_intp, SWIG_POINTER_DISOWN | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_intp" "', argument " "1"" of type '" "intp *""'"); - } - arg1 = (intp *)(argp1); - delete_intp(arg1); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_intp_assign(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - intp *arg1 = (intp *) 0 ; - int arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - int val2 ; - int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"OO:intp_assign",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_intp, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "intp_assign" "', argument " "1"" of type '" "intp *""'"); - } - arg1 = (intp *)(argp1); - ecode2 = SWIG_AsVal_int(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "intp_assign" "', argument " "2"" of type '" "int""'"); - } - arg2 = (int)(val2); - intp_assign(arg1,arg2); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_intp_value(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - intp *arg1 = (intp *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"O:intp_value",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_intp, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "intp_value" "', argument " "1"" of type '" "intp *""'"); - } - arg1 = (intp *)(argp1); - result = (int)intp_value(arg1); - resultobj = SWIG_From_int((int)(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_intp_cast(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - intp *arg1 = (intp *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - int *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:intp_cast",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_intp, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "intp_cast" "', argument " "1"" of type '" "intp *""'"); - } - arg1 = (intp *)(argp1); - result = (int *)intp_cast(arg1); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_int, 0 | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_intp_frompointer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - intp *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:intp_frompointer",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_int, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "intp_frompointer" "', argument " "1"" of type '" "int *""'"); - } - arg1 = (int *)(argp1); - result = (intp *)intp_frompointer(arg1); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_intp, 0 | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *intp_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *obj; - if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL; - SWIG_TypeNewClientData(SWIGTYPE_p_intp, SWIG_NewClientData(obj)); - return SWIG_Py_Void(); -} - -SWIGINTERN PyObject *_wrap_new_sizetp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - sizetp *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)":new_sizetp")) SWIG_fail; - result = (sizetp *)new_sizetp(); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_sizetp, SWIG_POINTER_NEW | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_delete_sizetp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - sizetp *arg1 = (sizetp *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:delete_sizetp",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_sizetp, SWIG_POINTER_DISOWN | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_sizetp" "', argument " "1"" of type '" "sizetp *""'"); - } - arg1 = (sizetp *)(argp1); - delete_sizetp(arg1); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_sizetp_assign(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - sizetp *arg1 = (sizetp *) 0 ; - size_t arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - size_t val2 ; - int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"OO:sizetp_assign",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_sizetp, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "sizetp_assign" "', argument " "1"" of type '" "sizetp *""'"); - } - arg1 = (sizetp *)(argp1); - ecode2 = SWIG_AsVal_size_t(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "sizetp_assign" "', argument " "2"" of type '" "size_t""'"); - } - arg2 = (size_t)(val2); - sizetp_assign(arg1,arg2); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_sizetp_value(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - sizetp *arg1 = (sizetp *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - size_t result; - - if (!PyArg_ParseTuple(args,(char *)"O:sizetp_value",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_sizetp, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "sizetp_value" "', argument " "1"" of type '" "sizetp *""'"); - } - arg1 = (sizetp *)(argp1); - result = sizetp_value(arg1); - resultobj = SWIG_From_size_t((size_t)(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_sizetp_cast(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - sizetp *arg1 = (sizetp *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - size_t *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:sizetp_cast",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_sizetp, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "sizetp_cast" "', argument " "1"" of type '" "sizetp *""'"); - } - arg1 = (sizetp *)(argp1); - result = (size_t *)sizetp_cast(arg1); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_size_t, 0 | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_sizetp_frompointer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - size_t *arg1 = (size_t *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - sizetp *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:sizetp_frompointer",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_size_t, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "sizetp_frompointer" "', argument " "1"" of type '" "size_t *""'"); - } - arg1 = (size_t *)(argp1); - result = (sizetp *)sizetp_frompointer(arg1); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_sizetp, 0 | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *sizetp_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *obj; - if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL; - SWIG_TypeNewClientData(SWIGTYPE_p_sizetp, SWIG_NewClientData(obj)); - return SWIG_Py_Void(); -} - -SWIGINTERN PyObject *_wrap_new_longp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - longp *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)":new_longp")) SWIG_fail; - result = (longp *)new_longp(); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_longp, SWIG_POINTER_NEW | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_delete_longp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - longp *arg1 = (longp *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:delete_longp",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_longp, SWIG_POINTER_DISOWN | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_longp" "', argument " "1"" of type '" "longp *""'"); - } - arg1 = (longp *)(argp1); - delete_longp(arg1); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_longp_assign(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - longp *arg1 = (longp *) 0 ; - long arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - long val2 ; - int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"OO:longp_assign",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_longp, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "longp_assign" "', argument " "1"" of type '" "longp *""'"); - } - arg1 = (longp *)(argp1); - ecode2 = SWIG_AsVal_long(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "longp_assign" "', argument " "2"" of type '" "long""'"); - } - arg2 = (long)(val2); - longp_assign(arg1,arg2); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_longp_value(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - longp *arg1 = (longp *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - long result; - - if (!PyArg_ParseTuple(args,(char *)"O:longp_value",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_longp, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "longp_value" "', argument " "1"" of type '" "longp *""'"); - } - arg1 = (longp *)(argp1); - result = (long)longp_value(arg1); - resultobj = SWIG_From_long((long)(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_longp_cast(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - longp *arg1 = (longp *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - long *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:longp_cast",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_longp, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "longp_cast" "', argument " "1"" of type '" "longp *""'"); - } - arg1 = (longp *)(argp1); - result = (long *)longp_cast(arg1); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_long, 0 | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_longp_frompointer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - long *arg1 = (long *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - longp *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:longp_frompointer",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_long, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "longp_frompointer" "', argument " "1"" of type '" "long *""'"); - } - arg1 = (long *)(argp1); - result = (longp *)longp_frompointer(arg1); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_longp, 0 | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *longp_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *obj; - if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL; - SWIG_TypeNewClientData(SWIGTYPE_p_longp, SWIG_NewClientData(obj)); - return SWIG_Py_Void(); -} - -SWIGINTERN PyObject *_wrap_new_doublep(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - doublep *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)":new_doublep")) SWIG_fail; - result = (doublep *)new_doublep(); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_doublep, SWIG_POINTER_NEW | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_delete_doublep(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - doublep *arg1 = (doublep *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:delete_doublep",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_doublep, SWIG_POINTER_DISOWN | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_doublep" "', argument " "1"" of type '" "doublep *""'"); - } - arg1 = (doublep *)(argp1); - delete_doublep(arg1); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_doublep_assign(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - doublep *arg1 = (doublep *) 0 ; - double arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - double val2 ; - int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"OO:doublep_assign",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_doublep, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "doublep_assign" "', argument " "1"" of type '" "doublep *""'"); - } - arg1 = (doublep *)(argp1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "doublep_assign" "', argument " "2"" of type '" "double""'"); - } - arg2 = (double)(val2); - doublep_assign(arg1,arg2); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_doublep_value(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - doublep *arg1 = (doublep *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - double result; - - if (!PyArg_ParseTuple(args,(char *)"O:doublep_value",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_doublep, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "doublep_value" "', argument " "1"" of type '" "doublep *""'"); - } - arg1 = (doublep *)(argp1); - result = (double)doublep_value(arg1); - resultobj = SWIG_From_double((double)(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_doublep_cast(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - doublep *arg1 = (doublep *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - double *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:doublep_cast",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_doublep, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "doublep_cast" "', argument " "1"" of type '" "doublep *""'"); - } - arg1 = (doublep *)(argp1); - result = (double *)doublep_cast(arg1); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_double, 0 | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_doublep_frompointer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - double *arg1 = (double *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - doublep *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:doublep_frompointer",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_double, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "doublep_frompointer" "', argument " "1"" of type '" "double *""'"); - } - arg1 = (double *)(argp1); - result = (doublep *)doublep_frompointer(arg1); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_doublep, 0 | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *doublep_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *obj; - if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL; - SWIG_TypeNewClientData(SWIGTYPE_p_doublep, SWIG_NewClientData(obj)); - return SWIG_Py_Void(); -} - -SWIGINTERN PyObject *_wrap_new_doubleArray(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - size_t arg1 ; - size_t val1 ; - int ecode1 = 0 ; - PyObject * obj0 = 0 ; - double *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:new_doubleArray",&obj0)) SWIG_fail; - ecode1 = SWIG_AsVal_size_t(obj0, &val1); - if (!SWIG_IsOK(ecode1)) { - SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_doubleArray" "', argument " "1"" of type '" "size_t""'"); - } - arg1 = (size_t)(val1); - result = (double *)new_doubleArray(arg1); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_double, 0 | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_delete_doubleArray(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - double *arg1 = (double *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:delete_doubleArray",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_double, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_doubleArray" "', argument " "1"" of type '" "double *""'"); - } - arg1 = (double *)(argp1); - delete_doubleArray(arg1); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_doubleArray_getitem(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - double *arg1 = (double *) 0 ; - size_t arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - size_t val2 ; - int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - double result; - - if (!PyArg_ParseTuple(args,(char *)"OO:doubleArray_getitem",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_double, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "doubleArray_getitem" "', argument " "1"" of type '" "double *""'"); - } - arg1 = (double *)(argp1); - ecode2 = SWIG_AsVal_size_t(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "doubleArray_getitem" "', argument " "2"" of type '" "size_t""'"); - } - arg2 = (size_t)(val2); - result = (double)doubleArray_getitem(arg1,arg2); - resultobj = SWIG_From_double((double)(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_doubleArray_setitem(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - double *arg1 = (double *) 0 ; - size_t arg2 ; - double arg3 ; - void *argp1 = 0 ; - int res1 = 0 ; - size_t val2 ; - int ecode2 = 0 ; - double val3 ; - int ecode3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"OOO:doubleArray_setitem",&obj0,&obj1,&obj2)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_double, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "doubleArray_setitem" "', argument " "1"" of type '" "double *""'"); - } - arg1 = (double *)(argp1); - ecode2 = SWIG_AsVal_size_t(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "doubleArray_setitem" "', argument " "2"" of type '" "size_t""'"); - } - arg2 = (size_t)(val2); - ecode3 = SWIG_AsVal_double(obj2, &val3); - if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "doubleArray_setitem" "', argument " "3"" of type '" "double""'"); - } - arg3 = (double)(val3); - doubleArray_setitem(arg1,arg2,arg3); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_new_longArray(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - size_t arg1 ; - size_t val1 ; - int ecode1 = 0 ; - PyObject * obj0 = 0 ; - long *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:new_longArray",&obj0)) SWIG_fail; - ecode1 = SWIG_AsVal_size_t(obj0, &val1); - if (!SWIG_IsOK(ecode1)) { - SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_longArray" "', argument " "1"" of type '" "size_t""'"); - } - arg1 = (size_t)(val1); - result = (long *)new_longArray(arg1); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_long, 0 | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_delete_longArray(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - long *arg1 = (long *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:delete_longArray",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_long, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_longArray" "', argument " "1"" of type '" "long *""'"); - } - arg1 = (long *)(argp1); - delete_longArray(arg1); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_longArray_getitem(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - long *arg1 = (long *) 0 ; - size_t arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - size_t val2 ; - int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - long result; - - if (!PyArg_ParseTuple(args,(char *)"OO:longArray_getitem",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_long, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "longArray_getitem" "', argument " "1"" of type '" "long *""'"); - } - arg1 = (long *)(argp1); - ecode2 = SWIG_AsVal_size_t(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "longArray_getitem" "', argument " "2"" of type '" "size_t""'"); - } - arg2 = (size_t)(val2); - result = (long)longArray_getitem(arg1,arg2); - resultobj = SWIG_From_long((long)(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_longArray_setitem(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - long *arg1 = (long *) 0 ; - size_t arg2 ; - long arg3 ; - void *argp1 = 0 ; - int res1 = 0 ; - size_t val2 ; - int ecode2 = 0 ; - long val3 ; - int ecode3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"OOO:longArray_setitem",&obj0,&obj1,&obj2)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_long, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "longArray_setitem" "', argument " "1"" of type '" "long *""'"); - } - arg1 = (long *)(argp1); - ecode2 = SWIG_AsVal_size_t(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "longArray_setitem" "', argument " "2"" of type '" "size_t""'"); - } - arg2 = (size_t)(val2); - ecode3 = SWIG_AsVal_long(obj2, &val3); - if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "longArray_setitem" "', argument " "3"" of type '" "long""'"); - } - arg3 = (long)(val3); - longArray_setitem(arg1,arg2,arg3); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_new_intArray(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - size_t arg1 ; - size_t val1 ; - int ecode1 = 0 ; - PyObject * obj0 = 0 ; - int *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:new_intArray",&obj0)) SWIG_fail; - ecode1 = SWIG_AsVal_size_t(obj0, &val1); - if (!SWIG_IsOK(ecode1)) { - SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_intArray" "', argument " "1"" of type '" "size_t""'"); - } - arg1 = (size_t)(val1); - result = (int *)new_intArray(arg1); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_int, 0 | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_delete_intArray(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:delete_intArray",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_int, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_intArray" "', argument " "1"" of type '" "int *""'"); - } - arg1 = (int *)(argp1); - delete_intArray(arg1); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_intArray_getitem(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - size_t arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - size_t val2 ; - int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OO:intArray_getitem",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_int, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "intArray_getitem" "', argument " "1"" of type '" "int *""'"); - } - arg1 = (int *)(argp1); - ecode2 = SWIG_AsVal_size_t(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "intArray_getitem" "', argument " "2"" of type '" "size_t""'"); - } - arg2 = (size_t)(val2); - result = (int)intArray_getitem(arg1,arg2); - resultobj = SWIG_From_int((int)(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_intArray_setitem(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - size_t arg2 ; - int arg3 ; - void *argp1 = 0 ; - int res1 = 0 ; - size_t val2 ; - int ecode2 = 0 ; - int val3 ; - int ecode3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"OOO:intArray_setitem",&obj0,&obj1,&obj2)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_int, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "intArray_setitem" "', argument " "1"" of type '" "int *""'"); - } - arg1 = (int *)(argp1); - ecode2 = SWIG_AsVal_size_t(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "intArray_setitem" "', argument " "2"" of type '" "size_t""'"); - } - arg2 = (size_t)(val2); - ecode3 = SWIG_AsVal_int(obj2, &val3); - if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "intArray_setitem" "', argument " "3"" of type '" "int""'"); - } - arg3 = (int)(val3); - intArray_setitem(arg1,arg2,arg3); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_new_stringArray(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - size_t arg1 ; - size_t val1 ; - int ecode1 = 0 ; - PyObject * obj0 = 0 ; - char **result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:new_stringArray",&obj0)) SWIG_fail; - ecode1 = SWIG_AsVal_size_t(obj0, &val1); - if (!SWIG_IsOK(ecode1)) { - SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_stringArray" "', argument " "1"" of type '" "size_t""'"); - } - arg1 = (size_t)(val1); - result = (char **)new_stringArray(arg1); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_char, 0 | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_delete_stringArray(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - char **arg1 = (char **) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:delete_stringArray",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_p_char, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_stringArray" "', argument " "1"" of type '" "char **""'"); - } - arg1 = (char **)(argp1); - delete_stringArray(arg1); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_stringArray_getitem(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - char **arg1 = (char **) 0 ; - size_t arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - size_t val2 ; - int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - char *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"OO:stringArray_getitem",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_p_char, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "stringArray_getitem" "', argument " "1"" of type '" "char **""'"); - } - arg1 = (char **)(argp1); - ecode2 = SWIG_AsVal_size_t(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "stringArray_getitem" "', argument " "2"" of type '" "size_t""'"); - } - arg2 = (size_t)(val2); - result = (char *)stringArray_getitem(arg1,arg2); - resultobj = SWIG_FromCharPtr((const char *)result); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_stringArray_setitem(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - char **arg1 = (char **) 0 ; - size_t arg2 ; - char *arg3 = (char *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - size_t val2 ; - int ecode2 = 0 ; - int res3 ; - char *buf3 = 0 ; - int alloc3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"OOO:stringArray_setitem",&obj0,&obj1,&obj2)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_p_char, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "stringArray_setitem" "', argument " "1"" of type '" "char **""'"); - } - arg1 = (char **)(argp1); - ecode2 = SWIG_AsVal_size_t(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "stringArray_setitem" "', argument " "2"" of type '" "size_t""'"); - } - arg2 = (size_t)(val2); - res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); - if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "stringArray_setitem" "', argument " "3"" of type '" "char *""'"); - } - arg3 = (char *)(buf3); - stringArray_setitem(arg1,arg2,arg3); - resultobj = SWIG_Py_Void(); - if (alloc3 == SWIG_NEWOBJ) free((char*)buf3); - return resultobj; -fail: - if (alloc3 == SWIG_NEWOBJ) free((char*)buf3); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_new_from_file(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - FILE *arg1 = (FILE *) 0 ; - int arg2 ; - char *arg3 = (char *) 0 ; - int *arg4 = (int *) 0 ; - int arg5 ; - int val2 ; - int ecode2 = 0 ; - int res3 ; - char *buf3 = 0 ; - int alloc3 = 0 ; - int temp4 ; - int res4 = 0 ; - int val5 ; - int ecode5 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; - PyObject * obj4 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOOOO:grib_c_new_from_file",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail; - { - int fileDescriptor = PyObject_AsFileDescriptor(obj0); - /*printf("swig.i fileDescriptor=%d\n", fileDescriptor);*/ - if(fileDescriptor >= 0) { - /* Convert file descriptor to a FILE pointer */ - arg1 = fdopen(fileDescriptor,"rb"); // needs to be rb+ (or wb) for write - } - else { - PyErr_SetString(PyExc_TypeError, "f must be a file type."); - return NULL; - } - } - ecode2 = SWIG_AsVal_int(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "grib_c_new_from_file" "', argument " "2"" of type '" "int""'"); - } - arg2 = (int)(val2); - res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); - if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "grib_c_new_from_file" "', argument " "3"" of type '" "char *""'"); - } - arg3 = (char *)(buf3); - if (!(SWIG_IsOK((res4 = SWIG_ConvertPtr(obj3,SWIG_as_voidptrptr(&arg4),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj3, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_new_from_file" "', argument " "4"" of type '" "int""'"); - } - temp4 = (int)(val); - arg4 = &temp4; - res4 = SWIG_AddTmpMask(ecode); - } - ecode5 = SWIG_AsVal_int(obj4, &val5); - if (!SWIG_IsOK(ecode5)) { - SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "grib_c_new_from_file" "', argument " "5"" of type '" "int""'"); - } - arg5 = (int)(val5); - result = (int)grib_c_new_from_file(arg1,arg2,arg3,arg4,arg5); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res4)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg4))); - } else { - int new_flags = SWIG_IsNewObj(res4) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg4), SWIGTYPE_p_int, new_flags)); - } - if (alloc3 == SWIG_NEWOBJ) free((char*)buf3); - return resultobj; -fail: - if (alloc3 == SWIG_NEWOBJ) free((char*)buf3); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_new_any_from_file(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - FILE *arg1 = (FILE *) 0 ; - int arg2 ; - char *arg3 = (char *) 0 ; - int arg4 ; - int *arg5 = (int *) 0 ; - int val2 ; - int ecode2 = 0 ; - int res3 ; - char *buf3 = 0 ; - int alloc3 = 0 ; - int val4 ; - int ecode4 = 0 ; - int temp5 ; - int res5 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; - PyObject * obj4 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOOOO:grib_c_new_any_from_file",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail; - { - int fileDescriptor = PyObject_AsFileDescriptor(obj0); - /*printf("swig.i fileDescriptor=%d\n", fileDescriptor);*/ - if(fileDescriptor >= 0) { - /* Convert file descriptor to a FILE pointer */ - arg1 = fdopen(fileDescriptor,"rb"); // needs to be rb+ (or wb) for write - } - else { - PyErr_SetString(PyExc_TypeError, "f must be a file type."); - return NULL; - } - } - ecode2 = SWIG_AsVal_int(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "grib_c_new_any_from_file" "', argument " "2"" of type '" "int""'"); - } - arg2 = (int)(val2); - res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); - if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "grib_c_new_any_from_file" "', argument " "3"" of type '" "char *""'"); - } - arg3 = (char *)(buf3); - ecode4 = SWIG_AsVal_int(obj3, &val4); - if (!SWIG_IsOK(ecode4)) { - SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "grib_c_new_any_from_file" "', argument " "4"" of type '" "int""'"); - } - arg4 = (int)(val4); - if (!(SWIG_IsOK((res5 = SWIG_ConvertPtr(obj4,SWIG_as_voidptrptr(&arg5),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj4, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_new_any_from_file" "', argument " "5"" of type '" "int""'"); - } - temp5 = (int)(val); - arg5 = &temp5; - res5 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_new_any_from_file(arg1,arg2,arg3,arg4,arg5); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res5)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg5))); - } else { - int new_flags = SWIG_IsNewObj(res5) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg5), SWIGTYPE_p_int, new_flags)); - } - if (alloc3 == SWIG_NEWOBJ) free((char*)buf3); - return resultobj; -fail: - if (alloc3 == SWIG_NEWOBJ) free((char*)buf3); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_new_bufr_from_file(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - FILE *arg1 = (FILE *) 0 ; - int arg2 ; - char *arg3 = (char *) 0 ; - int arg4 ; - int *arg5 = (int *) 0 ; - int val2 ; - int ecode2 = 0 ; - int res3 ; - char *buf3 = 0 ; - int alloc3 = 0 ; - int val4 ; - int ecode4 = 0 ; - int temp5 ; - int res5 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; - PyObject * obj4 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOOOO:grib_c_new_bufr_from_file",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail; - { - int fileDescriptor = PyObject_AsFileDescriptor(obj0); - /*printf("swig.i fileDescriptor=%d\n", fileDescriptor);*/ - if(fileDescriptor >= 0) { - /* Convert file descriptor to a FILE pointer */ - arg1 = fdopen(fileDescriptor,"rb"); // needs to be rb+ (or wb) for write - } - else { - PyErr_SetString(PyExc_TypeError, "f must be a file type."); - return NULL; - } - } - ecode2 = SWIG_AsVal_int(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "grib_c_new_bufr_from_file" "', argument " "2"" of type '" "int""'"); - } - arg2 = (int)(val2); - res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); - if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "grib_c_new_bufr_from_file" "', argument " "3"" of type '" "char *""'"); - } - arg3 = (char *)(buf3); - ecode4 = SWIG_AsVal_int(obj3, &val4); - if (!SWIG_IsOK(ecode4)) { - SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "grib_c_new_bufr_from_file" "', argument " "4"" of type '" "int""'"); - } - arg4 = (int)(val4); - if (!(SWIG_IsOK((res5 = SWIG_ConvertPtr(obj4,SWIG_as_voidptrptr(&arg5),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj4, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_new_bufr_from_file" "', argument " "5"" of type '" "int""'"); - } - temp5 = (int)(val); - arg5 = &temp5; - res5 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_new_bufr_from_file(arg1,arg2,arg3,arg4,arg5); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res5)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg5))); - } else { - int new_flags = SWIG_IsNewObj(res5) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg5), SWIGTYPE_p_int, new_flags)); - } - if (alloc3 == SWIG_NEWOBJ) free((char*)buf3); - return resultobj; -fail: - if (alloc3 == SWIG_NEWOBJ) free((char*)buf3); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_new_gts_from_file(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - FILE *arg1 = (FILE *) 0 ; - int arg2 ; - char *arg3 = (char *) 0 ; - int arg4 ; - int *arg5 = (int *) 0 ; - int val2 ; - int ecode2 = 0 ; - int res3 ; - char *buf3 = 0 ; - int alloc3 = 0 ; - int val4 ; - int ecode4 = 0 ; - int temp5 ; - int res5 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; - PyObject * obj4 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOOOO:grib_c_new_gts_from_file",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail; - { - int fileDescriptor = PyObject_AsFileDescriptor(obj0); - /*printf("swig.i fileDescriptor=%d\n", fileDescriptor);*/ - if(fileDescriptor >= 0) { - /* Convert file descriptor to a FILE pointer */ - arg1 = fdopen(fileDescriptor,"rb"); // needs to be rb+ (or wb) for write - } - else { - PyErr_SetString(PyExc_TypeError, "f must be a file type."); - return NULL; - } - } - ecode2 = SWIG_AsVal_int(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "grib_c_new_gts_from_file" "', argument " "2"" of type '" "int""'"); - } - arg2 = (int)(val2); - res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); - if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "grib_c_new_gts_from_file" "', argument " "3"" of type '" "char *""'"); - } - arg3 = (char *)(buf3); - ecode4 = SWIG_AsVal_int(obj3, &val4); - if (!SWIG_IsOK(ecode4)) { - SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "grib_c_new_gts_from_file" "', argument " "4"" of type '" "int""'"); - } - arg4 = (int)(val4); - if (!(SWIG_IsOK((res5 = SWIG_ConvertPtr(obj4,SWIG_as_voidptrptr(&arg5),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj4, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_new_gts_from_file" "', argument " "5"" of type '" "int""'"); - } - temp5 = (int)(val); - arg5 = &temp5; - res5 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_new_gts_from_file(arg1,arg2,arg3,arg4,arg5); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res5)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg5))); - } else { - int new_flags = SWIG_IsNewObj(res5) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg5), SWIGTYPE_p_int, new_flags)); - } - if (alloc3 == SWIG_NEWOBJ) free((char*)buf3); - return resultobj; -fail: - if (alloc3 == SWIG_NEWOBJ) free((char*)buf3); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_new_metar_from_file(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - FILE *arg1 = (FILE *) 0 ; - int arg2 ; - int *arg3 = (int *) 0 ; - int val2 ; - int ecode2 = 0 ; - int temp3 ; - int res3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOO:grib_c_new_metar_from_file",&obj0,&obj1,&obj2)) SWIG_fail; - { - int fileDescriptor = PyObject_AsFileDescriptor(obj0); - /*printf("swig.i fileDescriptor=%d\n", fileDescriptor);*/ - if(fileDescriptor >= 0) { - /* Convert file descriptor to a FILE pointer */ - arg1 = fdopen(fileDescriptor,"rb"); // needs to be rb+ (or wb) for write - } - else { - PyErr_SetString(PyExc_TypeError, "f must be a file type."); - return NULL; - } - } - ecode2 = SWIG_AsVal_int(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "grib_c_new_metar_from_file" "', argument " "2"" of type '" "int""'"); - } - arg2 = (int)(val2); - if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj2, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_new_metar_from_file" "', argument " "3"" of type '" "int""'"); - } - temp3 = (int)(val); - arg3 = &temp3; - res3 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_new_metar_from_file(arg1,arg2,arg3); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res3)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg3))); - } else { - int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_int, new_flags)); - } - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_iterator_new(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int *arg2 = (int *) 0 ; - int *arg3 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - int temp2 ; - int res2 = SWIG_TMPOBJ ; - int temp3 ; - int res3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - arg2 = &temp2; - if (!PyArg_ParseTuple(args,(char *)"OO:grib_c_iterator_new",&obj0,&obj1)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_iterator_new" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj1, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_iterator_new" "', argument " "3"" of type '" "int""'"); - } - temp3 = (int)(val); - arg3 = &temp3; - res3 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_iterator_new(arg1,arg2,arg3); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res2)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg2))); - } else { - int new_flags = SWIG_IsNewObj(res2) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg2), SWIGTYPE_p_int, new_flags)); - } - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (SWIG_IsNewObj(res3)) free((char*)arg3); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (SWIG_IsNewObj(res3)) free((char*)arg3); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_keys_iterator_new(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int *arg2 = (int *) 0 ; - char *arg3 = (char *) 0 ; - int temp1 ; - int res1 = 0 ; - int temp2 ; - int res2 = SWIG_TMPOBJ ; - int res3 ; - char *buf3 = 0 ; - int alloc3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - arg2 = &temp2; - if (!PyArg_ParseTuple(args,(char *)"OO:grib_c_keys_iterator_new",&obj0,&obj1)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_keys_iterator_new" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res3 = SWIG_AsCharPtrAndSize(obj1, &buf3, NULL, &alloc3); - if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "grib_c_keys_iterator_new" "', argument " "3"" of type '" "char *""'"); - } - arg3 = (char *)(buf3); - result = (int)grib_c_keys_iterator_new(arg1,arg2,arg3); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res2)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg2))); - } else { - int new_flags = SWIG_IsNewObj(res2) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg2), SWIGTYPE_p_int, new_flags)); - } - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc3 == SWIG_NEWOBJ) free((char*)buf3); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc3 == SWIG_NEWOBJ) free((char*)buf3); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_codes_c_bufr_keys_iterator_new(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int *arg2 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - int temp2 ; - int res2 = SWIG_TMPOBJ ; - PyObject * obj0 = 0 ; - int result; - - arg2 = &temp2; - if (!PyArg_ParseTuple(args,(char *)"O:codes_c_bufr_keys_iterator_new",&obj0)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "codes_c_bufr_keys_iterator_new" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - result = (int)codes_c_bufr_keys_iterator_new(arg1,arg2); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res2)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg2))); - } else { - int new_flags = SWIG_IsNewObj(res2) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg2), SWIGTYPE_p_int, new_flags)); - } - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_grib_new_from_samples(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OO:grib_c_grib_new_from_samples",&obj0,&obj1)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_grib_new_from_samples" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_grib_new_from_samples" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - result = (int)grib_c_grib_new_from_samples(arg1,arg2); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res1)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg1))); - } else { - int new_flags = SWIG_IsNewObj(res1) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg1), SWIGTYPE_p_int, new_flags)); - } - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_bufr_new_from_samples(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OO:grib_c_bufr_new_from_samples",&obj0,&obj1)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_bufr_new_from_samples" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_bufr_new_from_samples" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - result = (int)grib_c_bufr_new_from_samples(arg1,arg2); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res1)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg1))); - } else { - int new_flags = SWIG_IsNewObj(res1) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg1), SWIGTYPE_p_int, new_flags)); - } - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_index_new_from_file(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - char *arg1 = (char *) 0 ; - char *arg2 = (char *) 0 ; - int *arg3 = (int *) 0 ; - int res1 ; - char *buf1 = 0 ; - int alloc1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - int temp3 ; - int res3 = SWIG_TMPOBJ ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - arg3 = &temp3; - if (!PyArg_ParseTuple(args,(char *)"OO:grib_c_index_new_from_file",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "grib_c_index_new_from_file" "', argument " "1"" of type '" "char *""'"); - } - arg1 = (char *)(buf1); - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_index_new_from_file" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - result = (int)grib_c_index_new_from_file(arg1,arg2,arg3); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res3)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg3))); - } else { - int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_int, new_flags)); - } - if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_index_add_file(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OO:grib_c_index_add_file",&obj0,&obj1)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_index_add_file" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_index_add_file" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - result = (int)grib_c_index_add_file(arg1,arg2); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_new_from_index(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int *arg2 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - int temp2 ; - int res2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OO:grib_c_new_from_index",&obj0,&obj1)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_new_from_index" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - if (!(SWIG_IsOK((res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj1, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_new_from_index" "', argument " "2"" of type '" "int""'"); - } - temp2 = (int)(val); - arg2 = &temp2; - res2 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_new_from_index(arg1,arg2); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res2)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg2))); - } else { - int new_flags = SWIG_IsNewObj(res2) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg2), SWIGTYPE_p_int, new_flags)); - } - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_index_write(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OO:grib_c_index_write",&obj0,&obj1)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_index_write" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_index_write" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - result = (int)grib_c_index_write(arg1,arg2); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_index_read(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - char *arg1 = (char *) 0 ; - int *arg2 = (int *) 0 ; - int res1 ; - char *buf1 = 0 ; - int alloc1 = 0 ; - int temp2 ; - int res2 = SWIG_TMPOBJ ; - PyObject * obj0 = 0 ; - int result; - - arg2 = &temp2; - if (!PyArg_ParseTuple(args,(char *)"O:grib_c_index_read",&obj0)) SWIG_fail; - res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "grib_c_index_read" "', argument " "1"" of type '" "char *""'"); - } - arg1 = (char *)(buf1); - result = (int)grib_c_index_read(arg1,arg2); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res2)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg2))); - } else { - int new_flags = SWIG_IsNewObj(res2) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg2), SWIGTYPE_p_int, new_flags)); - } - if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); - return resultobj; -fail: - if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_new_from_message(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - size_t *arg3 = (size_t *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - size_t temp3 ; - int res3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOO:grib_c_new_from_message",&obj0,&obj1,&obj2)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_new_from_message" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_new_from_message" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_size_t,0))))) { - size_t val; - int ecode = SWIG_AsVal_size_t(obj2, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_new_from_message" "', argument " "3"" of type '" "size_t""'"); - } - temp3 = (size_t)(val); - arg3 = &temp3; - res3 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_new_from_message(arg1,arg2,arg3); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res1)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg1))); - } else { - int new_flags = SWIG_IsNewObj(res1) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg1), SWIGTYPE_p_int, new_flags)); - } - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - if (SWIG_IsNewObj(res3)) free((char*)arg3); - return resultobj; -fail: - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - if (SWIG_IsNewObj(res3)) free((char*)arg3); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_codes_c_close_file(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int arg1 ; - char *arg2 = (char *) 0 ; - int val1 ; - int ecode1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OO:codes_c_close_file",&obj0,&obj1)) SWIG_fail; - ecode1 = SWIG_AsVal_int(obj0, &val1); - if (!SWIG_IsOK(ecode1)) { - SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "codes_c_close_file" "', argument " "1"" of type '" "int""'"); - } - arg1 = (int)(val1); - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "codes_c_close_file" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - result = (int)codes_c_close_file(arg1,arg2); - resultobj = SWIG_From_int((int)(result)); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_count_in_file(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - FILE *arg1 = (FILE *) 0 ; - int *arg2 = (int *) 0 ; - int temp2 ; - int res2 = SWIG_TMPOBJ ; - PyObject * obj0 = 0 ; - int result; - - arg2 = &temp2; - if (!PyArg_ParseTuple(args,(char *)"O:grib_c_count_in_file",&obj0)) SWIG_fail; - { - int fileDescriptor = PyObject_AsFileDescriptor(obj0); - /*printf("swig.i fileDescriptor=%d\n", fileDescriptor);*/ - if(fileDescriptor >= 0) { - /* Convert file descriptor to a FILE pointer */ - arg1 = fdopen(fileDescriptor,"rb"); // needs to be rb+ (or wb) for write - } - else { - PyErr_SetString(PyExc_TypeError, "f must be a file type."); - return NULL; - } - } - result = (int)grib_c_count_in_file(arg1,arg2); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res2)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg2))); - } else { - int new_flags = SWIG_IsNewObj(res2) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg2), SWIGTYPE_p_int, new_flags)); - } - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_release(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"O:grib_c_release",&obj0)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_release" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_release(arg1); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_write(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - FILE *arg2 = (FILE *) 0 ; - int temp1 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OO:grib_c_write",&obj0,&obj1)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_write" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - { - int fileDescriptor = PyObject_AsFileDescriptor(obj1); - if(fileDescriptor >= 0) { - /* Convert file descriptor to a FILE pointer */ - arg2 = fdopen(fileDescriptor,"wb"); - } - else { - PyErr_SetString(PyExc_TypeError, "f must be a file type."); - return NULL; - } - } - result = (int)grib_c_write(arg1,arg2); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_get_size_long(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - long *arg3 = (long *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - long temp3 ; - int res3 = SWIG_TMPOBJ ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - arg3 = &temp3; - if (!PyArg_ParseTuple(args,(char *)"OO:grib_c_get_size_long",&obj0,&obj1)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_get_size_long" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_get_size_long" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - result = (int)grib_c_get_size_long(arg1,arg2,arg3); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res3)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_long((*arg3))); - } else { - int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_long, new_flags)); - } - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_get_string_length(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - size_t *arg3 = (size_t *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - size_t temp3 ; - int res3 = SWIG_TMPOBJ ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - arg3 = &temp3; - if (!PyArg_ParseTuple(args,(char *)"OO:grib_c_get_string_length",&obj0,&obj1)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_get_string_length" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_get_string_length" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - result = (int)grib_c_get_string_length(arg1,arg2,arg3); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res3)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_size_t((*arg3))); - } else { - int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_size_t, new_flags)); - } - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int *arg2 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - int temp2 ; - int res2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OO:grib_c_clone",&obj0,&obj1)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_clone" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - if (!(SWIG_IsOK((res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj1, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_clone" "', argument " "2"" of type '" "int""'"); - } - temp2 = (int)(val); - arg2 = &temp2; - res2 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_clone(arg1,arg2); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res2)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg2))); - } else { - int new_flags = SWIG_IsNewObj(res2) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg2), SWIGTYPE_p_int, new_flags)); - } - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_copy_namespace(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - int *arg3 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - int temp3 ; - int res3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOO:grib_c_copy_namespace",&obj0,&obj1,&obj2)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_copy_namespace" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_copy_namespace" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj2, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_copy_namespace" "', argument " "3"" of type '" "int""'"); - } - temp3 = (int)(val); - arg3 = &temp3; - res3 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_copy_namespace(arg1,arg2,arg3); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - if (SWIG_IsNewObj(res3)) free((char*)arg3); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - if (SWIG_IsNewObj(res3)) free((char*)arg3); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_get_message_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - size_t *arg2 = (size_t *) 0 ; - int temp1 ; - int res1 = 0 ; - size_t temp2 ; - int res2 = SWIG_TMPOBJ ; - PyObject * obj0 = 0 ; - int result; - - arg2 = &temp2; - if (!PyArg_ParseTuple(args,(char *)"O:grib_c_get_message_size",&obj0)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_get_message_size" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_get_message_size(arg1,arg2); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res2)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_size_t((*arg2))); - } else { - int new_flags = SWIG_IsNewObj(res2) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg2), SWIGTYPE_p_size_t, new_flags)); - } - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_get_message_offset(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - size_t *arg2 = (size_t *) 0 ; - int temp1 ; - int res1 = 0 ; - size_t temp2 ; - int res2 = SWIG_TMPOBJ ; - PyObject * obj0 = 0 ; - int result; - - arg2 = &temp2; - if (!PyArg_ParseTuple(args,(char *)"O:grib_c_get_message_offset",&obj0)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_get_message_offset" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_get_message_offset(arg1,arg2); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res2)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_size_t((*arg2))); - } else { - int new_flags = SWIG_IsNewObj(res2) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg2), SWIGTYPE_p_size_t, new_flags)); - } - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_get_native_type(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - int *arg3 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - int temp3 ; - int res3 = SWIG_TMPOBJ ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - arg3 = &temp3; - if (!PyArg_ParseTuple(args,(char *)"OO:grib_c_get_native_type",&obj0,&obj1)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_get_native_type" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_get_native_type" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - result = (int)grib_c_get_native_type(arg1,arg2,arg3); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res3)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg3))); - } else { - int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_int, new_flags)); - } - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_multi_new(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int temp1 ; - int res1 = SWIG_TMPOBJ ; - int result; - - arg1 = &temp1; - if (!PyArg_ParseTuple(args,(char *)":grib_c_multi_new")) SWIG_fail; - result = (int)grib_c_multi_new(arg1); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res1)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg1))); - } else { - int new_flags = SWIG_IsNewObj(res1) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg1), SWIGTYPE_p_int, new_flags)); - } - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_multi_support_on(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int result; - - if (!PyArg_ParseTuple(args,(char *)":grib_c_multi_support_on")) SWIG_fail; - result = (int)grib_c_multi_support_on(); - resultobj = SWIG_From_int((int)(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_multi_write(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - FILE *arg2 = (FILE *) 0 ; - int temp1 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OO:grib_c_multi_write",&obj0,&obj1)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_multi_write" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - { - int fileDescriptor = PyObject_AsFileDescriptor(obj1); - if(fileDescriptor >= 0) { - /* Convert file descriptor to a FILE pointer */ - arg2 = fdopen(fileDescriptor,"wb"); - } - else { - PyErr_SetString(PyExc_TypeError, "f must be a file type."); - return NULL; - } - } - result = (int)grib_c_multi_write(arg1,arg2); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_multi_support_off(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int result; - - if (!PyArg_ParseTuple(args,(char *)":grib_c_multi_support_off")) SWIG_fail; - result = (int)grib_c_multi_support_off(); - resultobj = SWIG_From_int((int)(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_multi_release(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"O:grib_c_multi_release",&obj0)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_multi_release" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_multi_release(arg1); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_multi_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int *arg2 = (int *) 0 ; - int *arg3 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - int temp2 ; - int res2 = 0 ; - int temp3 ; - int res3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOO:grib_c_multi_append",&obj0,&obj1,&obj2)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_multi_append" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - if (!(SWIG_IsOK((res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj1, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_multi_append" "', argument " "2"" of type '" "int""'"); - } - temp2 = (int)(val); - arg2 = &temp2; - res2 = SWIG_AddTmpMask(ecode); - } - if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj2, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_multi_append" "', argument " "3"" of type '" "int""'"); - } - temp3 = (int)(val); - arg3 = &temp3; - res3 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_multi_append(arg1,arg2,arg3); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (SWIG_IsNewObj(res2)) free((char*)arg2); - if (SWIG_IsNewObj(res3)) free((char*)arg3); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (SWIG_IsNewObj(res2)) free((char*)arg2); - if (SWIG_IsNewObj(res3)) free((char*)arg3); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_gribex_mode_on(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int result; - - if (!PyArg_ParseTuple(args,(char *)":grib_c_gribex_mode_on")) SWIG_fail; - result = (int)grib_c_gribex_mode_on(); - resultobj = SWIG_From_int((int)(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_gribex_mode_off(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int result; - - if (!PyArg_ParseTuple(args,(char *)":grib_c_gribex_mode_off")) SWIG_fail; - result = (int)grib_c_gribex_mode_off(); - resultobj = SWIG_From_int((int)(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_keys_iterator_next(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"O:grib_c_keys_iterator_next",&obj0)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_keys_iterator_next" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_keys_iterator_next(arg1); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_codes_c_bufr_keys_iterator_next(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"O:codes_c_bufr_keys_iterator_next",&obj0)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "codes_c_bufr_keys_iterator_next" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - result = (int)codes_c_bufr_keys_iterator_next(arg1); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_keys_iterator_delete(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"O:grib_c_keys_iterator_delete",&obj0)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_keys_iterator_delete" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_keys_iterator_delete(arg1); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_codes_c_bufr_keys_iterator_delete(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"O:codes_c_bufr_keys_iterator_delete",&obj0)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "codes_c_bufr_keys_iterator_delete" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - result = (int)codes_c_bufr_keys_iterator_delete(arg1); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_skip_computed(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"O:grib_c_skip_computed",&obj0)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_skip_computed" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_skip_computed(arg1); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_skip_coded(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"O:grib_c_skip_coded",&obj0)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_skip_coded" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_skip_coded(arg1); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_skip_edition_specific(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"O:grib_c_skip_edition_specific",&obj0)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_skip_edition_specific" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_skip_edition_specific(arg1); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_skip_duplicates(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"O:grib_c_skip_duplicates",&obj0)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_skip_duplicates" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_skip_duplicates(arg1); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_skip_read_only(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"O:grib_c_skip_read_only",&obj0)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_skip_read_only" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_skip_read_only(arg1); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_skip_function(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"O:grib_c_skip_function",&obj0)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_skip_function" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_skip_function(arg1); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_keys_iterator_rewind(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"O:grib_c_keys_iterator_rewind",&obj0)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_keys_iterator_rewind" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_keys_iterator_rewind(arg1); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_codes_c_bufr_keys_iterator_rewind(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"O:codes_c_bufr_keys_iterator_rewind",&obj0)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "codes_c_bufr_keys_iterator_rewind" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - result = (int)codes_c_bufr_keys_iterator_rewind(arg1); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_bufr_copy_data(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int *arg2 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - int temp2 ; - int res2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OO:grib_c_bufr_copy_data",&obj0,&obj1)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_bufr_copy_data" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - if (!(SWIG_IsOK((res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj1, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_bufr_copy_data" "', argument " "2"" of type '" "int""'"); - } - temp2 = (int)(val); - arg2 = &temp2; - res2 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_bufr_copy_data(arg1,arg2); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res2)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg2))); - } else { - int new_flags = SWIG_IsNewObj(res2) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg2), SWIGTYPE_p_int, new_flags)); - } - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_keys_iterator_get_name(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - int arg3 ; - int temp1 ; - int res1 = 0 ; - char temp2[1024+1] ; - int val3 ; - int ecode3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - arg2 = (char *) temp2; - if (!PyArg_ParseTuple(args,(char *)"OO:grib_c_keys_iterator_get_name",&obj0,&obj1)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_keys_iterator_get_name" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - ecode3 = SWIG_AsVal_int(obj1, &val3); - if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "grib_c_keys_iterator_get_name" "', argument " "3"" of type '" "int""'"); - } - arg3 = (int)(val3); - result = (int)grib_c_keys_iterator_get_name(arg1,arg2,arg3); - resultobj = SWIG_From_int((int)(result)); - arg2[1024] = 0; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_FromCharPtr(arg2)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_codes_c_bufr_keys_iterator_get_name(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - int arg3 ; - int temp1 ; - int res1 = 0 ; - char temp2[1024+1] ; - int val3 ; - int ecode3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - arg2 = (char *) temp2; - if (!PyArg_ParseTuple(args,(char *)"OO:codes_c_bufr_keys_iterator_get_name",&obj0,&obj1)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "codes_c_bufr_keys_iterator_get_name" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - ecode3 = SWIG_AsVal_int(obj1, &val3); - if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "codes_c_bufr_keys_iterator_get_name" "', argument " "3"" of type '" "int""'"); - } - arg3 = (int)(val3); - result = (int)codes_c_bufr_keys_iterator_get_name(arg1,arg2,arg3); - resultobj = SWIG_From_int((int)(result)); - arg2[1024] = 0; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_FromCharPtr(arg2)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_index_get_size_long(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - long *arg3 = (long *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - long temp3 ; - int res3 = SWIG_TMPOBJ ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - arg3 = &temp3; - if (!PyArg_ParseTuple(args,(char *)"OO:grib_c_index_get_size_long",&obj0,&obj1)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_index_get_size_long" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_index_get_size_long" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - result = (int)grib_c_index_get_size_long(arg1,arg2,arg3); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res3)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_long((*arg3))); - } else { - int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_long, new_flags)); - } - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_index_get_long(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - long *arg3 = (long *) 0 ; - int *arg4 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - void *argp3 = 0 ; - int res3 = 0 ; - void *argp4 = 0 ; - int res4 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOOO:grib_c_index_get_long",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_index_get_long" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_index_get_long" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_long, 0 | 0 ); - if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "grib_c_index_get_long" "', argument " "3"" of type '" "long *""'"); - } - arg3 = (long *)(argp3); - res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_int, 0 | 0 ); - if (!SWIG_IsOK(res4)) { - SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "grib_c_index_get_long" "', argument " "4"" of type '" "int *""'"); - } - arg4 = (int *)(argp4); - result = (int)grib_c_index_get_long(arg1,arg2,arg3,arg4); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_index_get_real8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - double *arg3 = (double *) 0 ; - int *arg4 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - void *argp3 = 0 ; - int res3 = 0 ; - void *argp4 = 0 ; - int res4 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOOO:grib_c_index_get_real8",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_index_get_real8" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_index_get_real8" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_double, 0 | 0 ); - if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "grib_c_index_get_real8" "', argument " "3"" of type '" "double *""'"); - } - arg3 = (double *)(argp3); - res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_int, 0 | 0 ); - if (!SWIG_IsOK(res4)) { - SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "grib_c_index_get_real8" "', argument " "4"" of type '" "int *""'"); - } - arg4 = (int *)(argp4); - result = (int)grib_c_index_get_real8(arg1,arg2,arg3,arg4); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_index_get_string(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - char *arg3 = (char *) 0 ; - int *arg4 = (int *) 0 ; - int *arg5 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - char temp3[1024*1024+1] ; - int temp4 ; - int res4 = 0 ; - int temp5 ; - int res5 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; - int result; - - arg3 = (char *) temp3; - if (!PyArg_ParseTuple(args,(char *)"OOOO:grib_c_index_get_string",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_index_get_string" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_index_get_string" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - if (!(SWIG_IsOK((res4 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg4),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj2, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_index_get_string" "', argument " "4"" of type '" "int""'"); - } - temp4 = (int)(val); - arg4 = &temp4; - res4 = SWIG_AddTmpMask(ecode); - } - if (!(SWIG_IsOK((res5 = SWIG_ConvertPtr(obj3,SWIG_as_voidptrptr(&arg5),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj3, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_index_get_string" "', argument " "5"" of type '" "int""'"); - } - temp5 = (int)(val); - arg5 = &temp5; - res5 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_index_get_string(arg1,arg2,arg3,arg4,arg5); - resultobj = SWIG_From_int((int)(result)); - arg3[1024*1024] = 0; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_FromCharPtr(arg3)); - if (SWIG_IsTmpObj(res5)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg5))); - } else { - int new_flags = SWIG_IsNewObj(res5) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg5), SWIGTYPE_p_int, new_flags)); - } - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - if (SWIG_IsNewObj(res4)) free((char*)arg4); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - if (SWIG_IsNewObj(res4)) free((char*)arg4); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_index_select_long(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - long *arg3 = (long *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - long temp3 ; - int res3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOO:grib_c_index_select_long",&obj0,&obj1,&obj2)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_index_select_long" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_index_select_long" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_long,0))))) { - long val; - int ecode = SWIG_AsVal_long(obj2, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_index_select_long" "', argument " "3"" of type '" "long""'"); - } - temp3 = (long)(val); - arg3 = &temp3; - res3 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_index_select_long(arg1,arg2,arg3); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - if (SWIG_IsNewObj(res3)) free((char*)arg3); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - if (SWIG_IsNewObj(res3)) free((char*)arg3); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_index_select_real8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - double *arg3 = (double *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - double temp3 ; - int res3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOO:grib_c_index_select_real8",&obj0,&obj1,&obj2)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_index_select_real8" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_index_select_real8" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_double,0))))) { - double val; - int ecode = SWIG_AsVal_double(obj2, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_index_select_real8" "', argument " "3"" of type '" "double""'"); - } - temp3 = (double)(val); - arg3 = &temp3; - res3 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_index_select_real8(arg1,arg2,arg3); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - if (SWIG_IsNewObj(res3)) free((char*)arg3); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - if (SWIG_IsNewObj(res3)) free((char*)arg3); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_index_select_string(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - char *arg3 = (char *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - int res3 ; - char *buf3 = 0 ; - int alloc3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOO:grib_c_index_select_string",&obj0,&obj1,&obj2)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_index_select_string" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_index_select_string" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); - if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "grib_c_index_select_string" "', argument " "3"" of type '" "char *""'"); - } - arg3 = (char *)(buf3); - result = (int)grib_c_index_select_string(arg1,arg2,arg3); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - if (alloc3 == SWIG_NEWOBJ) free((char*)buf3); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - if (alloc3 == SWIG_NEWOBJ) free((char*)buf3); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_index_release(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"O:grib_c_index_release",&obj0)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_index_release" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_index_release(arg1); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_iterator_delete(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"O:grib_c_iterator_delete",&obj0)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_iterator_delete" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_iterator_delete(arg1); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_iterator_next(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - double *arg2 = (double *) 0 ; - double *arg3 = (double *) 0 ; - double *arg4 = (double *) 0 ; - int temp1 ; - int res1 = 0 ; - double temp2 ; - int res2 = SWIG_TMPOBJ ; - double temp3 ; - int res3 = SWIG_TMPOBJ ; - double temp4 ; - int res4 = SWIG_TMPOBJ ; - PyObject * obj0 = 0 ; - int result; - - arg2 = &temp2; - arg3 = &temp3; - arg4 = &temp4; - if (!PyArg_ParseTuple(args,(char *)"O:grib_c_iterator_next",&obj0)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_iterator_next" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_iterator_next(arg1,arg2,arg3,arg4); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res2)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_double((*arg2))); - } else { - int new_flags = SWIG_IsNewObj(res2) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg2), SWIGTYPE_p_double, new_flags)); - } - if (SWIG_IsTmpObj(res3)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_double((*arg3))); - } else { - int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_double, new_flags)); - } - if (SWIG_IsTmpObj(res4)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_double((*arg4))); - } else { - int new_flags = SWIG_IsNewObj(res4) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg4), SWIGTYPE_p_double, new_flags)); - } - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_get_string(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - char *arg3 = (char *) 0 ; - size_t *arg4 = (size_t *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - int res3 ; - size_t n3 ; - char *buff3 = 0 ; - size_t size3 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOO:grib_c_get_string",&obj0,&obj1,&obj2)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_get_string" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_get_string" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - res3 = SWIG_AsVal_size_t (obj2, &n3); - if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "grib_c_get_string" "', argument " "3"" of type '" "(char* string_val, size_t* string_size)""'"); - } - buff3= (char *)calloc(n3+1, sizeof(char)); - arg3 = (char *)(buff3); - size3 = (size_t)(n3); - arg4 = &size3; - result = (int)grib_c_get_string(arg1,arg2,arg3,arg4); - resultobj = SWIG_From_int((int)(result)); - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_FromCharPtrAndSize(arg3,*arg4)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - if (buff3) free((char*)buff3); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - if (buff3) free((char*)buff3); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_get_string_array(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - char **arg3 = (char **) 0 ; - size_t *arg4 = (size_t *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - void *argp3 = 0 ; - int res3 = 0 ; - void *argp4 = 0 ; - int res4 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOOO:grib_c_get_string_array",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_get_string_array" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_get_string_array" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_p_char, 0 | 0 ); - if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "grib_c_get_string_array" "', argument " "3"" of type '" "char **""'"); - } - arg3 = (char **)(argp3); - res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_size_t, 0 | 0 ); - if (!SWIG_IsOK(res4)) { - SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "grib_c_get_string_array" "', argument " "4"" of type '" "size_t *""'"); - } - arg4 = (size_t *)(argp4); - result = (int)grib_c_get_string_array(arg1,arg2,arg3,arg4); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_set_string(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - char *arg3 = (char *) 0 ; - int arg4 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - int res3 ; - char *buf3 = 0 ; - int alloc3 = 0 ; - int val4 ; - int ecode4 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOOO:grib_c_set_string",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_set_string" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_set_string" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); - if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "grib_c_set_string" "', argument " "3"" of type '" "char *""'"); - } - arg3 = (char *)(buf3); - ecode4 = SWIG_AsVal_int(obj3, &val4); - if (!SWIG_IsOK(ecode4)) { - SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "grib_c_set_string" "', argument " "4"" of type '" "int""'"); - } - arg4 = (int)(val4); - result = (int)grib_c_set_string(arg1,arg2,arg3,arg4); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - if (alloc3 == SWIG_NEWOBJ) free((char*)buf3); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - if (alloc3 == SWIG_NEWOBJ) free((char*)buf3); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_get_long(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - long *arg3 = (long *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - long temp3 ; - int res3 = SWIG_TMPOBJ ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - arg3 = &temp3; - if (!PyArg_ParseTuple(args,(char *)"OO:grib_c_get_long",&obj0,&obj1)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_get_long" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_get_long" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - result = (int)grib_c_get_long(arg1,arg2,arg3); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res3)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_long((*arg3))); - } else { - int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_long, new_flags)); - } - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_set_long(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - long *arg3 = (long *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - long temp3 ; - int res3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOO:grib_c_set_long",&obj0,&obj1,&obj2)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_set_long" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_set_long" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_long,0))))) { - long val; - int ecode = SWIG_AsVal_long(obj2, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_set_long" "', argument " "3"" of type '" "long""'"); - } - temp3 = (long)(val); - arg3 = &temp3; - res3 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_set_long(arg1,arg2,arg3); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - if (SWIG_IsNewObj(res3)) free((char*)arg3); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - if (SWIG_IsNewObj(res3)) free((char*)arg3); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_get_double(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - double *arg3 = (double *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - double temp3 ; - int res3 = SWIG_TMPOBJ ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - arg3 = &temp3; - if (!PyArg_ParseTuple(args,(char *)"OO:grib_c_get_double",&obj0,&obj1)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_get_double" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_get_double" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - result = (int)grib_c_get_double(arg1,arg2,arg3); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res3)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_double((*arg3))); - } else { - int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_double, new_flags)); - } - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_set_double(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - double *arg3 = (double *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - double temp3 ; - int res3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOO:grib_c_set_double",&obj0,&obj1,&obj2)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_set_double" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_set_double" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_double,0))))) { - double val; - int ecode = SWIG_AsVal_double(obj2, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_set_double" "', argument " "3"" of type '" "double""'"); - } - temp3 = (double)(val); - arg3 = &temp3; - res3 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_set_double(arg1,arg2,arg3); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - if (SWIG_IsNewObj(res3)) free((char*)arg3); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - if (SWIG_IsNewObj(res3)) free((char*)arg3); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_set_real8_array(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - double *arg3 = (double *) 0 ; - int *arg4 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - void *argp3 = 0 ; - int res3 = 0 ; - void *argp4 = 0 ; - int res4 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOOO:grib_c_set_real8_array",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_set_real8_array" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_set_real8_array" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_double, 0 | 0 ); - if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "grib_c_set_real8_array" "', argument " "3"" of type '" "double *""'"); - } - arg3 = (double *)(argp3); - res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_int, 0 | 0 ); - if (!SWIG_IsOK(res4)) { - SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "grib_c_set_real8_array" "', argument " "4"" of type '" "int *""'"); - } - arg4 = (int *)(argp4); - result = (int)grib_c_set_real8_array(arg1,arg2,arg3,arg4); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_get_real8_array(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - double *arg3 = (double *) 0 ; - int *arg4 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - void *argp3 = 0 ; - int res3 = 0 ; - void *argp4 = 0 ; - int res4 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOOO:grib_c_get_real8_array",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_get_real8_array" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_get_real8_array" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_double, 0 | 0 ); - if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "grib_c_get_real8_array" "', argument " "3"" of type '" "double *""'"); - } - arg3 = (double *)(argp3); - res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_int, 0 | 0 ); - if (!SWIG_IsOK(res4)) { - SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "grib_c_get_real8_array" "', argument " "4"" of type '" "int *""'"); - } - arg4 = (int *)(argp4); - result = (int)grib_c_get_real8_array(arg1,arg2,arg3,arg4); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_get_long_array(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - long *arg3 = (long *) 0 ; - int *arg4 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - void *argp3 = 0 ; - int res3 = 0 ; - void *argp4 = 0 ; - int res4 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOOO:grib_c_get_long_array",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_get_long_array" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_get_long_array" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_long, 0 | 0 ); - if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "grib_c_get_long_array" "', argument " "3"" of type '" "long *""'"); - } - arg3 = (long *)(argp3); - res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_int, 0 | 0 ); - if (!SWIG_IsOK(res4)) { - SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "grib_c_get_long_array" "', argument " "4"" of type '" "int *""'"); - } - arg4 = (int *)(argp4); - result = (int)grib_c_get_long_array(arg1,arg2,arg3,arg4); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_set_long_array(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - long *arg3 = (long *) 0 ; - int *arg4 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - void *argp3 = 0 ; - int res3 = 0 ; - void *argp4 = 0 ; - int res4 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOOO:grib_c_set_long_array",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_set_long_array" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_set_long_array" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_long, 0 | 0 ); - if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "grib_c_set_long_array" "', argument " "3"" of type '" "long *""'"); - } - arg3 = (long *)(argp3); - res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_int, 0 | 0 ); - if (!SWIG_IsOK(res4)) { - SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "grib_c_set_long_array" "', argument " "4"" of type '" "int *""'"); - } - arg4 = (int *)(argp4); - result = (int)grib_c_set_long_array(arg1,arg2,arg3,arg4); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_get_real8_element(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - int *arg3 = (int *) 0 ; - double *arg4 = (double *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - int temp3 ; - int res3 = 0 ; - double temp4 ; - int res4 = SWIG_TMPOBJ ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - int result; - - arg4 = &temp4; - if (!PyArg_ParseTuple(args,(char *)"OOO:grib_c_get_real8_element",&obj0,&obj1,&obj2)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_get_real8_element" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_get_real8_element" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj2, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_get_real8_element" "', argument " "3"" of type '" "int""'"); - } - temp3 = (int)(val); - arg3 = &temp3; - res3 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_get_real8_element(arg1,arg2,arg3,arg4); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res4)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_double((*arg4))); - } else { - int new_flags = SWIG_IsNewObj(res4) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg4), SWIGTYPE_p_double, new_flags)); - } - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - if (SWIG_IsNewObj(res3)) free((char*)arg3); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - if (SWIG_IsNewObj(res3)) free((char*)arg3); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_get_real8_elements(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - int *arg3 = (int *) 0 ; - double *arg4 = (double *) 0 ; - int *arg5 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - void *argp3 = 0 ; - int res3 = 0 ; - void *argp4 = 0 ; - int res4 = 0 ; - void *argp5 = 0 ; - int res5 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; - PyObject * obj4 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOOOO:grib_c_get_real8_elements",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_get_real8_elements" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_get_real8_elements" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_int, 0 | 0 ); - if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "grib_c_get_real8_elements" "', argument " "3"" of type '" "int *""'"); - } - arg3 = (int *)(argp3); - res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_double, 0 | 0 ); - if (!SWIG_IsOK(res4)) { - SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "grib_c_get_real8_elements" "', argument " "4"" of type '" "double *""'"); - } - arg4 = (double *)(argp4); - res5 = SWIG_ConvertPtr(obj4, &argp5,SWIGTYPE_p_int, 0 | 0 ); - if (!SWIG_IsOK(res5)) { - SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "grib_c_get_real8_elements" "', argument " "5"" of type '" "int *""'"); - } - arg5 = (int *)(argp5); - result = (int)grib_c_get_real8_elements(arg1,arg2,arg3,arg4,arg5); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_set_missing(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OO:grib_c_set_missing",&obj0,&obj1)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_set_missing" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_set_missing" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - result = (int)grib_c_set_missing(arg1,arg2); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_set_key_vals(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OO:grib_c_set_key_vals",&obj0,&obj1)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_set_key_vals" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_set_key_vals" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - result = (int)grib_c_set_key_vals(arg1,arg2); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_is_missing(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - int *arg3 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - int temp3 ; - int res3 = SWIG_TMPOBJ ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - arg3 = &temp3; - if (!PyArg_ParseTuple(args,(char *)"OO:grib_c_is_missing",&obj0,&obj1)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_is_missing" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_is_missing" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - result = (int)grib_c_is_missing(arg1,arg2,arg3); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res3)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg3))); - } else { - int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_int, new_flags)); - } - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_is_defined(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - int *arg3 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - int temp3 ; - int res3 = SWIG_TMPOBJ ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - arg3 = &temp3; - if (!PyArg_ParseTuple(args,(char *)"OO:grib_c_is_defined",&obj0,&obj1)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_is_defined" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_is_defined" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - result = (int)grib_c_is_defined(arg1,arg2,arg3); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res3)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg3))); - } else { - int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_int, new_flags)); - } - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_set_string_array(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - char **arg3 = (char **) 0 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOO:grib_c_set_string_array",&obj0,&obj1,&obj2)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_set_string_array" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_c_set_string_array" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - { - /* Check if is a list */ - if (PyList_Check(obj2)) { - int size = PyList_Size(obj2); - int i = 0; - arg3 = (char **) malloc((size+1)*sizeof(char *)); - for (i = 0; i < size; i++) { - PyObject *o = PyList_GetItem(obj2,i); - if (PyString_Check(o)) - arg3[i] = PyString_AsString(PyList_GetItem(obj2,i)); - else { - PyErr_SetString(PyExc_TypeError,"list must contain strings"); - free(arg3); - return NULL; - } - } - arg3[i] = 0; /* Last entry set to NULL */ - } else { - PyErr_SetString(PyExc_TypeError,"not a list"); - return NULL; - } - } - result = (int)grib_c_set_string_array(arg1,arg2,(char const **)arg3); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - { - free((char *) arg3); - } - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - { - free((char *) arg3); - } - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_set_double_ndarray(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - double *arg3 = (double *) 0 ; - int arg4 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - PyArrayObject *array3 = NULL ; - int is_new_object3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOO:grib_set_double_ndarray",&obj0,&obj1,&obj2)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_set_double_ndarray" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_set_double_ndarray" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - { - npy_intp size[1] = { - -1 - }; - array3 = obj_to_array_contiguous_allow_conversion(obj2, - NPY_DOUBLE, - &is_new_object3); - if (!array3 || !require_dimensions(array3, 1) || - !require_size(array3, size, 1)) SWIG_fail; - arg3 = (double*) array_data(array3); - arg4 = (int) array_size(array3,0); - } - result = (int)grib_set_double_ndarray(arg1,arg2,arg3,arg4); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - { - if (is_new_object3 && array3) - { - Py_DECREF(array3); - } - } - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - { - if (is_new_object3 && array3) - { - Py_DECREF(array3); - } - } - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_set_long_ndarray(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - long *arg3 = (long *) 0 ; - int arg4 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - PyArrayObject *array3 = NULL ; - int is_new_object3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOO:grib_set_long_ndarray",&obj0,&obj1,&obj2)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_set_long_ndarray" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_set_long_ndarray" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - { - npy_intp size[1] = { - -1 - }; - array3 = obj_to_array_contiguous_allow_conversion(obj2, - NPY_LONG, - &is_new_object3); - if (!array3 || !require_dimensions(array3, 1) || - !require_size(array3, size, 1)) SWIG_fail; - arg3 = (long*) array_data(array3); - arg4 = (int) array_size(array3,0); - } - result = (int)grib_set_long_ndarray(arg1,arg2,arg3,arg4); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - { - if (is_new_object3 && array3) - { - Py_DECREF(array3); - } - } - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - { - if (is_new_object3 && array3) - { - Py_DECREF(array3); - } - } - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_get_double_ndarray(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - double *arg3 = (double *) 0 ; - int arg4 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - PyObject *array3 = NULL ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOO:grib_get_double_ndarray",&obj0,&obj1,&obj2)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_get_double_ndarray" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_get_double_ndarray" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - { - npy_intp dims[1]; - if (!PyInt_Check(obj2)) - { - const char* typestring = pytype_string(obj2); - PyErr_Format(PyExc_TypeError, - "Int dimension expected. '%s' given.", - typestring); - SWIG_fail; - } - arg4 = (int) PyInt_AsLong(obj2); - dims[0] = (npy_intp) arg4; - array3 = PyArray_SimpleNew(1, dims, NPY_DOUBLE); - if (!array3) SWIG_fail; - arg3 = (double*) array_data(array3); - } - result = (int)grib_get_double_ndarray(arg1,arg2,arg3,arg4); - resultobj = SWIG_From_int((int)(result)); - { - resultobj = SWIG_Python_AppendOutput(resultobj,(PyObject*)array3); - } - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_get_long_ndarray(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - long *arg3 = (long *) 0 ; - int arg4 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - PyObject *array3 = NULL ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOO:grib_get_long_ndarray",&obj0,&obj1,&obj2)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_get_long_ndarray" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_get_long_ndarray" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - { - npy_intp dims[1]; - if (!PyInt_Check(obj2)) - { - const char* typestring = pytype_string(obj2); - PyErr_Format(PyExc_TypeError, - "Int dimension expected. '%s' given.", - typestring); - SWIG_fail; - } - arg4 = (int) PyInt_AsLong(obj2); - dims[0] = (npy_intp) arg4; - array3 = PyArray_SimpleNew(1, dims, NPY_LONG); - if (!array3) SWIG_fail; - arg3 = (long*) array_data(array3); - } - result = (int)grib_get_long_ndarray(arg1,arg2,arg3,arg4); - resultobj = SWIG_From_int((int)(result)); - { - resultobj = SWIG_Python_AppendOutput(resultobj,(PyObject*)array3); - } - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_get_double_ndelements(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - int *arg3 = (int *) 0 ; - int arg4 ; - double *arg5 = (double *) 0 ; - int arg6 ; - int temp1 ; - int res1 = 0 ; - int res2 ; - char *buf2 = 0 ; - int alloc2 = 0 ; - PyArrayObject *array3 = NULL ; - int is_new_object3 = 0 ; - PyObject *array5 = NULL ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOOO:grib_get_double_ndelements",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_get_double_ndelements" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "grib_get_double_ndelements" "', argument " "2"" of type '" "char *""'"); - } - arg2 = (char *)(buf2); - { - npy_intp size[1] = { - -1 - }; - array3 = obj_to_array_contiguous_allow_conversion(obj2, - NPY_INT, - &is_new_object3); - if (!array3 || !require_dimensions(array3, 1) || - !require_size(array3, size, 1)) SWIG_fail; - arg3 = (int*) array_data(array3); - arg4 = (int) array_size(array3,0); - } - { - npy_intp dims[1]; - if (!PyInt_Check(obj3)) - { - const char* typestring = pytype_string(obj3); - PyErr_Format(PyExc_TypeError, - "Int dimension expected. '%s' given.", - typestring); - SWIG_fail; - } - arg6 = (int) PyInt_AsLong(obj3); - dims[0] = (npy_intp) arg6; - array5 = PyArray_SimpleNew(1, dims, NPY_DOUBLE); - if (!array5) SWIG_fail; - arg5 = (double*) array_data(array5); - } - result = (int)grib_get_double_ndelements(arg1,arg2,arg3,arg4,arg5,arg6); - resultobj = SWIG_From_int((int)(result)); - { - resultobj = SWIG_Python_AppendOutput(resultobj,(PyObject*)array5); - } - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - { - if (is_new_object3 && array3) - { - Py_DECREF(array3); - } - } - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (alloc2 == SWIG_NEWOBJ) free((char*)buf2); - { - if (is_new_object3 && array3) - { - Py_DECREF(array3); - } - } - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_find_nearest_single(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int *arg2 = (int *) 0 ; - double *arg3 = (double *) 0 ; - double *arg4 = (double *) 0 ; - double *arg5 = (double *) 0 ; - double *arg6 = (double *) 0 ; - double *arg7 = (double *) 0 ; - double *arg8 = (double *) 0 ; - int *arg9 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - int temp2 ; - int res2 = 0 ; - double temp3 ; - int res3 = 0 ; - double temp4 ; - int res4 = 0 ; - double temp5 ; - int res5 = SWIG_TMPOBJ ; - double temp6 ; - int res6 = SWIG_TMPOBJ ; - double temp7 ; - int res7 = SWIG_TMPOBJ ; - double temp8 ; - int res8 = SWIG_TMPOBJ ; - int temp9 ; - int res9 = SWIG_TMPOBJ ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; - int result; - - arg5 = &temp5; - arg6 = &temp6; - arg7 = &temp7; - arg8 = &temp8; - arg9 = &temp9; - if (!PyArg_ParseTuple(args,(char *)"OOOO:grib_c_find_nearest_single",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_find_nearest_single" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - if (!(SWIG_IsOK((res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj1, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_find_nearest_single" "', argument " "2"" of type '" "int""'"); - } - temp2 = (int)(val); - arg2 = &temp2; - res2 = SWIG_AddTmpMask(ecode); - } - if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_double,0))))) { - double val; - int ecode = SWIG_AsVal_double(obj2, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_find_nearest_single" "', argument " "3"" of type '" "double""'"); - } - temp3 = (double)(val); - arg3 = &temp3; - res3 = SWIG_AddTmpMask(ecode); - } - if (!(SWIG_IsOK((res4 = SWIG_ConvertPtr(obj3,SWIG_as_voidptrptr(&arg4),SWIGTYPE_p_double,0))))) { - double val; - int ecode = SWIG_AsVal_double(obj3, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_find_nearest_single" "', argument " "4"" of type '" "double""'"); - } - temp4 = (double)(val); - arg4 = &temp4; - res4 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_find_nearest_single(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsTmpObj(res5)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_double((*arg5))); - } else { - int new_flags = SWIG_IsNewObj(res5) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg5), SWIGTYPE_p_double, new_flags)); - } - if (SWIG_IsTmpObj(res6)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_double((*arg6))); - } else { - int new_flags = SWIG_IsNewObj(res6) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg6), SWIGTYPE_p_double, new_flags)); - } - if (SWIG_IsTmpObj(res7)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_double((*arg7))); - } else { - int new_flags = SWIG_IsNewObj(res7) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg7), SWIGTYPE_p_double, new_flags)); - } - if (SWIG_IsTmpObj(res8)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_double((*arg8))); - } else { - int new_flags = SWIG_IsNewObj(res8) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg8), SWIGTYPE_p_double, new_flags)); - } - if (SWIG_IsTmpObj(res9)) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg9))); - } else { - int new_flags = SWIG_IsNewObj(res9) ? (SWIG_POINTER_OWN | 0 ) : 0 ; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg9), SWIGTYPE_p_int, new_flags)); - } - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (SWIG_IsNewObj(res2)) free((char*)arg2); - if (SWIG_IsNewObj(res3)) free((char*)arg3); - if (SWIG_IsNewObj(res4)) free((char*)arg4); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (SWIG_IsNewObj(res2)) free((char*)arg2); - if (SWIG_IsNewObj(res3)) free((char*)arg3); - if (SWIG_IsNewObj(res4)) free((char*)arg4); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_find_nearest_four_single(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - int *arg2 = (int *) 0 ; - double *arg3 = (double *) 0 ; - double *arg4 = (double *) 0 ; - double *arg5 = (double *) 0 ; - double *arg6 = (double *) 0 ; - double *arg7 = (double *) 0 ; - double *arg8 = (double *) 0 ; - int *arg9 = (int *) 0 ; - int temp1 ; - int res1 = 0 ; - int temp2 ; - int res2 = 0 ; - double temp3 ; - int res3 = 0 ; - double temp4 ; - int res4 = 0 ; - void *argp5 = 0 ; - int res5 = 0 ; - void *argp6 = 0 ; - int res6 = 0 ; - void *argp7 = 0 ; - int res7 = 0 ; - void *argp8 = 0 ; - int res8 = 0 ; - void *argp9 = 0 ; - int res9 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; - PyObject * obj4 = 0 ; - PyObject * obj5 = 0 ; - PyObject * obj6 = 0 ; - PyObject * obj7 = 0 ; - PyObject * obj8 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:grib_c_find_nearest_four_single",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_find_nearest_four_single" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - if (!(SWIG_IsOK((res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj1, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_find_nearest_four_single" "', argument " "2"" of type '" "int""'"); - } - temp2 = (int)(val); - arg2 = &temp2; - res2 = SWIG_AddTmpMask(ecode); - } - if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_double,0))))) { - double val; - int ecode = SWIG_AsVal_double(obj2, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_find_nearest_four_single" "', argument " "3"" of type '" "double""'"); - } - temp3 = (double)(val); - arg3 = &temp3; - res3 = SWIG_AddTmpMask(ecode); - } - if (!(SWIG_IsOK((res4 = SWIG_ConvertPtr(obj3,SWIG_as_voidptrptr(&arg4),SWIGTYPE_p_double,0))))) { - double val; - int ecode = SWIG_AsVal_double(obj3, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_find_nearest_four_single" "', argument " "4"" of type '" "double""'"); - } - temp4 = (double)(val); - arg4 = &temp4; - res4 = SWIG_AddTmpMask(ecode); - } - res5 = SWIG_ConvertPtr(obj4, &argp5,SWIGTYPE_p_double, 0 | 0 ); - if (!SWIG_IsOK(res5)) { - SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "grib_c_find_nearest_four_single" "', argument " "5"" of type '" "double *""'"); - } - arg5 = (double *)(argp5); - res6 = SWIG_ConvertPtr(obj5, &argp6,SWIGTYPE_p_double, 0 | 0 ); - if (!SWIG_IsOK(res6)) { - SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "grib_c_find_nearest_four_single" "', argument " "6"" of type '" "double *""'"); - } - arg6 = (double *)(argp6); - res7 = SWIG_ConvertPtr(obj6, &argp7,SWIGTYPE_p_double, 0 | 0 ); - if (!SWIG_IsOK(res7)) { - SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "grib_c_find_nearest_four_single" "', argument " "7"" of type '" "double *""'"); - } - arg7 = (double *)(argp7); - res8 = SWIG_ConvertPtr(obj7, &argp8,SWIGTYPE_p_double, 0 | 0 ); - if (!SWIG_IsOK(res8)) { - SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "grib_c_find_nearest_four_single" "', argument " "8"" of type '" "double *""'"); - } - arg8 = (double *)(argp8); - res9 = SWIG_ConvertPtr(obj8, &argp9,SWIGTYPE_p_int, 0 | 0 ); - if (!SWIG_IsOK(res9)) { - SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "grib_c_find_nearest_four_single" "', argument " "9"" of type '" "int *""'"); - } - arg9 = (int *)(argp9); - result = (int)grib_c_find_nearest_four_single(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); - resultobj = SWIG_From_int((int)(result)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (SWIG_IsNewObj(res2)) free((char*)arg2); - if (SWIG_IsNewObj(res3)) free((char*)arg3); - if (SWIG_IsNewObj(res4)) free((char*)arg4); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - if (SWIG_IsNewObj(res2)) free((char*)arg2); - if (SWIG_IsNewObj(res3)) free((char*)arg3); - if (SWIG_IsNewObj(res4)) free((char*)arg4); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_get_message(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - void **arg2 = (void **) 0 ; - size_t *arg3 = (size_t *) 0 ; - int temp1 ; - int res1 = 0 ; - void *temp2 = 0 ; - size_t tempn2 ; - PyObject * obj0 = 0 ; - int result; - - arg2 = &temp2; arg3 = &tempn2; - if (!PyArg_ParseTuple(args,(char *)"O:grib_c_get_message",&obj0)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_get_message" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - result = (int)grib_c_get_message(arg1,(void const **)arg2,arg3); - resultobj = SWIG_From_int((int)(result)); - if (*arg2) { - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_FromCharPtrAndSize(*arg2,*arg3)); - ; - } - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_get_error_string(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int *arg1 = (int *) 0 ; - char *arg2 = (char *) 0 ; - int arg3 ; - int temp1 ; - int res1 = 0 ; - char temp2[1024+1] ; - int val3 ; - int ecode3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - arg2 = (char *) temp2; - if (!PyArg_ParseTuple(args,(char *)"OO:grib_c_get_error_string",&obj0,&obj1)) SWIG_fail; - if (!(SWIG_IsOK((res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1),SWIGTYPE_p_int,0))))) { - int val; - int ecode = SWIG_AsVal_int(obj0, &val); - if (!SWIG_IsOK(ecode)) { - SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "grib_c_get_error_string" "', argument " "1"" of type '" "int""'"); - } - temp1 = (int)(val); - arg1 = &temp1; - res1 = SWIG_AddTmpMask(ecode); - } - ecode3 = SWIG_AsVal_int(obj1, &val3); - if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "grib_c_get_error_string" "', argument " "3"" of type '" "int""'"); - } - arg3 = (int)(val3); - result = (int)grib_c_get_error_string(arg1,arg2,arg3); - resultobj = SWIG_From_int((int)(result)); - arg2[1024] = 0; - resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_FromCharPtr(arg2)); - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return resultobj; -fail: - if (SWIG_IsNewObj(res1)) free((char*)arg1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_no_fail_on_wrong_length(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - int arg1 ; - int val1 ; - int ecode1 = 0 ; - PyObject * obj0 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:no_fail_on_wrong_length",&obj0)) SWIG_fail; - ecode1 = SWIG_AsVal_int(obj0, &val1); - if (!SWIG_IsOK(ecode1)) { - SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "no_fail_on_wrong_length" "', argument " "1"" of type '" "int""'"); - } - arg1 = (int)(val1); - no_fail_on_wrong_length(arg1); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_get_api_version(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - long result; - - if (!PyArg_ParseTuple(args,(char *)":grib_c_get_api_version")) SWIG_fail; - result = (long)grib_c_get_api_version(); - resultobj = SWIG_From_long((long)(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_gts_header_on(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - - if (!PyArg_ParseTuple(args,(char *)":grib_c_gts_header_on")) SWIG_fail; - grib_c_gts_header_on(); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_gts_header_off(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - - if (!PyArg_ParseTuple(args,(char *)":grib_c_gts_header_off")) SWIG_fail; - grib_c_gts_header_off(); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_set_definitions_path(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - char *arg1 = (char *) 0 ; - int res1 ; - char *buf1 = 0 ; - int alloc1 = 0 ; - PyObject * obj0 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:grib_c_set_definitions_path",&obj0)) SWIG_fail; - res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "grib_c_set_definitions_path" "', argument " "1"" of type '" "char const *""'"); - } - arg1 = (char *)(buf1); - grib_c_set_definitions_path((char const *)arg1); - resultobj = SWIG_Py_Void(); - if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); - return resultobj; -fail: - if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); - return NULL; -} - - -SWIGINTERN PyObject *_wrap_grib_c_set_samples_path(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - char *arg1 = (char *) 0 ; - int res1 ; - char *buf1 = 0 ; - int alloc1 = 0 ; - PyObject * obj0 = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"O:grib_c_set_samples_path",&obj0)) SWIG_fail; - res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "grib_c_set_samples_path" "', argument " "1"" of type '" "char const *""'"); - } - arg1 = (char *)(buf1); - grib_c_set_samples_path((char const *)arg1); - resultobj = SWIG_Py_Void(); - if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); - return resultobj; -fail: - if (alloc1 == SWIG_NEWOBJ) free((char*)buf1); - return NULL; -} - - -static PyMethodDef SwigMethods[] = { - { (char *)"SWIG_PyInstanceMethod_New", (PyCFunction)SWIG_PyInstanceMethod_New, METH_O, NULL}, - { (char *)"cdata", _wrap_cdata, METH_VARARGS, NULL}, - { (char *)"memmove", _wrap_memmove, METH_VARARGS, NULL}, - { (char *)"new_intp", _wrap_new_intp, METH_VARARGS, NULL}, - { (char *)"delete_intp", _wrap_delete_intp, METH_VARARGS, NULL}, - { (char *)"intp_assign", _wrap_intp_assign, METH_VARARGS, NULL}, - { (char *)"intp_value", _wrap_intp_value, METH_VARARGS, NULL}, - { (char *)"intp_cast", _wrap_intp_cast, METH_VARARGS, NULL}, - { (char *)"intp_frompointer", _wrap_intp_frompointer, METH_VARARGS, NULL}, - { (char *)"intp_swigregister", intp_swigregister, METH_VARARGS, NULL}, - { (char *)"new_sizetp", _wrap_new_sizetp, METH_VARARGS, NULL}, - { (char *)"delete_sizetp", _wrap_delete_sizetp, METH_VARARGS, NULL}, - { (char *)"sizetp_assign", _wrap_sizetp_assign, METH_VARARGS, NULL}, - { (char *)"sizetp_value", _wrap_sizetp_value, METH_VARARGS, NULL}, - { (char *)"sizetp_cast", _wrap_sizetp_cast, METH_VARARGS, NULL}, - { (char *)"sizetp_frompointer", _wrap_sizetp_frompointer, METH_VARARGS, NULL}, - { (char *)"sizetp_swigregister", sizetp_swigregister, METH_VARARGS, NULL}, - { (char *)"new_longp", _wrap_new_longp, METH_VARARGS, NULL}, - { (char *)"delete_longp", _wrap_delete_longp, METH_VARARGS, NULL}, - { (char *)"longp_assign", _wrap_longp_assign, METH_VARARGS, NULL}, - { (char *)"longp_value", _wrap_longp_value, METH_VARARGS, NULL}, - { (char *)"longp_cast", _wrap_longp_cast, METH_VARARGS, NULL}, - { (char *)"longp_frompointer", _wrap_longp_frompointer, METH_VARARGS, NULL}, - { (char *)"longp_swigregister", longp_swigregister, METH_VARARGS, NULL}, - { (char *)"new_doublep", _wrap_new_doublep, METH_VARARGS, NULL}, - { (char *)"delete_doublep", _wrap_delete_doublep, METH_VARARGS, NULL}, - { (char *)"doublep_assign", _wrap_doublep_assign, METH_VARARGS, NULL}, - { (char *)"doublep_value", _wrap_doublep_value, METH_VARARGS, NULL}, - { (char *)"doublep_cast", _wrap_doublep_cast, METH_VARARGS, NULL}, - { (char *)"doublep_frompointer", _wrap_doublep_frompointer, METH_VARARGS, NULL}, - { (char *)"doublep_swigregister", doublep_swigregister, METH_VARARGS, NULL}, - { (char *)"new_doubleArray", _wrap_new_doubleArray, METH_VARARGS, NULL}, - { (char *)"delete_doubleArray", _wrap_delete_doubleArray, METH_VARARGS, NULL}, - { (char *)"doubleArray_getitem", _wrap_doubleArray_getitem, METH_VARARGS, NULL}, - { (char *)"doubleArray_setitem", _wrap_doubleArray_setitem, METH_VARARGS, NULL}, - { (char *)"new_longArray", _wrap_new_longArray, METH_VARARGS, NULL}, - { (char *)"delete_longArray", _wrap_delete_longArray, METH_VARARGS, NULL}, - { (char *)"longArray_getitem", _wrap_longArray_getitem, METH_VARARGS, NULL}, - { (char *)"longArray_setitem", _wrap_longArray_setitem, METH_VARARGS, NULL}, - { (char *)"new_intArray", _wrap_new_intArray, METH_VARARGS, NULL}, - { (char *)"delete_intArray", _wrap_delete_intArray, METH_VARARGS, NULL}, - { (char *)"intArray_getitem", _wrap_intArray_getitem, METH_VARARGS, NULL}, - { (char *)"intArray_setitem", _wrap_intArray_setitem, METH_VARARGS, NULL}, - { (char *)"new_stringArray", _wrap_new_stringArray, METH_VARARGS, NULL}, - { (char *)"delete_stringArray", _wrap_delete_stringArray, METH_VARARGS, NULL}, - { (char *)"stringArray_getitem", _wrap_stringArray_getitem, METH_VARARGS, NULL}, - { (char *)"stringArray_setitem", _wrap_stringArray_setitem, METH_VARARGS, NULL}, - { (char *)"grib_c_new_from_file", _wrap_grib_c_new_from_file, METH_VARARGS, NULL}, - { (char *)"grib_c_new_any_from_file", _wrap_grib_c_new_any_from_file, METH_VARARGS, NULL}, - { (char *)"grib_c_new_bufr_from_file", _wrap_grib_c_new_bufr_from_file, METH_VARARGS, NULL}, - { (char *)"grib_c_new_gts_from_file", _wrap_grib_c_new_gts_from_file, METH_VARARGS, NULL}, - { (char *)"grib_c_new_metar_from_file", _wrap_grib_c_new_metar_from_file, METH_VARARGS, NULL}, - { (char *)"grib_c_iterator_new", _wrap_grib_c_iterator_new, METH_VARARGS, NULL}, - { (char *)"grib_c_keys_iterator_new", _wrap_grib_c_keys_iterator_new, METH_VARARGS, NULL}, - { (char *)"codes_c_bufr_keys_iterator_new", _wrap_codes_c_bufr_keys_iterator_new, METH_VARARGS, NULL}, - { (char *)"grib_c_grib_new_from_samples", _wrap_grib_c_grib_new_from_samples, METH_VARARGS, NULL}, - { (char *)"grib_c_bufr_new_from_samples", _wrap_grib_c_bufr_new_from_samples, METH_VARARGS, NULL}, - { (char *)"grib_c_index_new_from_file", _wrap_grib_c_index_new_from_file, METH_VARARGS, NULL}, - { (char *)"grib_c_index_add_file", _wrap_grib_c_index_add_file, METH_VARARGS, NULL}, - { (char *)"grib_c_new_from_index", _wrap_grib_c_new_from_index, METH_VARARGS, NULL}, - { (char *)"grib_c_index_write", _wrap_grib_c_index_write, METH_VARARGS, NULL}, - { (char *)"grib_c_index_read", _wrap_grib_c_index_read, METH_VARARGS, NULL}, - { (char *)"grib_c_new_from_message", _wrap_grib_c_new_from_message, METH_VARARGS, NULL}, - { (char *)"codes_c_close_file", _wrap_codes_c_close_file, METH_VARARGS, NULL}, - { (char *)"grib_c_count_in_file", _wrap_grib_c_count_in_file, METH_VARARGS, NULL}, - { (char *)"grib_c_release", _wrap_grib_c_release, METH_VARARGS, NULL}, - { (char *)"grib_c_write", _wrap_grib_c_write, METH_VARARGS, NULL}, - { (char *)"grib_c_get_size_long", _wrap_grib_c_get_size_long, METH_VARARGS, NULL}, - { (char *)"grib_c_get_string_length", _wrap_grib_c_get_string_length, METH_VARARGS, NULL}, - { (char *)"grib_c_clone", _wrap_grib_c_clone, METH_VARARGS, NULL}, - { (char *)"grib_c_copy_namespace", _wrap_grib_c_copy_namespace, METH_VARARGS, NULL}, - { (char *)"grib_c_get_message_size", _wrap_grib_c_get_message_size, METH_VARARGS, NULL}, - { (char *)"grib_c_get_message_offset", _wrap_grib_c_get_message_offset, METH_VARARGS, NULL}, - { (char *)"grib_c_get_native_type", _wrap_grib_c_get_native_type, METH_VARARGS, NULL}, - { (char *)"grib_c_multi_new", _wrap_grib_c_multi_new, METH_VARARGS, NULL}, - { (char *)"grib_c_multi_support_on", _wrap_grib_c_multi_support_on, METH_VARARGS, NULL}, - { (char *)"grib_c_multi_write", _wrap_grib_c_multi_write, METH_VARARGS, NULL}, - { (char *)"grib_c_multi_support_off", _wrap_grib_c_multi_support_off, METH_VARARGS, NULL}, - { (char *)"grib_c_multi_release", _wrap_grib_c_multi_release, METH_VARARGS, NULL}, - { (char *)"grib_c_multi_append", _wrap_grib_c_multi_append, METH_VARARGS, NULL}, - { (char *)"grib_c_gribex_mode_on", _wrap_grib_c_gribex_mode_on, METH_VARARGS, NULL}, - { (char *)"grib_c_gribex_mode_off", _wrap_grib_c_gribex_mode_off, METH_VARARGS, NULL}, - { (char *)"grib_c_keys_iterator_next", _wrap_grib_c_keys_iterator_next, METH_VARARGS, NULL}, - { (char *)"codes_c_bufr_keys_iterator_next", _wrap_codes_c_bufr_keys_iterator_next, METH_VARARGS, NULL}, - { (char *)"grib_c_keys_iterator_delete", _wrap_grib_c_keys_iterator_delete, METH_VARARGS, NULL}, - { (char *)"codes_c_bufr_keys_iterator_delete", _wrap_codes_c_bufr_keys_iterator_delete, METH_VARARGS, NULL}, - { (char *)"grib_c_skip_computed", _wrap_grib_c_skip_computed, METH_VARARGS, NULL}, - { (char *)"grib_c_skip_coded", _wrap_grib_c_skip_coded, METH_VARARGS, NULL}, - { (char *)"grib_c_skip_edition_specific", _wrap_grib_c_skip_edition_specific, METH_VARARGS, NULL}, - { (char *)"grib_c_skip_duplicates", _wrap_grib_c_skip_duplicates, METH_VARARGS, NULL}, - { (char *)"grib_c_skip_read_only", _wrap_grib_c_skip_read_only, METH_VARARGS, NULL}, - { (char *)"grib_c_skip_function", _wrap_grib_c_skip_function, METH_VARARGS, NULL}, - { (char *)"grib_c_keys_iterator_rewind", _wrap_grib_c_keys_iterator_rewind, METH_VARARGS, NULL}, - { (char *)"codes_c_bufr_keys_iterator_rewind", _wrap_codes_c_bufr_keys_iterator_rewind, METH_VARARGS, NULL}, - { (char *)"grib_c_bufr_copy_data", _wrap_grib_c_bufr_copy_data, METH_VARARGS, NULL}, - { (char *)"grib_c_keys_iterator_get_name", _wrap_grib_c_keys_iterator_get_name, METH_VARARGS, NULL}, - { (char *)"codes_c_bufr_keys_iterator_get_name", _wrap_codes_c_bufr_keys_iterator_get_name, METH_VARARGS, NULL}, - { (char *)"grib_c_index_get_size_long", _wrap_grib_c_index_get_size_long, METH_VARARGS, NULL}, - { (char *)"grib_c_index_get_long", _wrap_grib_c_index_get_long, METH_VARARGS, NULL}, - { (char *)"grib_c_index_get_real8", _wrap_grib_c_index_get_real8, METH_VARARGS, NULL}, - { (char *)"grib_c_index_get_string", _wrap_grib_c_index_get_string, METH_VARARGS, NULL}, - { (char *)"grib_c_index_select_long", _wrap_grib_c_index_select_long, METH_VARARGS, NULL}, - { (char *)"grib_c_index_select_real8", _wrap_grib_c_index_select_real8, METH_VARARGS, NULL}, - { (char *)"grib_c_index_select_string", _wrap_grib_c_index_select_string, METH_VARARGS, NULL}, - { (char *)"grib_c_index_release", _wrap_grib_c_index_release, METH_VARARGS, NULL}, - { (char *)"grib_c_iterator_delete", _wrap_grib_c_iterator_delete, METH_VARARGS, NULL}, - { (char *)"grib_c_iterator_next", _wrap_grib_c_iterator_next, METH_VARARGS, NULL}, - { (char *)"grib_c_get_string", _wrap_grib_c_get_string, METH_VARARGS, NULL}, - { (char *)"grib_c_get_string_array", _wrap_grib_c_get_string_array, METH_VARARGS, NULL}, - { (char *)"grib_c_set_string", _wrap_grib_c_set_string, METH_VARARGS, NULL}, - { (char *)"grib_c_get_long", _wrap_grib_c_get_long, METH_VARARGS, NULL}, - { (char *)"grib_c_set_long", _wrap_grib_c_set_long, METH_VARARGS, NULL}, - { (char *)"grib_c_get_double", _wrap_grib_c_get_double, METH_VARARGS, NULL}, - { (char *)"grib_c_set_double", _wrap_grib_c_set_double, METH_VARARGS, NULL}, - { (char *)"grib_c_set_real8_array", _wrap_grib_c_set_real8_array, METH_VARARGS, NULL}, - { (char *)"grib_c_get_real8_array", _wrap_grib_c_get_real8_array, METH_VARARGS, NULL}, - { (char *)"grib_c_get_long_array", _wrap_grib_c_get_long_array, METH_VARARGS, NULL}, - { (char *)"grib_c_set_long_array", _wrap_grib_c_set_long_array, METH_VARARGS, NULL}, - { (char *)"grib_c_get_real8_element", _wrap_grib_c_get_real8_element, METH_VARARGS, NULL}, - { (char *)"grib_c_get_real8_elements", _wrap_grib_c_get_real8_elements, METH_VARARGS, NULL}, - { (char *)"grib_c_set_missing", _wrap_grib_c_set_missing, METH_VARARGS, NULL}, - { (char *)"grib_c_set_key_vals", _wrap_grib_c_set_key_vals, METH_VARARGS, NULL}, - { (char *)"grib_c_is_missing", _wrap_grib_c_is_missing, METH_VARARGS, NULL}, - { (char *)"grib_c_is_defined", _wrap_grib_c_is_defined, METH_VARARGS, NULL}, - { (char *)"grib_c_set_string_array", _wrap_grib_c_set_string_array, METH_VARARGS, NULL}, - { (char *)"grib_set_double_ndarray", _wrap_grib_set_double_ndarray, METH_VARARGS, NULL}, - { (char *)"grib_set_long_ndarray", _wrap_grib_set_long_ndarray, METH_VARARGS, NULL}, - { (char *)"grib_get_double_ndarray", _wrap_grib_get_double_ndarray, METH_VARARGS, NULL}, - { (char *)"grib_get_long_ndarray", _wrap_grib_get_long_ndarray, METH_VARARGS, NULL}, - { (char *)"grib_get_double_ndelements", _wrap_grib_get_double_ndelements, METH_VARARGS, NULL}, - { (char *)"grib_c_find_nearest_single", _wrap_grib_c_find_nearest_single, METH_VARARGS, NULL}, - { (char *)"grib_c_find_nearest_four_single", _wrap_grib_c_find_nearest_four_single, METH_VARARGS, NULL}, - { (char *)"grib_c_get_message", _wrap_grib_c_get_message, METH_VARARGS, NULL}, - { (char *)"grib_c_get_error_string", _wrap_grib_c_get_error_string, METH_VARARGS, NULL}, - { (char *)"no_fail_on_wrong_length", _wrap_no_fail_on_wrong_length, METH_VARARGS, NULL}, - { (char *)"grib_c_get_api_version", _wrap_grib_c_get_api_version, METH_VARARGS, NULL}, - { (char *)"grib_c_gts_header_on", _wrap_grib_c_gts_header_on, METH_VARARGS, NULL}, - { (char *)"grib_c_gts_header_off", _wrap_grib_c_gts_header_off, METH_VARARGS, NULL}, - { (char *)"grib_c_set_definitions_path", _wrap_grib_c_set_definitions_path, METH_VARARGS, NULL}, - { (char *)"grib_c_set_samples_path", _wrap_grib_c_set_samples_path, METH_VARARGS, NULL}, - { NULL, NULL, 0, NULL } -}; - - -/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */ - -static void *_p_intpTo_p_int(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((int *) ((intp *) x)); -} -static void *_p_doublepTo_p_double(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((double *) ((doublep *) x)); -} -static void *_p_sizetpTo_p_size_t(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((size_t *) ((sizetp *) x)); -} -static void *_p_longpTo_p_long(void *x, int *SWIGUNUSEDPARM(newmemory)) { - return (void *)((long *) ((longp *) x)); -} -static swig_type_info _swigt__p_FILE = {"_p_FILE", "FILE *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_double = {"_p_double", "double *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_doublep = {"_p_doublep", "doublep *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_int = {"_p_int", "int *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_intp = {"_p_intp", "intp *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_long = {"_p_long", "long *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_longp = {"_p_longp", "longp *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_p_char = {"_p_p_char", "char **", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_p_void = {"_p_p_void", "void **", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_size_t = {"_p_size_t", "size_t *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_sizetp = {"_p_sizetp", "sizetp *", 0, 0, (void*)0, 0}; - -static swig_type_info *swig_type_initial[] = { - &_swigt__p_FILE, - &_swigt__p_char, - &_swigt__p_double, - &_swigt__p_doublep, - &_swigt__p_int, - &_swigt__p_intp, - &_swigt__p_long, - &_swigt__p_longp, - &_swigt__p_p_char, - &_swigt__p_p_void, - &_swigt__p_size_t, - &_swigt__p_sizetp, -}; - -static swig_cast_info _swigc__p_FILE[] = { {&_swigt__p_FILE, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_double[] = { {&_swigt__p_double, 0, 0, 0}, {&_swigt__p_doublep, _p_doublepTo_p_double, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_doublep[] = { {&_swigt__p_doublep, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_int[] = { {&_swigt__p_intp, _p_intpTo_p_int, 0, 0}, {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_intp[] = { {&_swigt__p_intp, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_long[] = { {&_swigt__p_long, 0, 0, 0}, {&_swigt__p_longp, _p_longpTo_p_long, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_longp[] = { {&_swigt__p_longp, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_p_char[] = { {&_swigt__p_p_char, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_p_void[] = { {&_swigt__p_p_void, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_size_t[] = { {&_swigt__p_sizetp, _p_sizetpTo_p_size_t, 0, 0}, {&_swigt__p_size_t, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_sizetp[] = { {&_swigt__p_sizetp, 0, 0, 0},{0, 0, 0, 0}}; - -static swig_cast_info *swig_cast_initial[] = { - _swigc__p_FILE, - _swigc__p_char, - _swigc__p_double, - _swigc__p_doublep, - _swigc__p_int, - _swigc__p_intp, - _swigc__p_long, - _swigc__p_longp, - _swigc__p_p_char, - _swigc__p_p_void, - _swigc__p_size_t, - _swigc__p_sizetp, -}; - - -/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */ - -static swig_const_info swig_const_table[] = { -{0, 0, 0, 0.0, 0, 0}}; - -#ifdef __cplusplus -} -#endif -/* ----------------------------------------------------------------------------- - * Type initialization: - * This problem is tough by the requirement that no dynamic - * memory is used. Also, since swig_type_info structures store pointers to - * swig_cast_info structures and swig_cast_info structures store pointers back - * to swig_type_info structures, we need some lookup code at initialization. - * The idea is that swig generates all the structures that are needed. - * The runtime then collects these partially filled structures. - * The SWIG_InitializeModule function takes these initial arrays out of - * swig_module, and does all the lookup, filling in the swig_module.types - * array with the correct data and linking the correct swig_cast_info - * structures together. - * - * The generated swig_type_info structures are assigned statically to an initial - * array. We just loop through that array, and handle each type individually. - * First we lookup if this type has been already loaded, and if so, use the - * loaded structure instead of the generated one. Then we have to fill in the - * cast linked list. The cast data is initially stored in something like a - * two-dimensional array. Each row corresponds to a type (there are the same - * number of rows as there are in the swig_type_initial array). Each entry in - * a column is one of the swig_cast_info structures for that type. - * The cast_initial array is actually an array of arrays, because each row has - * a variable number of columns. So to actually build the cast linked list, - * we find the array of casts associated with the type, and loop through it - * adding the casts to the list. The one last trick we need to do is making - * sure the type pointer in the swig_cast_info struct is correct. - * - * First off, we lookup the cast->type name to see if it is already loaded. - * There are three cases to handle: - * 1) If the cast->type has already been loaded AND the type we are adding - * casting info to has not been loaded (it is in this module), THEN we - * replace the cast->type pointer with the type pointer that has already - * been loaded. - * 2) If BOTH types (the one we are adding casting info to, and the - * cast->type) are loaded, THEN the cast info has already been loaded by - * the previous module so we just ignore it. - * 3) Finally, if cast->type has not already been loaded, then we add that - * swig_cast_info to the linked list (because the cast->type) pointer will - * be correct. - * ----------------------------------------------------------------------------- */ - -#ifdef __cplusplus -extern "C" { -#if 0 -} /* c-mode */ -#endif -#endif - -#if 0 -#define SWIGRUNTIME_DEBUG -#endif - - -SWIGRUNTIME void -SWIG_InitializeModule(void *clientdata) { - size_t i; - swig_module_info *module_head, *iter; - int init; - - /* check to see if the circular list has been setup, if not, set it up */ - if (swig_module.next==0) { - /* Initialize the swig_module */ - swig_module.type_initial = swig_type_initial; - swig_module.cast_initial = swig_cast_initial; - swig_module.next = &swig_module; - init = 1; - } else { - init = 0; - } - - /* Try and load any already created modules */ - module_head = SWIG_GetModule(clientdata); - if (!module_head) { - /* This is the first module loaded for this interpreter */ - /* so set the swig module into the interpreter */ - SWIG_SetModule(clientdata, &swig_module); - } else { - /* the interpreter has loaded a SWIG module, but has it loaded this one? */ - iter=module_head; - do { - if (iter==&swig_module) { - /* Our module is already in the list, so there's nothing more to do. */ - return; - } - iter=iter->next; - } while (iter!= module_head); - - /* otherwise we must add our module into the list */ - swig_module.next = module_head->next; - module_head->next = &swig_module; - } - - /* When multiple interpreters are used, a module could have already been initialized in - a different interpreter, but not yet have a pointer in this interpreter. - In this case, we do not want to continue adding types... everything should be - set up already */ - if (init == 0) return; - - /* Now work on filling in swig_module.types */ -#ifdef SWIGRUNTIME_DEBUG - printf("SWIG_InitializeModule: size %d\n", swig_module.size); -#endif - for (i = 0; i < swig_module.size; ++i) { - swig_type_info *type = 0; - swig_type_info *ret; - swig_cast_info *cast; - -#ifdef SWIGRUNTIME_DEBUG - printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name); -#endif - - /* if there is another module already loaded */ - if (swig_module.next != &swig_module) { - type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name); - } - if (type) { - /* Overwrite clientdata field */ -#ifdef SWIGRUNTIME_DEBUG - printf("SWIG_InitializeModule: found type %s\n", type->name); -#endif - if (swig_module.type_initial[i]->clientdata) { - type->clientdata = swig_module.type_initial[i]->clientdata; -#ifdef SWIGRUNTIME_DEBUG - printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name); -#endif - } - } else { - type = swig_module.type_initial[i]; - } - - /* Insert casting types */ - cast = swig_module.cast_initial[i]; - while (cast->type) { - /* Don't need to add information already in the list */ - ret = 0; -#ifdef SWIGRUNTIME_DEBUG - printf("SWIG_InitializeModule: look cast %s\n", cast->type->name); -#endif - if (swig_module.next != &swig_module) { - ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name); -#ifdef SWIGRUNTIME_DEBUG - if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name); -#endif - } - if (ret) { - if (type == swig_module.type_initial[i]) { -#ifdef SWIGRUNTIME_DEBUG - printf("SWIG_InitializeModule: skip old type %s\n", ret->name); -#endif - cast->type = ret; - ret = 0; - } else { - /* Check for casting already in the list */ - swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type); -#ifdef SWIGRUNTIME_DEBUG - if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name); -#endif - if (!ocast) ret = 0; - } - } - - if (!ret) { -#ifdef SWIGRUNTIME_DEBUG - printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name); -#endif - if (type->cast) { - type->cast->prev = cast; - cast->next = type->cast; - } - type->cast = cast; - } - cast++; - } - /* Set entry in modules->types array equal to the type */ - swig_module.types[i] = type; - } - swig_module.types[i] = 0; - -#ifdef SWIGRUNTIME_DEBUG - printf("**** SWIG_InitializeModule: Cast List ******\n"); - for (i = 0; i < swig_module.size; ++i) { - int j = 0; - swig_cast_info *cast = swig_module.cast_initial[i]; - printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name); - while (cast->type) { - printf("SWIG_InitializeModule: cast type %s\n", cast->type->name); - cast++; - ++j; - } - printf("---- Total casts: %d\n",j); - } - printf("**** SWIG_InitializeModule: Cast List ******\n"); -#endif -} - -/* This function will propagate the clientdata field of type to -* any new swig_type_info structures that have been added into the list -* of equivalent types. It is like calling -* SWIG_TypeClientData(type, clientdata) a second time. -*/ -SWIGRUNTIME void -SWIG_PropagateClientData(void) { - size_t i; - swig_cast_info *equiv; - static int init_run = 0; - - if (init_run) return; - init_run = 1; - - for (i = 0; i < swig_module.size; i++) { - if (swig_module.types[i]->clientdata) { - equiv = swig_module.types[i]->cast; - while (equiv) { - if (!equiv->converter) { - if (equiv->type && !equiv->type->clientdata) - SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata); - } - equiv = equiv->next; - } - } - } -} - -#ifdef __cplusplus -#if 0 -{ - /* c-mode */ -#endif -} -#endif - - - -#ifdef __cplusplus -extern "C" { -#endif - - /* Python-specific SWIG API */ -#define SWIG_newvarlink() SWIG_Python_newvarlink() -#define SWIG_addvarlink(p, name, get_attr, set_attr) SWIG_Python_addvarlink(p, name, get_attr, set_attr) -#define SWIG_InstallConstants(d, constants) SWIG_Python_InstallConstants(d, constants) - - /* ----------------------------------------------------------------------------- - * global variable support code. - * ----------------------------------------------------------------------------- */ - - typedef struct swig_globalvar { - char *name; /* Name of global variable */ - PyObject *(*get_attr)(void); /* Return the current value */ - int (*set_attr)(PyObject *); /* Set the value */ - struct swig_globalvar *next; - } swig_globalvar; - - typedef struct swig_varlinkobject { - PyObject_HEAD - swig_globalvar *vars; - } swig_varlinkobject; - - SWIGINTERN PyObject * - swig_varlink_repr(swig_varlinkobject *SWIGUNUSEDPARM(v)) { -#if PY_VERSION_HEX >= 0x03000000 - return PyUnicode_InternFromString(""); -#else - return PyString_FromString(""); -#endif - } - - SWIGINTERN PyObject * - swig_varlink_str(swig_varlinkobject *v) { -#if PY_VERSION_HEX >= 0x03000000 - PyObject *str = PyUnicode_InternFromString("("); - PyObject *tail; - PyObject *joined; - swig_globalvar *var; - for (var = v->vars; var; var=var->next) { - tail = PyUnicode_FromString(var->name); - joined = PyUnicode_Concat(str, tail); - Py_DecRef(str); - Py_DecRef(tail); - str = joined; - if (var->next) { - tail = PyUnicode_InternFromString(", "); - joined = PyUnicode_Concat(str, tail); - Py_DecRef(str); - Py_DecRef(tail); - str = joined; - } - } - tail = PyUnicode_InternFromString(")"); - joined = PyUnicode_Concat(str, tail); - Py_DecRef(str); - Py_DecRef(tail); - str = joined; -#else - PyObject *str = PyString_FromString("("); - swig_globalvar *var; - for (var = v->vars; var; var=var->next) { - PyString_ConcatAndDel(&str,PyString_FromString(var->name)); - if (var->next) PyString_ConcatAndDel(&str,PyString_FromString(", ")); - } - PyString_ConcatAndDel(&str,PyString_FromString(")")); -#endif - return str; - } - - SWIGINTERN int - swig_varlink_print(swig_varlinkobject *v, FILE *fp, int SWIGUNUSEDPARM(flags)) { - char *tmp; - PyObject *str = swig_varlink_str(v); - fprintf(fp,"Swig global variables "); - fprintf(fp,"%s\n", tmp = SWIG_Python_str_AsChar(str)); - SWIG_Python_str_DelForPy3(tmp); - Py_DECREF(str); - return 0; - } - - SWIGINTERN void - swig_varlink_dealloc(swig_varlinkobject *v) { - swig_globalvar *var = v->vars; - while (var) { - swig_globalvar *n = var->next; - free(var->name); - free(var); - var = n; - } - } - - SWIGINTERN PyObject * - swig_varlink_getattr(swig_varlinkobject *v, char *n) { - PyObject *res = NULL; - swig_globalvar *var = v->vars; - while (var) { - if (strcmp(var->name,n) == 0) { - res = (*var->get_attr)(); - break; - } - var = var->next; - } - if (res == NULL && !PyErr_Occurred()) { - PyErr_Format(PyExc_AttributeError, "Unknown C global variable '%s'", n); - } - return res; - } - - SWIGINTERN int - swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) { - int res = 1; - swig_globalvar *var = v->vars; - while (var) { - if (strcmp(var->name,n) == 0) { - res = (*var->set_attr)(p); - break; - } - var = var->next; - } - if (res == 1 && !PyErr_Occurred()) { - PyErr_Format(PyExc_AttributeError, "Unknown C global variable '%s'", n); - } - return res; - } - - SWIGINTERN PyTypeObject* - swig_varlink_type(void) { - static char varlink__doc__[] = "Swig var link object"; - static PyTypeObject varlink_type; - static int type_init = 0; - if (!type_init) { - const PyTypeObject tmp = { -#if PY_VERSION_HEX >= 0x03000000 - PyVarObject_HEAD_INIT(NULL, 0) -#else - PyObject_HEAD_INIT(NULL) - 0, /* ob_size */ -#endif - (char *)"swigvarlink", /* tp_name */ - sizeof(swig_varlinkobject), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor) swig_varlink_dealloc, /* tp_dealloc */ - (printfunc) swig_varlink_print, /* tp_print */ - (getattrfunc) swig_varlink_getattr, /* tp_getattr */ - (setattrfunc) swig_varlink_setattr, /* tp_setattr */ - 0, /* tp_compare */ - (reprfunc) swig_varlink_repr, /* tp_repr */ - 0, /* tp_as_number */ - 0, /* tp_as_sequence */ - 0, /* tp_as_mapping */ - 0, /* tp_hash */ - 0, /* tp_call */ - (reprfunc) swig_varlink_str, /* tp_str */ - 0, /* tp_getattro */ - 0, /* tp_setattro */ - 0, /* tp_as_buffer */ - 0, /* tp_flags */ - varlink__doc__, /* tp_doc */ - 0, /* tp_traverse */ - 0, /* tp_clear */ - 0, /* tp_richcompare */ - 0, /* tp_weaklistoffset */ -#if PY_VERSION_HEX >= 0x02020000 - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* tp_iter -> tp_weaklist */ -#endif -#if PY_VERSION_HEX >= 0x02030000 - 0, /* tp_del */ -#endif -#if PY_VERSION_HEX >= 0x02060000 - 0, /* tp_version_tag */ -#endif -#if PY_VERSION_HEX >= 0x03040000 - 0, /* tp_finalize */ -#endif -#ifdef COUNT_ALLOCS - 0, /* tp_allocs */ - 0, /* tp_frees */ - 0, /* tp_maxalloc */ -#if PY_VERSION_HEX >= 0x02050000 - 0, /* tp_prev */ -#endif - 0 /* tp_next */ -#endif - }; - varlink_type = tmp; - type_init = 1; -#if PY_VERSION_HEX < 0x02020000 - varlink_type.ob_type = &PyType_Type; -#else - if (PyType_Ready(&varlink_type) < 0) - return NULL; -#endif - } - return &varlink_type; - } - - /* Create a variable linking object for use later */ - SWIGINTERN PyObject * - SWIG_Python_newvarlink(void) { - swig_varlinkobject *result = PyObject_NEW(swig_varlinkobject, swig_varlink_type()); - if (result) { - result->vars = 0; - } - return ((PyObject*) result); - } - - SWIGINTERN void - SWIG_Python_addvarlink(PyObject *p, char *name, PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) { - swig_varlinkobject *v = (swig_varlinkobject *) p; - swig_globalvar *gv = (swig_globalvar *) malloc(sizeof(swig_globalvar)); - if (gv) { - size_t size = strlen(name)+1; - gv->name = (char *)malloc(size); - if (gv->name) { - strncpy(gv->name,name,size); - gv->get_attr = get_attr; - gv->set_attr = set_attr; - gv->next = v->vars; - } - } - v->vars = gv; - } - - SWIGINTERN PyObject * - SWIG_globals(void) { - static PyObject *_SWIG_globals = 0; - if (!_SWIG_globals) _SWIG_globals = SWIG_newvarlink(); - return _SWIG_globals; - } - - /* ----------------------------------------------------------------------------- - * constants/methods manipulation - * ----------------------------------------------------------------------------- */ - - /* Install Constants */ - SWIGINTERN void - SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[]) { - PyObject *obj = 0; - size_t i; - for (i = 0; constants[i].type; ++i) { - switch(constants[i].type) { - case SWIG_PY_POINTER: - obj = SWIG_InternalNewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0); - break; - case SWIG_PY_BINARY: - obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype)); - break; - default: - obj = 0; - break; - } - if (obj) { - PyDict_SetItemString(d, constants[i].name, obj); - Py_DECREF(obj); - } - } - } - - /* -----------------------------------------------------------------------------*/ - /* Fix SwigMethods to carry the callback ptrs when needed */ - /* -----------------------------------------------------------------------------*/ - - SWIGINTERN void - SWIG_Python_FixMethods(PyMethodDef *methods, - swig_const_info *const_table, - swig_type_info **types, - swig_type_info **types_initial) { - size_t i; - for (i = 0; methods[i].ml_name; ++i) { - const char *c = methods[i].ml_doc; - if (!c) continue; - c = strstr(c, "swig_ptr: "); - if (c) { - int j; - swig_const_info *ci = 0; - const char *name = c + 10; - for (j = 0; const_table[j].type; ++j) { - if (strncmp(const_table[j].name, name, - strlen(const_table[j].name)) == 0) { - ci = &(const_table[j]); - break; - } - } - if (ci) { - void *ptr = (ci->type == SWIG_PY_POINTER) ? ci->pvalue : 0; - if (ptr) { - size_t shift = (ci->ptype) - types; - swig_type_info *ty = types_initial[shift]; - size_t ldoc = (c - methods[i].ml_doc); - size_t lptr = strlen(ty->name)+2*sizeof(void*)+2; - char *ndoc = (char*)malloc(ldoc + lptr + 10); - if (ndoc) { - char *buff = ndoc; - strncpy(buff, methods[i].ml_doc, ldoc); - buff += ldoc; - strncpy(buff, "swig_ptr: ", 10); - buff += 10; - SWIG_PackVoidPtr(buff, ptr, ty->name, lptr); - methods[i].ml_doc = ndoc; - } - } - } - } - } - } - -#ifdef __cplusplus -} -#endif - -/* -----------------------------------------------------------------------------* - * Partial Init method - * -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -extern "C" -#endif - -SWIGEXPORT -#if PY_VERSION_HEX >= 0x03000000 -PyObject* -#else -void -#endif -SWIG_init(void) { - PyObject *m, *d, *md; -#if PY_VERSION_HEX >= 0x03000000 - static struct PyModuleDef SWIG_module = { -# if PY_VERSION_HEX >= 0x03020000 - PyModuleDef_HEAD_INIT, -# else - { - PyObject_HEAD_INIT(NULL) - NULL, /* m_init */ - 0, /* m_index */ - NULL, /* m_copy */ - }, -# endif - (char *) SWIG_name, - NULL, - -1, - SwigMethods, - NULL, - NULL, - NULL, - NULL - }; -#endif - -#if defined(SWIGPYTHON_BUILTIN) - static SwigPyClientData SwigPyObject_clientdata = { - 0, 0, 0, 0, 0, 0, 0 - }; - static PyGetSetDef this_getset_def = { - (char *)"this", &SwigPyBuiltin_ThisClosure, NULL, NULL, NULL - }; - static SwigPyGetSet thisown_getset_closure = { - (PyCFunction) SwigPyObject_own, - (PyCFunction) SwigPyObject_own - }; - static PyGetSetDef thisown_getset_def = { - (char *)"thisown", SwigPyBuiltin_GetterClosure, SwigPyBuiltin_SetterClosure, NULL, &thisown_getset_closure - }; - PyTypeObject *builtin_pytype; - int builtin_base_count; - swig_type_info *builtin_basetype; - PyObject *tuple; - PyGetSetDescrObject *static_getset; - PyTypeObject *metatype; - PyTypeObject *swigpyobject; - SwigPyClientData *cd; - PyObject *public_interface, *public_symbol; - PyObject *this_descr; - PyObject *thisown_descr; - PyObject *self = 0; - int i; - - (void)builtin_pytype; - (void)builtin_base_count; - (void)builtin_basetype; - (void)tuple; - (void)static_getset; - (void)self; - - /* Metaclass is used to implement static member variables */ - metatype = SwigPyObjectType(); - assert(metatype); -#endif - - /* Fix SwigMethods to carry the callback ptrs when needed */ - SWIG_Python_FixMethods(SwigMethods, swig_const_table, swig_types, swig_type_initial); - -#if PY_VERSION_HEX >= 0x03000000 - m = PyModule_Create(&SWIG_module); -#else - m = Py_InitModule((char *) SWIG_name, SwigMethods); -#endif - - md = d = PyModule_GetDict(m); - (void)md; - - SWIG_InitializeModule(0); - -#ifdef SWIGPYTHON_BUILTIN - swigpyobject = SwigPyObject_TypeOnce(); - - SwigPyObject_stype = SWIG_MangledTypeQuery("_p_SwigPyObject"); - assert(SwigPyObject_stype); - cd = (SwigPyClientData*) SwigPyObject_stype->clientdata; - if (!cd) { - SwigPyObject_stype->clientdata = &SwigPyObject_clientdata; - SwigPyObject_clientdata.pytype = swigpyobject; - } else if (swigpyobject->tp_basicsize != cd->pytype->tp_basicsize) { - PyErr_SetString(PyExc_RuntimeError, "Import error: attempted to load two incompatible swig-generated modules."); -# if PY_VERSION_HEX >= 0x03000000 - return NULL; -# else - return; -# endif - } - - /* All objects have a 'this' attribute */ - this_descr = PyDescr_NewGetSet(SwigPyObject_type(), &this_getset_def); - (void)this_descr; - - /* All objects have a 'thisown' attribute */ - thisown_descr = PyDescr_NewGetSet(SwigPyObject_type(), &thisown_getset_def); - (void)thisown_descr; - - public_interface = PyList_New(0); - public_symbol = 0; - (void)public_symbol; - - PyDict_SetItemString(md, "__all__", public_interface); - Py_DECREF(public_interface); - for (i = 0; SwigMethods[i].ml_name != NULL; ++i) - SwigPyBuiltin_AddPublicSymbol(public_interface, SwigMethods[i].ml_name); - for (i = 0; swig_const_table[i].name != 0; ++i) - SwigPyBuiltin_AddPublicSymbol(public_interface, swig_const_table[i].name); -#endif - - SWIG_InstallConstants(d,swig_const_table); - - SWIG_Python_SetConstant(d, "GRIB_SUCCESS",SWIG_From_int((int)(0))); - SWIG_Python_SetConstant(d, "GRIB_END_OF_FILE",SWIG_From_int((int)(-1))); - SWIG_Python_SetConstant(d, "GRIB_INTERNAL_ERROR",SWIG_From_int((int)(-2))); - SWIG_Python_SetConstant(d, "GRIB_BUFFER_TOO_SMALL",SWIG_From_int((int)(-3))); - SWIG_Python_SetConstant(d, "GRIB_NOT_IMPLEMENTED",SWIG_From_int((int)(-4))); - SWIG_Python_SetConstant(d, "GRIB_7777_NOT_FOUND",SWIG_From_int((int)(-5))); - SWIG_Python_SetConstant(d, "GRIB_ARRAY_TOO_SMALL",SWIG_From_int((int)(-6))); - SWIG_Python_SetConstant(d, "GRIB_FILE_NOT_FOUND",SWIG_From_int((int)(-7))); - SWIG_Python_SetConstant(d, "GRIB_CODE_NOT_FOUND_IN_TABLE",SWIG_From_int((int)(-8))); - SWIG_Python_SetConstant(d, "GRIB_WRONG_ARRAY_SIZE",SWIG_From_int((int)(-9))); - SWIG_Python_SetConstant(d, "GRIB_NOT_FOUND",SWIG_From_int((int)(-10))); - SWIG_Python_SetConstant(d, "GRIB_IO_PROBLEM",SWIG_From_int((int)(-11))); - SWIG_Python_SetConstant(d, "GRIB_INVALID_MESSAGE",SWIG_From_int((int)(-12))); - SWIG_Python_SetConstant(d, "GRIB_DECODING_ERROR",SWIG_From_int((int)(-13))); - SWIG_Python_SetConstant(d, "GRIB_ENCODING_ERROR",SWIG_From_int((int)(-14))); - SWIG_Python_SetConstant(d, "GRIB_NO_MORE_IN_SET",SWIG_From_int((int)(-15))); - SWIG_Python_SetConstant(d, "GRIB_GEOCALCULUS_PROBLEM",SWIG_From_int((int)(-16))); - SWIG_Python_SetConstant(d, "GRIB_OUT_OF_MEMORY",SWIG_From_int((int)(-17))); - SWIG_Python_SetConstant(d, "GRIB_READ_ONLY",SWIG_From_int((int)(-18))); - SWIG_Python_SetConstant(d, "GRIB_INVALID_ARGUMENT",SWIG_From_int((int)(-19))); - SWIG_Python_SetConstant(d, "GRIB_NULL_HANDLE",SWIG_From_int((int)(-20))); - SWIG_Python_SetConstant(d, "GRIB_INVALID_SECTION_NUMBER",SWIG_From_int((int)(-21))); - SWIG_Python_SetConstant(d, "GRIB_VALUE_CANNOT_BE_MISSING",SWIG_From_int((int)(-22))); - SWIG_Python_SetConstant(d, "GRIB_WRONG_LENGTH",SWIG_From_int((int)(-23))); - SWIG_Python_SetConstant(d, "GRIB_INVALID_TYPE",SWIG_From_int((int)(-24))); - SWIG_Python_SetConstant(d, "GRIB_WRONG_STEP",SWIG_From_int((int)(-25))); - SWIG_Python_SetConstant(d, "GRIB_WRONG_STEP_UNIT",SWIG_From_int((int)(-26))); - SWIG_Python_SetConstant(d, "GRIB_INVALID_FILE",SWIG_From_int((int)(-27))); - SWIG_Python_SetConstant(d, "GRIB_INVALID_GRIB",SWIG_From_int((int)(-28))); - SWIG_Python_SetConstant(d, "GRIB_INVALID_INDEX",SWIG_From_int((int)(-29))); - SWIG_Python_SetConstant(d, "GRIB_INVALID_ITERATOR",SWIG_From_int((int)(-30))); - SWIG_Python_SetConstant(d, "GRIB_INVALID_KEYS_ITERATOR",SWIG_From_int((int)(-31))); - SWIG_Python_SetConstant(d, "GRIB_INVALID_NEAREST",SWIG_From_int((int)(-32))); - SWIG_Python_SetConstant(d, "GRIB_INVALID_ORDERBY",SWIG_From_int((int)(-33))); - SWIG_Python_SetConstant(d, "GRIB_MISSING_KEY",SWIG_From_int((int)(-34))); - SWIG_Python_SetConstant(d, "GRIB_OUT_OF_AREA",SWIG_From_int((int)(-35))); - SWIG_Python_SetConstant(d, "GRIB_CONCEPT_NO_MATCH",SWIG_From_int((int)(-36))); - SWIG_Python_SetConstant(d, "GRIB_HASH_ARRAY_NO_MATCH",SWIG_From_int((int)(-37))); - SWIG_Python_SetConstant(d, "GRIB_NO_DEFINITIONS",SWIG_From_int((int)(-38))); - SWIG_Python_SetConstant(d, "GRIB_WRONG_TYPE",SWIG_From_int((int)(-39))); - SWIG_Python_SetConstant(d, "GRIB_END",SWIG_From_int((int)(-40))); - SWIG_Python_SetConstant(d, "GRIB_NO_VALUES",SWIG_From_int((int)(-41))); - SWIG_Python_SetConstant(d, "GRIB_WRONG_GRID",SWIG_From_int((int)(-42))); - SWIG_Python_SetConstant(d, "GRIB_END_OF_INDEX",SWIG_From_int((int)(-43))); - SWIG_Python_SetConstant(d, "GRIB_NULL_INDEX",SWIG_From_int((int)(-44))); - SWIG_Python_SetConstant(d, "GRIB_PREMATURE_END_OF_FILE",SWIG_From_int((int)(-45))); - SWIG_Python_SetConstant(d, "GRIB_INTERNAL_ARRAY_TOO_SMALL",SWIG_From_int((int)(-46))); - SWIG_Python_SetConstant(d, "GRIB_MESSAGE_TOO_LARGE",SWIG_From_int((int)(-47))); - SWIG_Python_SetConstant(d, "GRIB_CONSTANT_FIELD",SWIG_From_int((int)(-48))); - SWIG_Python_SetConstant(d, "GRIB_SWITCH_NO_MATCH",SWIG_From_int((int)(-49))); - SWIG_Python_SetConstant(d, "GRIB_UNDERFLOW",SWIG_From_int((int)(-50))); - SWIG_Python_SetConstant(d, "GRIB_MESSAGE_MALFORMED",SWIG_From_int((int)(-51))); - SWIG_Python_SetConstant(d, "GRIB_CORRUPTED_INDEX",SWIG_From_int((int)(-52))); - SWIG_Python_SetConstant(d, "GRIB_INVALID_BPV",SWIG_From_int((int)(-53))); - SWIG_Python_SetConstant(d, "GRIB_DIFFERENT_EDITION",SWIG_From_int((int)(-54))); - SWIG_Python_SetConstant(d, "GRIB_VALUE_DIFFERENT",SWIG_From_int((int)(-55))); - SWIG_Python_SetConstant(d, "GRIB_INVALID_KEY_VALUE",SWIG_From_int((int)(-56))); - SWIG_Python_SetConstant(d, "GRIB_STRING_TOO_SMALL",SWIG_From_int((int)(-57))); - SWIG_Python_SetConstant(d, "GRIB_WRONG_CONVERSION",SWIG_From_int((int)(-58))); - SWIG_Python_SetConstant(d, "GRIB_MISSING_BUFR_ENTRY",SWIG_From_int((int)(-59))); - SWIG_Python_SetConstant(d, "GRIB_NULL_POINTER",SWIG_From_int((int)(-60))); - SWIG_Python_SetConstant(d, "GRIB_ATTRIBUTE_CLASH",SWIG_From_int((int)(-61))); - SWIG_Python_SetConstant(d, "GRIB_TOO_MANY_ATTRIBUTES",SWIG_From_int((int)(-62))); - SWIG_Python_SetConstant(d, "GRIB_ATTRIBUTE_NOT_FOUND",SWIG_From_int((int)(-63))); - SWIG_Python_SetConstant(d, "GRIB_UNSUPPORTED_EDITION",SWIG_From_int((int)(-64))); - SWIG_Python_SetConstant(d, "GRIB_OUT_OF_RANGE",SWIG_From_int((int)(-65))); - SWIG_Python_SetConstant(d, "GRIB_WRONG_BITMAP_SIZE",SWIG_From_int((int)(-66))); - - import_array(); - -#if PY_VERSION_HEX >= 0x03000000 - return m; -#else - return; -#endif -} - diff --git a/python3/swig_wrap_numpy.py b/python3/swig_wrap_numpy.py deleted file mode 100644 index 8e185e46d..000000000 --- a/python3/swig_wrap_numpy.py +++ /dev/null @@ -1,751 +0,0 @@ -# This file was automatically generated by SWIG (http://www.swig.org). -# Version 3.0.12 -# -# Do not make changes to this file unless you know what you are doing--modify -# the SWIG interface file instead. - -from sys import version_info as _swig_python_version_info -if _swig_python_version_info >= (2, 7, 0): - def swig_import_helper(): - import importlib - pkg = __name__.rpartition('.')[0] - mname = '.'.join((pkg, '_gribapi_swig')).lstrip('.') - try: - return importlib.import_module(mname) - except ImportError: - return importlib.import_module('_gribapi_swig') - _gribapi_swig = swig_import_helper() - del swig_import_helper -elif _swig_python_version_info >= (2, 6, 0): - def swig_import_helper(): - from os.path import dirname - import imp - fp = None - try: - fp, pathname, description = imp.find_module('_gribapi_swig', [dirname(__file__)]) - except ImportError: - import _gribapi_swig - return _gribapi_swig - try: - _mod = imp.load_module('_gribapi_swig', fp, pathname, description) - finally: - if fp is not None: - fp.close() - return _mod - _gribapi_swig = swig_import_helper() - del swig_import_helper -else: - import _gribapi_swig -del _swig_python_version_info - -try: - _swig_property = property -except NameError: - pass # Python < 2.2 doesn't have 'property'. - -try: - import builtins as __builtin__ -except ImportError: - import __builtin__ - -def _swig_setattr_nondynamic(self, class_type, name, value, static=1): - if (name == "thisown"): - return self.this.own(value) - if (name == "this"): - if type(value).__name__ == 'SwigPyObject': - self.__dict__[name] = value - return - method = class_type.__swig_setmethods__.get(name, None) - if method: - return method(self, value) - if (not static): - if _newclass: - object.__setattr__(self, name, value) - else: - self.__dict__[name] = value - else: - raise AttributeError("You cannot add attributes to %s" % self) - - -def _swig_setattr(self, class_type, name, value): - return _swig_setattr_nondynamic(self, class_type, name, value, 0) - - -def _swig_getattr(self, class_type, name): - if (name == "thisown"): - return self.this.own() - method = class_type.__swig_getmethods__.get(name, None) - if method: - return method(self) - raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name)) - - -def _swig_repr(self): - try: - strthis = "proxy of " + self.this.__repr__() - except __builtin__.Exception: - strthis = "" - return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,) - -try: - _object = object - _newclass = 1 -except __builtin__.Exception: - class _object: - pass - _newclass = 0 - - -def cdata(ptr: 'void *', nelements: 'size_t'=1) -> "SWIGCDATA": - return _gribapi_swig.cdata(ptr, nelements) -cdata = _gribapi_swig.cdata - -def memmove(data: 'void *', indata: 'void const *') -> "void": - return _gribapi_swig.memmove(data, indata) -memmove = _gribapi_swig.memmove -GRIB_SUCCESS = _gribapi_swig.GRIB_SUCCESS -GRIB_END_OF_FILE = _gribapi_swig.GRIB_END_OF_FILE -GRIB_INTERNAL_ERROR = _gribapi_swig.GRIB_INTERNAL_ERROR -GRIB_BUFFER_TOO_SMALL = _gribapi_swig.GRIB_BUFFER_TOO_SMALL -GRIB_NOT_IMPLEMENTED = _gribapi_swig.GRIB_NOT_IMPLEMENTED -GRIB_7777_NOT_FOUND = _gribapi_swig.GRIB_7777_NOT_FOUND -GRIB_ARRAY_TOO_SMALL = _gribapi_swig.GRIB_ARRAY_TOO_SMALL -GRIB_FILE_NOT_FOUND = _gribapi_swig.GRIB_FILE_NOT_FOUND -GRIB_CODE_NOT_FOUND_IN_TABLE = _gribapi_swig.GRIB_CODE_NOT_FOUND_IN_TABLE -GRIB_WRONG_ARRAY_SIZE = _gribapi_swig.GRIB_WRONG_ARRAY_SIZE -GRIB_NOT_FOUND = _gribapi_swig.GRIB_NOT_FOUND -GRIB_IO_PROBLEM = _gribapi_swig.GRIB_IO_PROBLEM -GRIB_INVALID_MESSAGE = _gribapi_swig.GRIB_INVALID_MESSAGE -GRIB_DECODING_ERROR = _gribapi_swig.GRIB_DECODING_ERROR -GRIB_ENCODING_ERROR = _gribapi_swig.GRIB_ENCODING_ERROR -GRIB_NO_MORE_IN_SET = _gribapi_swig.GRIB_NO_MORE_IN_SET -GRIB_GEOCALCULUS_PROBLEM = _gribapi_swig.GRIB_GEOCALCULUS_PROBLEM -GRIB_OUT_OF_MEMORY = _gribapi_swig.GRIB_OUT_OF_MEMORY -GRIB_READ_ONLY = _gribapi_swig.GRIB_READ_ONLY -GRIB_INVALID_ARGUMENT = _gribapi_swig.GRIB_INVALID_ARGUMENT -GRIB_NULL_HANDLE = _gribapi_swig.GRIB_NULL_HANDLE -GRIB_INVALID_SECTION_NUMBER = _gribapi_swig.GRIB_INVALID_SECTION_NUMBER -GRIB_VALUE_CANNOT_BE_MISSING = _gribapi_swig.GRIB_VALUE_CANNOT_BE_MISSING -GRIB_WRONG_LENGTH = _gribapi_swig.GRIB_WRONG_LENGTH -GRIB_INVALID_TYPE = _gribapi_swig.GRIB_INVALID_TYPE -GRIB_WRONG_STEP = _gribapi_swig.GRIB_WRONG_STEP -GRIB_WRONG_STEP_UNIT = _gribapi_swig.GRIB_WRONG_STEP_UNIT -GRIB_INVALID_FILE = _gribapi_swig.GRIB_INVALID_FILE -GRIB_INVALID_GRIB = _gribapi_swig.GRIB_INVALID_GRIB -GRIB_INVALID_INDEX = _gribapi_swig.GRIB_INVALID_INDEX -GRIB_INVALID_ITERATOR = _gribapi_swig.GRIB_INVALID_ITERATOR -GRIB_INVALID_KEYS_ITERATOR = _gribapi_swig.GRIB_INVALID_KEYS_ITERATOR -GRIB_INVALID_NEAREST = _gribapi_swig.GRIB_INVALID_NEAREST -GRIB_INVALID_ORDERBY = _gribapi_swig.GRIB_INVALID_ORDERBY -GRIB_MISSING_KEY = _gribapi_swig.GRIB_MISSING_KEY -GRIB_OUT_OF_AREA = _gribapi_swig.GRIB_OUT_OF_AREA -GRIB_CONCEPT_NO_MATCH = _gribapi_swig.GRIB_CONCEPT_NO_MATCH -GRIB_HASH_ARRAY_NO_MATCH = _gribapi_swig.GRIB_HASH_ARRAY_NO_MATCH -GRIB_NO_DEFINITIONS = _gribapi_swig.GRIB_NO_DEFINITIONS -GRIB_WRONG_TYPE = _gribapi_swig.GRIB_WRONG_TYPE -GRIB_END = _gribapi_swig.GRIB_END -GRIB_NO_VALUES = _gribapi_swig.GRIB_NO_VALUES -GRIB_WRONG_GRID = _gribapi_swig.GRIB_WRONG_GRID -GRIB_END_OF_INDEX = _gribapi_swig.GRIB_END_OF_INDEX -GRIB_NULL_INDEX = _gribapi_swig.GRIB_NULL_INDEX -GRIB_PREMATURE_END_OF_FILE = _gribapi_swig.GRIB_PREMATURE_END_OF_FILE -GRIB_INTERNAL_ARRAY_TOO_SMALL = _gribapi_swig.GRIB_INTERNAL_ARRAY_TOO_SMALL -GRIB_MESSAGE_TOO_LARGE = _gribapi_swig.GRIB_MESSAGE_TOO_LARGE -GRIB_CONSTANT_FIELD = _gribapi_swig.GRIB_CONSTANT_FIELD -GRIB_SWITCH_NO_MATCH = _gribapi_swig.GRIB_SWITCH_NO_MATCH -GRIB_UNDERFLOW = _gribapi_swig.GRIB_UNDERFLOW -GRIB_MESSAGE_MALFORMED = _gribapi_swig.GRIB_MESSAGE_MALFORMED -GRIB_CORRUPTED_INDEX = _gribapi_swig.GRIB_CORRUPTED_INDEX -GRIB_INVALID_BPV = _gribapi_swig.GRIB_INVALID_BPV -GRIB_DIFFERENT_EDITION = _gribapi_swig.GRIB_DIFFERENT_EDITION -GRIB_VALUE_DIFFERENT = _gribapi_swig.GRIB_VALUE_DIFFERENT -GRIB_INVALID_KEY_VALUE = _gribapi_swig.GRIB_INVALID_KEY_VALUE -GRIB_STRING_TOO_SMALL = _gribapi_swig.GRIB_STRING_TOO_SMALL -GRIB_WRONG_CONVERSION = _gribapi_swig.GRIB_WRONG_CONVERSION -GRIB_MISSING_BUFR_ENTRY = _gribapi_swig.GRIB_MISSING_BUFR_ENTRY -GRIB_NULL_POINTER = _gribapi_swig.GRIB_NULL_POINTER -GRIB_ATTRIBUTE_CLASH = _gribapi_swig.GRIB_ATTRIBUTE_CLASH -GRIB_TOO_MANY_ATTRIBUTES = _gribapi_swig.GRIB_TOO_MANY_ATTRIBUTES -GRIB_ATTRIBUTE_NOT_FOUND = _gribapi_swig.GRIB_ATTRIBUTE_NOT_FOUND -GRIB_UNSUPPORTED_EDITION = _gribapi_swig.GRIB_UNSUPPORTED_EDITION -GRIB_OUT_OF_RANGE = _gribapi_swig.GRIB_OUT_OF_RANGE -GRIB_WRONG_BITMAP_SIZE = _gribapi_swig.GRIB_WRONG_BITMAP_SIZE -class intp(_object): - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, intp, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, intp, name) - __repr__ = _swig_repr - - def __init__(self): - this = _gribapi_swig.new_intp() - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - __swig_destroy__ = _gribapi_swig.delete_intp - __del__ = lambda self: None - - def assign(self, value: 'int') -> "void": - return _gribapi_swig.intp_assign(self, value) - - def value(self) -> "int": - return _gribapi_swig.intp_value(self) - - def cast(self) -> "int *": - return _gribapi_swig.intp_cast(self) - if _newclass: - frompointer = staticmethod(_gribapi_swig.intp_frompointer) - else: - frompointer = _gribapi_swig.intp_frompointer -intp_swigregister = _gribapi_swig.intp_swigregister -intp_swigregister(intp) - -def intp_frompointer(t: 'int *') -> "intp *": - return _gribapi_swig.intp_frompointer(t) -intp_frompointer = _gribapi_swig.intp_frompointer - -class sizetp(_object): - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, sizetp, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, sizetp, name) - __repr__ = _swig_repr - - def __init__(self): - this = _gribapi_swig.new_sizetp() - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - __swig_destroy__ = _gribapi_swig.delete_sizetp - __del__ = lambda self: None - - def assign(self, value: 'size_t') -> "void": - return _gribapi_swig.sizetp_assign(self, value) - - def value(self) -> "size_t": - return _gribapi_swig.sizetp_value(self) - - def cast(self) -> "size_t *": - return _gribapi_swig.sizetp_cast(self) - if _newclass: - frompointer = staticmethod(_gribapi_swig.sizetp_frompointer) - else: - frompointer = _gribapi_swig.sizetp_frompointer -sizetp_swigregister = _gribapi_swig.sizetp_swigregister -sizetp_swigregister(sizetp) - -def sizetp_frompointer(t: 'size_t *') -> "sizetp *": - return _gribapi_swig.sizetp_frompointer(t) -sizetp_frompointer = _gribapi_swig.sizetp_frompointer - -class longp(_object): - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, longp, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, longp, name) - __repr__ = _swig_repr - - def __init__(self): - this = _gribapi_swig.new_longp() - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - __swig_destroy__ = _gribapi_swig.delete_longp - __del__ = lambda self: None - - def assign(self, value: 'long') -> "void": - return _gribapi_swig.longp_assign(self, value) - - def value(self) -> "long": - return _gribapi_swig.longp_value(self) - - def cast(self) -> "long *": - return _gribapi_swig.longp_cast(self) - if _newclass: - frompointer = staticmethod(_gribapi_swig.longp_frompointer) - else: - frompointer = _gribapi_swig.longp_frompointer -longp_swigregister = _gribapi_swig.longp_swigregister -longp_swigregister(longp) - -def longp_frompointer(t: 'long *') -> "longp *": - return _gribapi_swig.longp_frompointer(t) -longp_frompointer = _gribapi_swig.longp_frompointer - -class doublep(_object): - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, doublep, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, doublep, name) - __repr__ = _swig_repr - - def __init__(self): - this = _gribapi_swig.new_doublep() - try: - self.this.append(this) - except __builtin__.Exception: - self.this = this - __swig_destroy__ = _gribapi_swig.delete_doublep - __del__ = lambda self: None - - def assign(self, value: 'double') -> "void": - return _gribapi_swig.doublep_assign(self, value) - - def value(self) -> "double": - return _gribapi_swig.doublep_value(self) - - def cast(self) -> "double *": - return _gribapi_swig.doublep_cast(self) - if _newclass: - frompointer = staticmethod(_gribapi_swig.doublep_frompointer) - else: - frompointer = _gribapi_swig.doublep_frompointer -doublep_swigregister = _gribapi_swig.doublep_swigregister -doublep_swigregister(doublep) - -def doublep_frompointer(t: 'double *') -> "doublep *": - return _gribapi_swig.doublep_frompointer(t) -doublep_frompointer = _gribapi_swig.doublep_frompointer - - -def new_doubleArray(nelements: 'size_t') -> "double *": - return _gribapi_swig.new_doubleArray(nelements) -new_doubleArray = _gribapi_swig.new_doubleArray - -def delete_doubleArray(ary: 'double *') -> "void": - return _gribapi_swig.delete_doubleArray(ary) -delete_doubleArray = _gribapi_swig.delete_doubleArray - -def doubleArray_getitem(ary: 'double *', index: 'size_t') -> "double": - return _gribapi_swig.doubleArray_getitem(ary, index) -doubleArray_getitem = _gribapi_swig.doubleArray_getitem - -def doubleArray_setitem(ary: 'double *', index: 'size_t', value: 'double') -> "void": - return _gribapi_swig.doubleArray_setitem(ary, index, value) -doubleArray_setitem = _gribapi_swig.doubleArray_setitem - -def new_longArray(nelements: 'size_t') -> "long *": - return _gribapi_swig.new_longArray(nelements) -new_longArray = _gribapi_swig.new_longArray - -def delete_longArray(ary: 'long *') -> "void": - return _gribapi_swig.delete_longArray(ary) -delete_longArray = _gribapi_swig.delete_longArray - -def longArray_getitem(ary: 'long *', index: 'size_t') -> "long": - return _gribapi_swig.longArray_getitem(ary, index) -longArray_getitem = _gribapi_swig.longArray_getitem - -def longArray_setitem(ary: 'long *', index: 'size_t', value: 'long') -> "void": - return _gribapi_swig.longArray_setitem(ary, index, value) -longArray_setitem = _gribapi_swig.longArray_setitem - -def new_intArray(nelements: 'size_t') -> "int *": - return _gribapi_swig.new_intArray(nelements) -new_intArray = _gribapi_swig.new_intArray - -def delete_intArray(ary: 'int *') -> "void": - return _gribapi_swig.delete_intArray(ary) -delete_intArray = _gribapi_swig.delete_intArray - -def intArray_getitem(ary: 'int *', index: 'size_t') -> "int": - return _gribapi_swig.intArray_getitem(ary, index) -intArray_getitem = _gribapi_swig.intArray_getitem - -def intArray_setitem(ary: 'int *', index: 'size_t', value: 'int') -> "void": - return _gribapi_swig.intArray_setitem(ary, index, value) -intArray_setitem = _gribapi_swig.intArray_setitem - -def new_stringArray(nelements: 'size_t') -> "char **": - return _gribapi_swig.new_stringArray(nelements) -new_stringArray = _gribapi_swig.new_stringArray - -def delete_stringArray(ary: 'char **') -> "void": - return _gribapi_swig.delete_stringArray(ary) -delete_stringArray = _gribapi_swig.delete_stringArray - -def stringArray_getitem(ary: 'char **', index: 'size_t') -> "char *": - return _gribapi_swig.stringArray_getitem(ary, index) -stringArray_getitem = _gribapi_swig.stringArray_getitem - -def stringArray_setitem(ary: 'char **', index: 'size_t', value: 'char *') -> "void": - return _gribapi_swig.stringArray_setitem(ary, index, value) -stringArray_setitem = _gribapi_swig.stringArray_setitem - -def grib_c_new_from_file(f: 'FILE *', fd: 'int', fname: 'char *', INOUT: 'int *', headers_only: 'int') -> "int *": - return _gribapi_swig.grib_c_new_from_file(f, fd, fname, INOUT, headers_only) -grib_c_new_from_file = _gribapi_swig.grib_c_new_from_file - -def grib_c_new_any_from_file(f: 'FILE *', fd: 'int', fname: 'char *', headers_only: 'int', INOUT: 'int *') -> "int *": - return _gribapi_swig.grib_c_new_any_from_file(f, fd, fname, headers_only, INOUT) -grib_c_new_any_from_file = _gribapi_swig.grib_c_new_any_from_file - -def grib_c_new_bufr_from_file(f: 'FILE *', fd: 'int', fname: 'char *', headers_only: 'int', INOUT: 'int *') -> "int *": - return _gribapi_swig.grib_c_new_bufr_from_file(f, fd, fname, headers_only, INOUT) -grib_c_new_bufr_from_file = _gribapi_swig.grib_c_new_bufr_from_file - -def grib_c_new_gts_from_file(f: 'FILE *', fd: 'int', fname: 'char *', headers_only: 'int', INOUT: 'int *') -> "int *": - return _gribapi_swig.grib_c_new_gts_from_file(f, fd, fname, headers_only, INOUT) -grib_c_new_gts_from_file = _gribapi_swig.grib_c_new_gts_from_file - -def grib_c_new_metar_from_file(f: 'FILE *', headers_only: 'int', INOUT: 'int *') -> "int *": - return _gribapi_swig.grib_c_new_metar_from_file(f, headers_only, INOUT) -grib_c_new_metar_from_file = _gribapi_swig.grib_c_new_metar_from_file - -def grib_c_iterator_new(arg1: 'int *', arg3: 'int *') -> "int *": - return _gribapi_swig.grib_c_iterator_new(arg1, arg3) -grib_c_iterator_new = _gribapi_swig.grib_c_iterator_new - -def grib_c_keys_iterator_new(INPUT: 'int *', name_space: 'char *') -> "int *": - return _gribapi_swig.grib_c_keys_iterator_new(INPUT, name_space) -grib_c_keys_iterator_new = _gribapi_swig.grib_c_keys_iterator_new - -def codes_c_bufr_keys_iterator_new(INPUT: 'int *') -> "int *": - return _gribapi_swig.codes_c_bufr_keys_iterator_new(INPUT) -codes_c_bufr_keys_iterator_new = _gribapi_swig.codes_c_bufr_keys_iterator_new - -def grib_c_grib_new_from_samples(INOUT: 'int *', name: 'char *') -> "int *": - return _gribapi_swig.grib_c_grib_new_from_samples(INOUT, name) -grib_c_grib_new_from_samples = _gribapi_swig.grib_c_grib_new_from_samples - -def grib_c_bufr_new_from_samples(INOUT: 'int *', name: 'char *') -> "int *": - return _gribapi_swig.grib_c_bufr_new_from_samples(INOUT, name) -grib_c_bufr_new_from_samples = _gribapi_swig.grib_c_bufr_new_from_samples - -def grib_c_index_new_from_file(file: 'char *', keys: 'char *') -> "int *": - return _gribapi_swig.grib_c_index_new_from_file(file, keys) -grib_c_index_new_from_file = _gribapi_swig.grib_c_index_new_from_file - -def grib_c_index_add_file(INPUT: 'int *', file: 'char *') -> "int": - return _gribapi_swig.grib_c_index_add_file(INPUT, file) -grib_c_index_add_file = _gribapi_swig.grib_c_index_add_file - -def grib_c_new_from_index(INPUT: 'int *', INOUT: 'int *') -> "int *": - return _gribapi_swig.grib_c_new_from_index(INPUT, INOUT) -grib_c_new_from_index = _gribapi_swig.grib_c_new_from_index - -def grib_c_index_write(INPUT: 'int *', file: 'char *') -> "int": - return _gribapi_swig.grib_c_index_write(INPUT, file) -grib_c_index_write = _gribapi_swig.grib_c_index_write - -def grib_c_index_read(file: 'char *') -> "int *": - return _gribapi_swig.grib_c_index_read(file) -grib_c_index_read = _gribapi_swig.grib_c_index_read - -def grib_c_new_from_message(INOUT: 'int *', binmsg: 'char *', INPUT: 'size_t *') -> "int *": - return _gribapi_swig.grib_c_new_from_message(INOUT, binmsg, INPUT) -grib_c_new_from_message = _gribapi_swig.grib_c_new_from_message - -def codes_c_close_file(fd: 'int', fname: 'char *') -> "int": - return _gribapi_swig.codes_c_close_file(fd, fname) -codes_c_close_file = _gribapi_swig.codes_c_close_file - -def grib_c_count_in_file(f: 'FILE *') -> "int *": - return _gribapi_swig.grib_c_count_in_file(f) -grib_c_count_in_file = _gribapi_swig.grib_c_count_in_file - -def grib_c_release(gid: 'int *') -> "int": - return _gribapi_swig.grib_c_release(gid) -grib_c_release = _gribapi_swig.grib_c_release - -def grib_c_write(gid: 'int *', f: 'FILE *') -> "int": - return _gribapi_swig.grib_c_write(gid, f) -grib_c_write = _gribapi_swig.grib_c_write - -def grib_c_get_size_long(gid: 'int *', key: 'char *') -> "long *": - return _gribapi_swig.grib_c_get_size_long(gid, key) -grib_c_get_size_long = _gribapi_swig.grib_c_get_size_long - -def grib_c_get_string_length(gid: 'int *', key: 'char *') -> "size_t *": - return _gribapi_swig.grib_c_get_string_length(gid, key) -grib_c_get_string_length = _gribapi_swig.grib_c_get_string_length - -def grib_c_clone(gid: 'int *', INOUT: 'int *') -> "int *": - return _gribapi_swig.grib_c_clone(gid, INOUT) -grib_c_clone = _gribapi_swig.grib_c_clone - -def grib_c_copy_namespace(gid: 'int *', name: 'char *', INPUT: 'int *') -> "int": - return _gribapi_swig.grib_c_copy_namespace(gid, name, INPUT) -grib_c_copy_namespace = _gribapi_swig.grib_c_copy_namespace - -def grib_c_get_message_size(gid: 'int *') -> "size_t *": - return _gribapi_swig.grib_c_get_message_size(gid) -grib_c_get_message_size = _gribapi_swig.grib_c_get_message_size - -def grib_c_get_message_offset(gid: 'int *') -> "size_t *": - return _gribapi_swig.grib_c_get_message_offset(gid) -grib_c_get_message_offset = _gribapi_swig.grib_c_get_message_offset - -def grib_c_get_native_type(gid: 'int *', key: 'char *') -> "int *": - return _gribapi_swig.grib_c_get_native_type(gid, key) -grib_c_get_native_type = _gribapi_swig.grib_c_get_native_type - -def grib_c_multi_new() -> "int *": - return _gribapi_swig.grib_c_multi_new() -grib_c_multi_new = _gribapi_swig.grib_c_multi_new - -def grib_c_multi_support_on() -> "int": - return _gribapi_swig.grib_c_multi_support_on() -grib_c_multi_support_on = _gribapi_swig.grib_c_multi_support_on - -def grib_c_multi_write(gid: 'int *', f: 'FILE *') -> "int": - return _gribapi_swig.grib_c_multi_write(gid, f) -grib_c_multi_write = _gribapi_swig.grib_c_multi_write - -def grib_c_multi_support_off() -> "int": - return _gribapi_swig.grib_c_multi_support_off() -grib_c_multi_support_off = _gribapi_swig.grib_c_multi_support_off - -def grib_c_multi_release(gid: 'int *') -> "int": - return _gribapi_swig.grib_c_multi_release(gid) -grib_c_multi_release = _gribapi_swig.grib_c_multi_release - -def grib_c_multi_append(arg1: 'int *', arg2: 'int *', arg3: 'int *') -> "int": - return _gribapi_swig.grib_c_multi_append(arg1, arg2, arg3) -grib_c_multi_append = _gribapi_swig.grib_c_multi_append - -def grib_c_gribex_mode_on() -> "int": - return _gribapi_swig.grib_c_gribex_mode_on() -grib_c_gribex_mode_on = _gribapi_swig.grib_c_gribex_mode_on - -def grib_c_gribex_mode_off() -> "int": - return _gribapi_swig.grib_c_gribex_mode_off() -grib_c_gribex_mode_off = _gribapi_swig.grib_c_gribex_mode_off - -def grib_c_keys_iterator_next(iterid: 'int *') -> "int": - return _gribapi_swig.grib_c_keys_iterator_next(iterid) -grib_c_keys_iterator_next = _gribapi_swig.grib_c_keys_iterator_next - -def codes_c_bufr_keys_iterator_next(iterid: 'int *') -> "int": - return _gribapi_swig.codes_c_bufr_keys_iterator_next(iterid) -codes_c_bufr_keys_iterator_next = _gribapi_swig.codes_c_bufr_keys_iterator_next - -def grib_c_keys_iterator_delete(iterid: 'int *') -> "int": - return _gribapi_swig.grib_c_keys_iterator_delete(iterid) -grib_c_keys_iterator_delete = _gribapi_swig.grib_c_keys_iterator_delete - -def codes_c_bufr_keys_iterator_delete(iterid: 'int *') -> "int": - return _gribapi_swig.codes_c_bufr_keys_iterator_delete(iterid) -codes_c_bufr_keys_iterator_delete = _gribapi_swig.codes_c_bufr_keys_iterator_delete - -def grib_c_skip_computed(iterid: 'int *') -> "int": - return _gribapi_swig.grib_c_skip_computed(iterid) -grib_c_skip_computed = _gribapi_swig.grib_c_skip_computed - -def grib_c_skip_coded(iterid: 'int *') -> "int": - return _gribapi_swig.grib_c_skip_coded(iterid) -grib_c_skip_coded = _gribapi_swig.grib_c_skip_coded - -def grib_c_skip_edition_specific(iterid: 'int *') -> "int": - return _gribapi_swig.grib_c_skip_edition_specific(iterid) -grib_c_skip_edition_specific = _gribapi_swig.grib_c_skip_edition_specific - -def grib_c_skip_duplicates(iterid: 'int *') -> "int": - return _gribapi_swig.grib_c_skip_duplicates(iterid) -grib_c_skip_duplicates = _gribapi_swig.grib_c_skip_duplicates - -def grib_c_skip_read_only(iterid: 'int *') -> "int": - return _gribapi_swig.grib_c_skip_read_only(iterid) -grib_c_skip_read_only = _gribapi_swig.grib_c_skip_read_only - -def grib_c_skip_function(iterid: 'int *') -> "int": - return _gribapi_swig.grib_c_skip_function(iterid) -grib_c_skip_function = _gribapi_swig.grib_c_skip_function - -def grib_c_keys_iterator_rewind(iterid: 'int *') -> "int": - return _gribapi_swig.grib_c_keys_iterator_rewind(iterid) -grib_c_keys_iterator_rewind = _gribapi_swig.grib_c_keys_iterator_rewind - -def codes_c_bufr_keys_iterator_rewind(iterid: 'int *') -> "int": - return _gribapi_swig.codes_c_bufr_keys_iterator_rewind(iterid) -codes_c_bufr_keys_iterator_rewind = _gribapi_swig.codes_c_bufr_keys_iterator_rewind - -def grib_c_bufr_copy_data(gid: 'int *', INOUT: 'int *') -> "int *": - return _gribapi_swig.grib_c_bufr_copy_data(gid, INOUT) -grib_c_bufr_copy_data = _gribapi_swig.grib_c_bufr_copy_data - -def grib_c_keys_iterator_get_name(iterid: 'int *', len: 'int') -> "char *": - return _gribapi_swig.grib_c_keys_iterator_get_name(iterid, len) -grib_c_keys_iterator_get_name = _gribapi_swig.grib_c_keys_iterator_get_name - -def codes_c_bufr_keys_iterator_get_name(iterid: 'int *', len: 'int') -> "char *": - return _gribapi_swig.codes_c_bufr_keys_iterator_get_name(iterid, len) -codes_c_bufr_keys_iterator_get_name = _gribapi_swig.codes_c_bufr_keys_iterator_get_name - -def grib_c_index_get_size_long(iid: 'int *', key: 'char *') -> "long *": - return _gribapi_swig.grib_c_index_get_size_long(iid, key) -grib_c_index_get_size_long = _gribapi_swig.grib_c_index_get_size_long - -def grib_c_index_get_long(iid: 'int *', key: 'char *', val: 'long *', size: 'int *') -> "int": - return _gribapi_swig.grib_c_index_get_long(iid, key, val, size) -grib_c_index_get_long = _gribapi_swig.grib_c_index_get_long - -def grib_c_index_get_real8(iid: 'int *', key: 'char *', val: 'double *', size: 'int *') -> "int": - return _gribapi_swig.grib_c_index_get_real8(iid, key, val, size) -grib_c_index_get_real8 = _gribapi_swig.grib_c_index_get_real8 - -def grib_c_index_get_string(iid: 'int *', key: 'char *', INPUT: 'int *', INOUT: 'int *') -> "char *, int *": - return _gribapi_swig.grib_c_index_get_string(iid, key, INPUT, INOUT) -grib_c_index_get_string = _gribapi_swig.grib_c_index_get_string - -def grib_c_index_select_long(iid: 'int *', key: 'char *', INPUT: 'long *') -> "int": - return _gribapi_swig.grib_c_index_select_long(iid, key, INPUT) -grib_c_index_select_long = _gribapi_swig.grib_c_index_select_long - -def grib_c_index_select_real8(iid: 'int *', key: 'char *', INPUT: 'double *') -> "int": - return _gribapi_swig.grib_c_index_select_real8(iid, key, INPUT) -grib_c_index_select_real8 = _gribapi_swig.grib_c_index_select_real8 - -def grib_c_index_select_string(iid: 'int *', key: 'char *', val: 'char *') -> "int": - return _gribapi_swig.grib_c_index_select_string(iid, key, val) -grib_c_index_select_string = _gribapi_swig.grib_c_index_select_string - -def grib_c_index_release(iid: 'int *') -> "int": - return _gribapi_swig.grib_c_index_release(iid) -grib_c_index_release = _gribapi_swig.grib_c_index_release - -def grib_c_iterator_delete(iterid: 'int *') -> "int": - return _gribapi_swig.grib_c_iterator_delete(iterid) -grib_c_iterator_delete = _gribapi_swig.grib_c_iterator_delete - -def grib_c_iterator_next(iterid: 'int *') -> "double *, double *, double *": - return _gribapi_swig.grib_c_iterator_next(iterid) -grib_c_iterator_next = _gribapi_swig.grib_c_iterator_next - -def grib_c_get_string(gid: 'int *', key: 'char *', string_val: 'char *') -> "size_t *": - return _gribapi_swig.grib_c_get_string(gid, key, string_val) -grib_c_get_string = _gribapi_swig.grib_c_get_string - -def grib_c_get_string_array(gid: 'int *', key: 'char *', array_string_val: 'char **', size: 'size_t *') -> "int": - return _gribapi_swig.grib_c_get_string_array(gid, key, array_string_val, size) -grib_c_get_string_array = _gribapi_swig.grib_c_get_string_array - -def grib_c_set_string(gid: 'int *', key: 'char *', sval: 'char *', len2: 'int') -> "int": - return _gribapi_swig.grib_c_set_string(gid, key, sval, len2) -grib_c_set_string = _gribapi_swig.grib_c_set_string - -def grib_c_get_long(gid: 'int *', key: 'char *') -> "long *": - return _gribapi_swig.grib_c_get_long(gid, key) -grib_c_get_long = _gribapi_swig.grib_c_get_long - -def grib_c_set_long(gid: 'int *', key: 'char *', INPUT: 'long *') -> "int": - return _gribapi_swig.grib_c_set_long(gid, key, INPUT) -grib_c_set_long = _gribapi_swig.grib_c_set_long - -def grib_c_get_double(gid: 'int *', key: 'char *') -> "double *": - return _gribapi_swig.grib_c_get_double(gid, key) -grib_c_get_double = _gribapi_swig.grib_c_get_double - -def grib_c_set_double(gid: 'int *', key: 'char *', INPUT: 'double *') -> "int": - return _gribapi_swig.grib_c_set_double(gid, key, INPUT) -grib_c_set_double = _gribapi_swig.grib_c_set_double - -def grib_c_set_real8_array(gid: 'int *', key: 'char *', val: 'double *', size: 'int *') -> "int": - return _gribapi_swig.grib_c_set_real8_array(gid, key, val, size) -grib_c_set_real8_array = _gribapi_swig.grib_c_set_real8_array - -def grib_c_get_real8_array(gid: 'int *', key: 'char *', val: 'double *', size: 'int *') -> "int": - return _gribapi_swig.grib_c_get_real8_array(gid, key, val, size) -grib_c_get_real8_array = _gribapi_swig.grib_c_get_real8_array - -def grib_c_get_long_array(gid: 'int *', key: 'char *', val: 'long *', size: 'int *') -> "int": - return _gribapi_swig.grib_c_get_long_array(gid, key, val, size) -grib_c_get_long_array = _gribapi_swig.grib_c_get_long_array - -def grib_c_set_long_array(gid: 'int *', key: 'char *', val: 'long *', size: 'int *') -> "int": - return _gribapi_swig.grib_c_set_long_array(gid, key, val, size) -grib_c_set_long_array = _gribapi_swig.grib_c_set_long_array - -def grib_c_get_real8_element(gid: 'int *', key: 'char *', INPUT: 'int *') -> "double *": - return _gribapi_swig.grib_c_get_real8_element(gid, key, INPUT) -grib_c_get_real8_element = _gribapi_swig.grib_c_get_real8_element - -def grib_c_get_real8_elements(gid: 'int *', key: 'char *', index: 'int *', val: 'double *', size: 'int *') -> "int": - return _gribapi_swig.grib_c_get_real8_elements(gid, key, index, val, size) -grib_c_get_real8_elements = _gribapi_swig.grib_c_get_real8_elements - -def grib_c_set_missing(gid: 'int *', key: 'char *') -> "int": - return _gribapi_swig.grib_c_set_missing(gid, key) -grib_c_set_missing = _gribapi_swig.grib_c_set_missing - -def grib_c_set_key_vals(gid: 'int *', keyvals: 'char *') -> "int": - return _gribapi_swig.grib_c_set_key_vals(gid, keyvals) -grib_c_set_key_vals = _gribapi_swig.grib_c_set_key_vals - -def grib_c_is_missing(gid: 'int *', key: 'char *') -> "int *": - return _gribapi_swig.grib_c_is_missing(gid, key) -grib_c_is_missing = _gribapi_swig.grib_c_is_missing - -def grib_c_is_defined(gid: 'int *', key: 'char *') -> "int *": - return _gribapi_swig.grib_c_is_defined(gid, key) -grib_c_is_defined = _gribapi_swig.grib_c_is_defined - -def grib_c_set_string_array(gid: 'int *', key: 'char *', val: 'char const **') -> "int": - return _gribapi_swig.grib_c_set_string_array(gid, key, val) -grib_c_set_string_array = _gribapi_swig.grib_c_set_string_array - -def grib_set_double_ndarray(gid: 'int *', key: 'char *', dpin_val: 'double *') -> "int": - return _gribapi_swig.grib_set_double_ndarray(gid, key, dpin_val) -grib_set_double_ndarray = _gribapi_swig.grib_set_double_ndarray - -def grib_set_long_ndarray(gid: 'int *', key: 'char *', lpin_val: 'long *') -> "int": - return _gribapi_swig.grib_set_long_ndarray(gid, key, lpin_val) -grib_set_long_ndarray = _gribapi_swig.grib_set_long_ndarray - -def grib_get_double_ndarray(gid: 'int *', key: 'char *', dpout_val: 'double *') -> "int": - return _gribapi_swig.grib_get_double_ndarray(gid, key, dpout_val) -grib_get_double_ndarray = _gribapi_swig.grib_get_double_ndarray - -def grib_get_long_ndarray(gid: 'int *', key: 'char *', lpout_val: 'long *') -> "int": - return _gribapi_swig.grib_get_long_ndarray(gid, key, lpout_val) -grib_get_long_ndarray = _gribapi_swig.grib_get_long_ndarray - -def grib_get_double_ndelements(gid: 'int *', key: 'char *', ipin_index: 'int *', dpout_val: 'double *') -> "int": - return _gribapi_swig.grib_get_double_ndelements(gid, key, ipin_index, dpout_val) -grib_get_double_ndelements = _gribapi_swig.grib_get_double_ndelements - -def grib_c_find_nearest_single(gid: 'int *', arg2: 'int *', arg3: 'double *', arg4: 'double *') -> "double *, double *, double *, double *, int *": - return _gribapi_swig.grib_c_find_nearest_single(gid, arg2, arg3, arg4) -grib_c_find_nearest_single = _gribapi_swig.grib_c_find_nearest_single - -def grib_c_find_nearest_four_single(gid: 'int *', arg2: 'int *', arg3: 'double *', arg4: 'double *', outlats: 'double *', outlons: 'double *', values: 'double *', distances: 'double *', indexes: 'int *') -> "int": - return _gribapi_swig.grib_c_find_nearest_four_single(gid, arg2, arg3, arg4, outlats, outlons, values, distances, indexes) -grib_c_find_nearest_four_single = _gribapi_swig.grib_c_find_nearest_four_single - -def grib_c_get_message(gid: 'int *') -> "size_t *": - return _gribapi_swig.grib_c_get_message(gid) -grib_c_get_message = _gribapi_swig.grib_c_get_message - -def grib_c_get_error_string(INPUT: 'int *', len: 'int') -> "char *": - return _gribapi_swig.grib_c_get_error_string(INPUT, len) -grib_c_get_error_string = _gribapi_swig.grib_c_get_error_string - -def no_fail_on_wrong_length(flag: 'int') -> "void": - return _gribapi_swig.no_fail_on_wrong_length(flag) -no_fail_on_wrong_length = _gribapi_swig.no_fail_on_wrong_length - -def grib_c_get_api_version() -> "long": - return _gribapi_swig.grib_c_get_api_version() -grib_c_get_api_version = _gribapi_swig.grib_c_get_api_version - -def grib_c_gts_header_on() -> "void": - return _gribapi_swig.grib_c_gts_header_on() -grib_c_gts_header_on = _gribapi_swig.grib_c_gts_header_on - -def grib_c_gts_header_off() -> "void": - return _gribapi_swig.grib_c_gts_header_off() -grib_c_gts_header_off = _gribapi_swig.grib_c_gts_header_off - -def grib_c_set_definitions_path(path: 'char const *') -> "void": - return _gribapi_swig.grib_c_set_definitions_path(path) -grib_c_set_definitions_path = _gribapi_swig.grib_c_set_definitions_path - -def grib_c_set_samples_path(path: 'char const *') -> "void": - return _gribapi_swig.grib_c_set_samples_path(path) -grib_c_set_samples_path = _gribapi_swig.grib_c_set_samples_path -# This file is compatible with both classic and new-style classes. - - diff --git a/python3/test_iterator.py b/python3/test_iterator.py deleted file mode 100755 index b980e5862..000000000 --- a/python3/test_iterator.py +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env python - -import sys -from gribapi import * -import profile - -def main(): - infile = sys.argv[1] - fid = open(infile,"r") - count = grib_count_in_file(fid) - - for i in range(count): - gid = grib_new_from_file(fid) - nval = grib_get_size(gid,"values") - iterid = grib_iterator_new(gid,0) - - missingValue = grib_get_double(gid,"missingValue") - - i=0 - while 1: - result = grib_iterator_next(iterid) - if not result: break - - [lat,lon,value] = result - - sys.stdout.write("- %d - lat=%.6f lon=%.6f value=" % (i,lat,lon)) - - if value == missingValue: - print("missing") - else: - print("%.6f" % value) - - i += 1 - - grib_iterator_delete(iterid) - grib_release(gid) - - fid.close() - -if __name__ == "__main__": - #profile.run('main()') - main() diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 02c0b65a0..cc2c0fb0f 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -241,7 +241,7 @@ if( HAVE_PYTHON AND ENABLE_EXTRA_TESTS ) ecbuild_add_test( TARGET eccodes_t_${test} TYPE SCRIPT COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/${test}.sh - ENVIRONMENT PYTHON=${PYTHON_EXECUTABLE} PYTHONPATH=${PROJECT_BINARY_DIR}/${ECCODES_PYTHON_DIR} + ENVIRONMENT PYTHON=${PYTHON_EXECUTABLE} PYTHONPATH=${PROJECT_BINARY_DIR}/python TEST_DEPENDS eccodes_download_bufrs ) endforeach() endif() diff --git a/tests/grib_iterator.sh b/tests/grib_iterator.sh index 40ae22ccb..16db96621 100755 --- a/tests/grib_iterator.sh +++ b/tests/grib_iterator.sh @@ -21,9 +21,9 @@ files="reduced_latlon_surface.grib1 \ reduced_gaussian_sub_area.grib2 \ regular_latlon_surface.grib2" -for f in `echo $files` -do +for f in $files; do file=${data_dir}/$f + # Must exclude the first line of grib_get_data which is "Latitude, Longitude, Value" iterator_count=`${tools_dir}/grib_get_data -m 9999:missing -f -p centre -F "%g" -w count=1 $file | grep -v Lat |wc -l ` numberOfPoints=`${tools_dir}/grib_get -w count=1 -p numberOfPoints $file` [ $numberOfPoints = ${iterator_count} ]