From 0f63f2a4190cef578bfecde944e6106bb7af4c82 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Wed, 21 Dec 2016 19:53:50 -0700 Subject: [PATCH] Add upstream patch for python 3.6 support --- 625.patch | 24856 ++++++++++++++++++++++++++++++++++++++++++ netcdf4-python.spec | 6 + 2 files changed, 24862 insertions(+) create mode 100644 625.patch diff --git a/625.patch b/625.patch new file mode 100644 index 0000000..5c3bb07 --- /dev/null +++ b/625.patch @@ -0,0 +1,24856 @@ +From 960190208681c5e843a4b264d7551364baac4cfa Mon Sep 17 00:00:00 2001 +From: Jeff Whitaker +Date: Tue, 20 Dec 2016 10:52:46 -0700 +Subject: [PATCH 01/14] fix for issue #624 + +--- + Changelog | 5 ++ + netCDF4/_netCDF4.c | 149 +++++++++++++++++++++++++++------------------------ + netCDF4/_netCDF4.pyx | 2 +- + 3 files changed, 84 insertions(+), 72 deletions(-) + +diff --git a/Changelog b/Changelog +index 51e74db..7c9186c 100644 +--- a/Changelog ++++ b/Changelog +@@ -1,3 +1,8 @@ ++ since version 1.2.6 release ++============================ ++ * fix for issue #624 (error conversion to masked array when variableslice ++ returns a scalar). ++ + version 1.2.6 (tag v1.2.6rel) + ============================== + * fix some test failures on big endian PPC64 that were due to +diff --git a/netCDF4/_netCDF4.c b/netCDF4/_netCDF4.c +index 3f68736..c9fbc65 100644 +--- a/netCDF4/_netCDF4.c ++++ b/netCDF4/_netCDF4.c +@@ -1,4 +1,4 @@ +-/* Generated by Cython 0.25.1 */ ++/* Generated by Cython 0.25.2 */ + + #define PY_SSIZE_T_CLEAN + #include "Python.h" +@@ -7,7 +7,7 @@ + #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03020000) + #error Cython requires Python 2.6+ or Python 3.2+. + #else +-#define CYTHON_ABI "0_25_1" ++#define CYTHON_ABI "0_25_2" + #include + #ifndef offsetof + #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) +@@ -190,7 +190,7 @@ + #endif + #if CYTHON_FAST_PYCCALL + #define __Pyx_PyFastCFunction_Check(func)\ +- ((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST))) ++ ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST))))) + #else + #define __Pyx_PyFastCFunction_Check(func) 0 + #endif +@@ -343,10 +343,39 @@ + #define CYTHON_RESTRICT + #endif + #endif ++#ifndef CYTHON_UNUSED ++# if defined(__GNUC__) ++# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) ++# define CYTHON_UNUSED __attribute__ ((__unused__)) ++# else ++# define CYTHON_UNUSED ++# endif ++# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) ++# define CYTHON_UNUSED __attribute__ ((__unused__)) ++# else ++# define CYTHON_UNUSED ++# endif ++#endif ++#ifndef CYTHON_MAYBE_UNUSED_VAR ++# if defined(__cplusplus) ++ template void CYTHON_MAYBE_UNUSED_VAR( const T& ) { } ++# else ++# define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x) ++# endif ++#endif ++#ifndef CYTHON_NCP_UNUSED ++# if CYTHON_COMPILING_IN_CPYTHON ++# define CYTHON_NCP_UNUSED ++# else ++# define CYTHON_NCP_UNUSED CYTHON_UNUSED ++# endif ++#endif + #define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) + + #ifndef CYTHON_INLINE +- #if defined(__GNUC__) ++ #if defined(__clang__) ++ #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) ++ #elif defined(__GNUC__) + #define CYTHON_INLINE __inline__ + #elif defined(_MSC_VER) + #define CYTHON_INLINE __inline +@@ -414,26 +443,6 @@ static CYTHON_INLINE float __PYX_NAN() { + #define CYTHON_WITHOUT_ASSERTIONS + #endif + +-#ifndef CYTHON_UNUSED +-# if defined(__GNUC__) +-# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +-# define CYTHON_UNUSED __attribute__ ((__unused__)) +-# else +-# define CYTHON_UNUSED +-# endif +-# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) +-# define CYTHON_UNUSED __attribute__ ((__unused__)) +-# else +-# define CYTHON_UNUSED +-# endif +-#endif +-#ifndef CYTHON_NCP_UNUSED +-# if CYTHON_COMPILING_IN_CPYTHON +-# define CYTHON_NCP_UNUSED +-# else +-# define CYTHON_NCP_UNUSED CYTHON_UNUSED +-# endif +-#endif + typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; + const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; + +@@ -2234,9 +2243,9 @@ static const char __pyx_k_Class_for_reading_multi_file_ne[] = "\nClass for readi + static const char __pyx_k_Class_providing_an_interface_to[] = "\nClass providing an interface to a MFDataset time Variable by imposing a unique common\ntime unit to all files. \n\nExample usage (See `netCDF4.MFTime.__init__` for more details):\n\n :::python\n >>> import numpy\n >>> f1 = Dataset(\"mftest_1.nc\",\"w\", format=\"NETCDF4_CLASSIC\")\n >>> f2 = Dataset(\"mftest_2.nc\",\"w\", format=\"NETCDF4_CLASSIC\")\n >>> f1.createDimension(\"time\",None)\n >>> f2.createDimension(\"time\",None)\n >>> t1 = f1.createVariable(\"time\",\"i\",(\"time\",))\n >>> t2 = f2.createVariable(\"time\",\"i\",(\"time\",))\n >>> t1.units = \"days since 2000-01-01\"\n >>> t2.units = \"days since 2000-02-01\"\n >>> t1.calendar = \"standard\"\n >>> t2.calendar = \"standard\"\n >>> t1[:] = numpy.arange(31)\n >>> t2[:] = numpy.arange(30)\n >>> f1.close()\n >>> f2.close()\n >>> # Read the two files in at once, in one Dataset.\n >>> f = MFDataset(\"mftest*nc\")\n >>> t = f.variables[\"time\"]\n >>> print t.units\n days since 2000-01-01\n >>> print t[32] # The value written in the file, inconsistent with the MF time units.\n 1\n >>> T = MFTime(t)\n >>> print T[32]\n 32\n "; + static const char __pyx_k_FillValue_attribute_must_be_set[] = "_FillValue attribute must be set when variable is "; + static const char __pyx_k_The_vltypes_dictionary_maps_the[] = "The `vltypes` dictionary maps the names of\n variable-length types defined for the `netCDF4.Group` or `netCDF4.Dataset` to instances of the\n `netCDF4.VLType` class."; +-static const char __pyx_k_Users_jsw_python_netcdf4_python[] = "/Users/jsw/python/netcdf4-python.git/netCDF4/_netCDF4.pyx"; + static const char __pyx_k_Variable_object_no_longer_valid[] = "Variable object no longer valid"; + static const char __pyx_k_Version_1_2_6_Introduction_netc[] = "\nVersion 1.2.6\n-------------\n- - - \n\nIntroduction\n============\n\nnetcdf4-python is a Python interface to the netCDF C library. \n\n[netCDF](http://www.unidata.ucar.edu/software/netcdf/) version 4 has many features\nnot found in earlier versions of the library and is implemented on top of\n[HDF5](http://www.hdfgroup.org/HDF5). This module can read and write\nfiles in both the new netCDF 4 and the old netCDF 3 format, and can create\nfiles that are readable by HDF5 clients. The API modelled after\n[Scientific.IO.NetCDF](http://dirac.cnrs-orleans.fr/ScientificPython/),\nand should be familiar to users of that module.\n\nMost new features of netCDF 4 are implemented, such as multiple\nunlimited dimensions, groups and zlib data compression. All the new\nnumeric data types (such as 64 bit and unsigned integer types) are\nimplemented. Compound (struct), variable length (vlen) and\nenumerated (enum) data types are supported, but not the opaque data type.\nMixtures of compound, vlen and enum data types (such as\ncompound types containing enums, or vlens containing compound\ntypes) are not supported.\n\nDownload\n========\n\n - Latest bleeding-edge code from the \n [github repository](http://github.com/Unidata/netcdf4-python).\n - Latest [releases](https://pypi.python.org/pypi/netCDF4)\n (source code and windows installers).\n\nRequires\n========\n\n - Python 2.7 or later (python 3 works too).\n - [numpy array module](http://numpy.scipy.org), version 1.7.0 or later.\n - [Cython](http://cython.org), version 0.19 or later, is optional - if it is installed setup.py will\n use it to recompile the Cython source code into C, using conditional compilation\n to enable features in the netCDF API that have been added since version 4.1.1. If\n Cython is not installed, these features (such as the ability to rename Group objects)\n will be disabled to preserve backward compatibility with older versions of the netCDF\n library.\n - The HDF5 C library version 1.8.4-p""atch1 or higher (1.8.x recommended)\n from [](ftp://ftp.hdfgroup.org/HDF5/current/src).\n ***netCDF version 4.4.1 or higher is recommended if using HDF5 1.10.x -\n otherwise resulting files may be unreadable by clients using earlier\n versions of HDF5. For netCDF < 4.4.1, HDF5 version 1.8.x is recommended.***\n Be sure to build with `--enable-hl --enable-shared`.\n - [Libcurl](http://curl.haxx.se/libcurl), if you want\n [OPeNDAP](http://opendap.org) support.\n - [HDF4](http://www.hdfgroup.org/products/hdf4), if you want\n to be able to read HDF4 \"Scientific Dataset\" (SD) files.\n - The netCDF-4 C library from the [github releases\n page](https://github.com/Unidata/netcdf-c/releases). \n Version 4.1.1 or higher is required (4.2 or higher recommended).\n Be sure to build with `--enable-netcdf-4 --enable-shared`, and set\n `CPPFLAGS=\"-I $HDF5_DIR/include\"` and `LDFLAGS=\"-L $HDF5_DIR/lib\"`,\n where `$HDF5_DIR` is the directory where HDF5 was installed.\n If you want [OPeNDAP](http://opendap.org) support, add `--enable-dap`.\n If you want HDF4 SD support, add `--enable-hdf4` and add\n the location of the HDF4 headers and library to `$CPPFLAGS` and `$LDFLAGS`.\n\n\nInstall\n=======\n\n - install the requisite python modules and C libraries (see above). It's\n easiest if all the C libs are built as shared libraries.\n - By default, the utility `nc-config`, installed with netcdf 4.1.2 or higher,\n will be run used to determine where all the dependencies live.\n - If `nc-config` is not in your default `$PATH`, rename the\n file `setup.cfg.template` to `setup.cfg`, then edit\n in a text editor (follow the instructions in the comments).\n In addition to specifying the path to `nc-config`,\n you can manually set the paths to all the libraries and their include files\n (in case `nc-config` does not do the right thing).\n - run `python setup.py build`, then `python setup.py install` (as root if\n necessary).\n - [`pip install`](https://pip.pypa.io/en/latest/reference/pip""_install.html) can\n also be used, with library paths set with environment variables. To make\n this work, the `USE_SETUPCFG` environment variable must be used to tell \n setup.py not to use `setup.cfg`.\n For example, `USE_SETUPCFG=0 HDF5_INCDIR=/usr/include/hdf5/serial\n HDF5_LIBDIR=/usr/lib/x86_64-linux-gnu/hdf5/serial pip install` has been\n shown to work on an Ubuntu/Debian linux system. Similarly, environment variables\n (all capitalized) can be used to set the include and library paths for\n `hdf5`, `netCDF4`, `hdf4`, `szip`, `jpeg`, `curl` and `zlib`. If the\n libraries are installed in standard places (e.g. `/usr` or `/usr/local`), \n the environment variables do not need to be set.\n - run the tests in the 'test' directory by running `python run_all.py`.\n\nTutorial\n========\n\n1. [Creating/Opening/Closing a netCDF file.](#section1)\n2. [Groups in a netCDF file.](#section2)\n3. [Dimensions in a netCDF file.](#section3)\n4. [Variables in a netCDF file.](#section4)\n5. [Attributes in a netCDF file.](#section5)\n6. [Writing data to and retrieving data from a netCDF variable.](#section6)\n7. [Dealing with time coordinates.](#section7)\n8. [Reading data from a multi-file netCDF dataset.](#section8)\n9. [Efficient compression of netCDF variables.](#section9)\n10. [Beyond homogeneous arrays of a fixed type - compound data types.](#section10)\n11. [Variable-length (vlen) data types.](#section11)\n12. [Enum data type.](#section12)\n\n\n##
1) Creating/Opening/Closing a netCDF file.\n\nTo create a netCDF file from python, you simply call the `netCDF4.Dataset`\nconstructor. This is also the method used to open an existing netCDF\nfile. If the file is open for write access (`mode='w', 'r+'` or `'a'`), you may\nwrite any type of data including new dimensions, groups, variables and\nattributes. netCDF files come in five flavors (`NETCDF3_CLASSIC,\nNETCDF3_64BIT_OFFSET, NETCDF3_64BIT_DATA, NETCDF4_CLASSIC`, and `NETCDF4`). \n`NETC""DF3_CLASSIC` was the original netcdf binary format, and was limited \nto file sizes less than 2 Gb. `NETCDF3_64BIT_OFFSET` was introduced\nin version 3.6.0 of the library, and extended the original binary format\nto allow for file sizes greater than 2 Gb. \n`NETCDF3_64BIT_DATA` is a new format that requires version 4.4.0 of\nthe C library - it extends the `NETCDF3_64BIT_OFFSET` binary format to\nallow for unsigned/64 bit integer data types and 64-bit dimension sizes.\n`NETCDF3_64BIT` is an alias for `NETCDF3_64BIT_OFFSET`.\n`NETCDF4_CLASSIC` files use the version 4 disk format (HDF5), but omits features\nnot found in the version 3 API. They can be read by netCDF 3 clients\nonly if they have been relinked against the netCDF 4 library. They can\nalso be read by HDF5 clients. `NETCDF4` files use the version 4 disk\nformat (HDF5) and use the new features of the version 4 API. The\n`netCDF4` module can read and write files in any of these formats. When\ncreating a new file, the format may be specified using the `format`\nkeyword in the `Dataset` constructor. The default format is\n`NETCDF4`. To see how a given file is formatted, you can examine the\n`data_model` attribute. Closing the netCDF file is\naccomplished via the `netCDF4.Dataset.close` method of the `netCDF4.Dataset`\ninstance.\n\nHere's an example:\n\n :::python\n >>> from netCDF4 import Dataset\n >>> rootgrp = Dataset(\"test.nc\", \"w\", format=\"NETCDF4\")\n >>> print rootgrp.data_model\n NETCDF4\n >>> rootgrp.close()\n\nRemote [OPeNDAP](http://opendap.org)-hosted datasets can be accessed for\nreading over http if a URL is provided to the `netCDF4.Dataset` constructor instead of a\nfilename. However, this requires that the netCDF library be built with\nOPenDAP support, via the `--enable-dap` configure option (added in\nversion 4.0.1).\n\n\n##
2) Groups in a netCDF file.\n\nnetCDF version 4 added support for organizing data in hierarchical\ngroups, which are analogous t""o directories in a filesystem. Groups serve\nas containers for variables, dimensions and attributes, as well as other\ngroups. A `netCDF4.Dataset` creates a special group, called\nthe 'root group', which is similar to the root directory in a unix\nfilesystem. To create `netCDF4.Group` instances, use the\n`netCDF4.Dataset.createGroup` method of a `netCDF4.Dataset` or `netCDF4.Group`\ninstance. `netCDF4.Dataset.createGroup` takes a single argument, a\npython string containing the name of the new group. The new `netCDF4.Group`\ninstances contained within the root group can be accessed by name using\nthe `groups` dictionary attribute of the `netCDF4.Dataset` instance. Only\n`NETCDF4` formatted files support Groups, if you try to create a Group\nin a netCDF 3 file you will get an error message.\n\n :::python\n >>> rootgrp = Dataset(\"test.nc\", \"a\")\n >>> fcstgrp = rootgrp.createGroup(\"forecasts\")\n >>> analgrp = rootgrp.createGroup(\"analyses\")\n >>> print rootgrp.groups\n OrderedDict([(\"forecasts\", \n ),\n (\"analyses\", \n )])\n\nGroups can exist within groups in a `netCDF4.Dataset`, just as directories\nexist within directories in a unix filesystem. Each `netCDF4.Group` instance\nhas a `groups` attribute dictionary containing all of the group\ninstances contained within that group. Each `netCDF4.Group` instance also has a\n`path` attribute that contains a simulated unix directory path to\nthat group. To simplify the creation of nested groups, you can\nuse a unix-like path as an argument to `netCDF4.Dataset.createGroup`.\n\n :::python\n >>> fcstgrp1 = rootgrp.createGroup(\"/forecasts/model1\")\n >>> fcstgrp2 = rootgrp.createGroup(\"/forecasts/model2\")\n\nIf any of the intermediate elements of the path do not exist, they are created,\njust as with the unix command `'mkdir -p'`. If you try to cre""ate a group\nthat already exists, no error will be raised, and the existing group will be \nreturned.\n\nHere's an example that shows how to navigate all the groups in a\n`netCDF4.Dataset`. The function `walktree` is a Python generator that is used\nto walk the directory tree. Note that printing the `netCDF4.Dataset` or `netCDF4.Group`\nobject yields summary information about it's contents.\n\n :::python\n >>> def walktree(top):\n >>> values = top.groups.values()\n >>> yield values\n >>> for value in top.groups.values():\n >>> for children in walktree(value):\n >>> yield children\n >>> print rootgrp\n >>> for children in walktree(rootgrp):\n >>> for child in children:\n >>> print child\n \n root group (NETCDF4 file format):\n dimensions:\n variables:\n groups: forecasts, analyses\n \n group /forecasts:\n dimensions:\n variables:\n groups: model1, model2\n \n group /analyses:\n dimensions:\n variables:\n groups:\n \n group /forecasts/model1:\n dimensions:\n variables:\n groups:\n \n group /forecasts/model2:\n dimensions:\n variables:\n groups:\n\n##
3) Dimensions in a netCDF file.\n\nnetCDF defines the sizes of all variables in terms of dimensions, so\nbefore any variables can be created the dimensions they use must be\ncreated first. A special case, not often used in practice, is that of a\nscalar variable, which has no dimensions. A dimension is created using\nthe `netCDF4.Dataset.createDimension` method of a `netCDF4.Dataset`\nor `netCDF4.Group` instance. A Python string is used to set the name of the\ndimension, and an integer value is used to set the size. To create an""\nunlimited dimension (a dimension that can be appended to), the size\nvalue is set to `None` or 0. In this example, there both the `time` and\n`level` dimensions are unlimited. Having more than one unlimited\ndimension is a new netCDF 4 feature, in netCDF 3 files there may be only\none, and it must be the first (leftmost) dimension of the variable.\n\n :::python\n >>> level = rootgrp.createDimension(\"level\", None)\n >>> time = rootgrp.createDimension(\"time\", None)\n >>> lat = rootgrp.createDimension(\"lat\", 73)\n >>> lon = rootgrp.createDimension(\"lon\", 144)\n\n\nAll of the `netCDF4.Dimension` instances are stored in a python dictionary.\n\n :::python\n >>> print rootgrp.dimensions\n OrderedDict([(\"level\", ),\n (\"time\", ),\n (\"lat\", ),\n (\"lon\", )])\n\nCalling the python `len` function with a `netCDF4.Dimension` instance returns\nthe current size of that dimension.\nThe `netCDF4.Dimension.isunlimited` method of a `netCDF4.Dimension` instance\ncan be used to determine if the dimensions is unlimited, or appendable.\n\n :::python\n >>> print len(lon)\n 144\n >>> print lon.isunlimited()\n False\n >>> print time.isunlimited()\n True\n\nPrinting the `netCDF4.Dimension` object\nprovides useful summary info, including the name and length of the dimension,\nand whether it is unlimited.\n\n :::python\n >>> for dimobj in rootgrp.dimensions.values():\n >>> print dimobj\n (unlimited): name = \"level\", size = 0\n (unlimited): name = \"time\", size = 0\n : name = \"lat\", size = 73\n : name = \"lon\", size = 144""\n (unlimited): name = \"time\", size = 0\n\n`netCDF4.Dimension` names can be changed using the\n`netCDF4.Datatset.renameDimension` method of a `netCDF4.Dataset` or\n`netCDF4.Group` instance.\n\n##
4) Variables in a netCDF file.\n\nnetCDF variables behave much like python multidimensional array objects\nsupplied by the [numpy module](http://numpy.scipy.org). However,\nunlike numpy arrays, netCDF4 variables can be appended to along one or\nmore 'unlimited' dimensions. To create a netCDF variable, use the\n`netCDF4.Dataset.createVariable` method of a `netCDF4.Dataset` or\n`netCDF4.Group` instance. The `netCDF4.Dataset.createVariable` method\nhas two mandatory arguments, the variable name (a Python string), and\nthe variable datatype. The variable's dimensions are given by a tuple\ncontaining the dimension names (defined previously with\n`netCDF4.Dataset.createDimension`). To create a scalar\nvariable, simply leave out the dimensions keyword. The variable\nprimitive datatypes correspond to the dtype attribute of a numpy array.\nYou can specify the datatype as a numpy dtype object, or anything that\ncan be converted to a numpy dtype object. Valid datatype specifiers\ninclude: `'f4'` (32-bit floating point), `'f8'` (64-bit floating\npoint), `'i4'` (32-bit signed integer), `'i2'` (16-bit signed\ninteger), `'i8'` (64-bit signed integer), `'i1'` (8-bit signed\ninteger), `'u1'` (8-bit unsigned integer), `'u2'` (16-bit unsigned\ninteger), `'u4'` (32-bit unsigned integer), `'u8'` (64-bit unsigned\ninteger), or `'S1'` (single-character string). The old Numeric\nsingle-character typecodes (`'f'`,`'d'`,`'h'`,\n`'s'`,`'b'`,`'B'`,`'c'`,`'i'`,`'l'`), corresponding to\n(`'f4'`,`'f8'`,`'i2'`,`'i2'`,`'i1'`,`'i1'`,`'S1'`,`'i4'`,`'i4'`),\nwill also work. The unsigned integer types and the 64-bit integer type\ncan only be used if the file format is `NETCDF4`.\n\nThe dimensions themselves are usually also defined as variables, c""alled\ncoordinate variables. The `netCDF4.Dataset.createVariable`\nmethod returns an instance of the `netCDF4.Variable` class whose methods can be\nused later to access and set variable data and attributes.\n\n :::python\n >>> times = rootgrp.createVariable(\"time\",\"f8\",(\"time\",))\n >>> levels = rootgrp.createVariable(\"level\",\"i4\",(\"level\",))\n >>> latitudes = rootgrp.createVariable(\"latitude\",\"f4\",(\"lat\",))\n >>> longitudes = rootgrp.createVariable(\"longitude\",\"f4\",(\"lon\",))\n >>> # two dimensions unlimited\n >>> temp = rootgrp.createVariable(\"temp\",\"f4\",(\"time\",\"level\",\"lat\",\"lon\",))\n\nTo get summary info on a `netCDF4.Variable` instance in an interactive session, just print it.\n\n :::python\n >>> print temp\n \n float32 temp(time, level, lat, lon)\n least_significant_digit: 3\n units: K\n unlimited dimensions: time, level\n current shape = (0, 0, 73, 144)\n\nYou can use a path to create a Variable inside a hierarchy of groups.\n\n :::python\n >>> ftemp = rootgrp.createVariable(\"/forecasts/model1/temp\",\"f4\",(\"time\",\"level\",\"lat\",\"lon\",))\n\nIf the intermediate groups do not yet exist, they will be created.\n\nYou can also query a `netCDF4.Dataset` or `netCDF4.Group` instance directly to obtain `netCDF4.Group` or \n`netCDF4.Variable` instances using paths.\n\n :::python\n >>> print rootgrp[\"/forecasts/model1\"] # a Group instance\n \n group /forecasts/model1:\n dimensions(sizes):\n variables(dimensions): float32 temp(time,level,lat,lon)\n groups:\n >>> print rootgrp[\"/forecasts/model1/temp\"] # a Variable instance\n \n float32 temp(time, level, lat, lon)\n path = /forecasts/model1\n unlimited dimensions: time, level\n current shape = (0, 0, 73, 144)\n filling on, default _FillValue of 9.96920996839e+3""6 used\n\nAll of the variables in the `netCDF4.Dataset` or `netCDF4.Group` are stored in a\nPython dictionary, in the same way as the dimensions:\n\n :::python\n >>> print rootgrp.variables\n OrderedDict([(\"time\", ),\n (\"level\", ),\n (\"latitude\", ),\n (\"longitude\", ),\n (\"temp\", )])\n\n`netCDF4.Variable` names can be changed using the\n`netCDF4.Dataset.renameVariable` method of a `netCDF4.Dataset`\ninstance.\n\n\n##
5) Attributes in a netCDF file.\n\nThere are two types of attributes in a netCDF file, global and variable.\nGlobal attributes provide information about a group, or the entire\ndataset, as a whole. `netCDF4.Variable` attributes provide information about\none of the variables in a group. Global attributes are set by assigning\nvalues to `netCDF4.Dataset` or `netCDF4.Group` instance variables. `netCDF4.Variable`\nattributes are set by assigning values to `netCDF4.Variable` instances\nvariables. Attributes can be strings, numbers or sequences. Returning to\nour example,\n\n :::python\n >>> import time\n >>> rootgrp.description = \"bogus example script\"\n >>> rootgrp.history = \"Created \" + time.ctime(time.time())\n >>> rootgrp.source = \"netCDF4 python module tutorial\"\n >>> latitudes.units = \"degrees north\"\n >>> longitudes.units = \"degrees east\"\n >>> levels.units = \"hPa\"\n >>> temp.units = \"K\"\n >>> times.units = \"hours since 0001-01-01 00:00:00.0\"\n >>> times.calendar = \"gregorian\"\n\nThe `netCDF4.Dataset.ncattrs` method of a `netCDF4.Dataset`, `netCDF4.Group` or\n`netCDF4.Variable` instance can be used to retrieve the names of all the netCDF\nattributes. This method is provided as a convenience, since using the\nbuilt-""in `dir` Python function will return a bunch of private methods\nand attributes that cannot (or should not) be modified by the user.\n\n :::python\n >>> for name in rootgrp.ncattrs():\n >>> print \"Global attr\", name, \"=\", getattr(rootgrp,name)\n Global attr description = bogus example script\n Global attr history = Created Mon Nov 7 10.30:56 2005\n Global attr source = netCDF4 python module tutorial\n\nThe `__dict__` attribute of a `netCDF4.Dataset`, `netCDF4.Group` or `netCDF4.Variable`\ninstance provides all the netCDF attribute name/value pairs in a python\ndictionary:\n\n :::python\n >>> print rootgrp.__dict__\n OrderedDict([(u\"description\", u\"bogus example script\"),\n (u\"history\", u\"Created Thu Mar 3 19:30:33 2011\"),\n (u\"source\", u\"netCDF4 python module tutorial\")])\n\nAttributes can be deleted from a netCDF `netCDF4.Dataset`, `netCDF4.Group` or\n`netCDF4.Variable` using the python `del` statement (i.e. `del grp.foo`\nremoves the attribute `foo` the the group `grp`).\n\n##
6) Writing data to and retrieving data from a netCDF variable.\n\nNow that you have a netCDF `netCDF4.Variable` instance, how do you put data\ninto it? You can just treat it like an array and assign data to a slice.\n\n :::python\n >>> import numpy\n >>> lats = numpy.arange(-90,91,2.5)\n >>> lons = numpy.arange(-180,180,2.5)\n >>> latitudes[:] = lats\n >>> longitudes[:] = lons\n >>> print \"latitudes =\\n\",latitudes[:]\n latitudes =\n [-90. -87.5 -85. -82.5 -80. -77.5 -75. -72.5 -70. -67.5 -65. -62.5\n -60. -57.5 -55. -52.5 -50. -47.5 -45. -42.5 -40. -37.5 -35. -32.5\n -30. -27.5 -25. -22.5 -20. -17.5 -15. -12.5 -10. -7.5 -5. -2.5\n 0. 2.5 5. 7.5 10. 12.5 15. 17.5 20. 22.5 25. 27.5\n 30. 32.5 35. 37.5 40. 42.5 45. 47.5 50. 52.5 55. 57.5\n 60. 62.5 65. 67.5 70. 72.5 75. 77.""5 80. 82.5 85. 87.5\n 90. ]\n\nUnlike NumPy's array objects, netCDF `netCDF4.Variable`\nobjects with unlimited dimensions will grow along those dimensions if you\nassign data outside the currently defined range of indices.\n\n :::python\n >>> # append along two unlimited dimensions by assigning to slice.\n >>> nlats = len(rootgrp.dimensions[\"lat\"])\n >>> nlons = len(rootgrp.dimensions[\"lon\"])\n >>> print \"temp shape before adding data = \",temp.shape\n temp shape before adding data = (0, 0, 73, 144)\n >>>\n >>> from numpy.random import uniform\n >>> temp[0:5,0:10,:,:] = uniform(size=(5,10,nlats,nlons))\n >>> print \"temp shape after adding data = \",temp.shape\n temp shape after adding data = (6, 10, 73, 144)\n >>>\n >>> # levels have grown, but no values yet assigned.\n >>> print \"levels shape after adding pressure data = \",levels.shape\n levels shape after adding pressure data = (10,)\n\nNote that the size of the levels variable grows when data is appended\nalong the `level` dimension of the variable `temp`, even though no\ndata has yet been assigned to levels.\n\n :::python\n >>> # now, assign data to levels dimension variable.\n >>> levels[:] = [1000.,850.,700.,500.,300.,250.,200.,150.,100.,50.]\n\nHowever, that there are some differences between NumPy and netCDF\nvariable slicing rules. Slices behave as usual, being specified as a\n`start:stop:step` triplet. Using a scalar integer index `i` takes the ith\nelement and reduces the rank of the output array by one. Boolean array and\ninteger sequence indexing behaves differently for netCDF variables\nthan for numpy arrays. Only 1-d boolean arrays and integer sequences are\nallowed, and these indices work independently along each dimension (similar\nto the way vector subscripts work in fortran). This means that\n\n :::python\n >>> temp[0, 0, [0,1,2,3], [0,1,2,3]]\n\nreturns an array of shape (4,4) when slicing a netCDF variable, but ""for a\nnumpy array it returns an array of shape (4,).\nSimilarly, a netCDF variable of shape `(2,3,4,5)` indexed\nwith `[0, array([True, False, True]), array([False, True, True, True]), :]`\nwould return a `(2, 3, 5)` array. In NumPy, this would raise an error since\nit would be equivalent to `[0, [0,1], [1,2,3], :]`. When slicing with integer\nsequences, the indices ***need not be sorted*** and ***may contain\nduplicates*** (both of these are new features in version 1.2.1).\nWhile this behaviour may cause some confusion for those used to NumPy's 'fancy indexing' rules,\nit provides a very powerful way to extract data from multidimensional netCDF\nvariables by using logical operations on the dimension arrays to create slices.\n\nFor example,\n\n :::python\n >>> tempdat = temp[::2, [1,3,6], lats>0, lons>0]\n\nwill extract time indices 0,2 and 4, pressure levels\n850, 500 and 200 hPa, all Northern Hemisphere latitudes and Eastern\nHemisphere longitudes, resulting in a numpy array of shape (3, 3, 36, 71).\n\n :::python\n >>> print \"shape of fancy temp slice = \",tempdat.shape\n shape of fancy temp slice = (3, 3, 36, 71)\n\n***Special note for scalar variables***: To extract data from a scalar variable\n`v` with no associated dimensions, use `np.asarray(v)` or `v[...]`. The result\nwill be a numpy scalar array.\n\n##
7) Dealing with time coordinates.\n\nTime coordinate values pose a special challenge to netCDF users. Most\nmetadata standards (such as CF) specify that time should be\nmeasure relative to a fixed date using a certain calendar, with units\nspecified like `hours since YY:MM:DD hh-mm-ss`. These units can be\nawkward to deal with, without a utility to convert the values to and\nfrom calendar dates. The function called `netCDF4.num2date` and `netCDF4.date2num` are\nprovided with this package to do just that. Here's an example of how they\ncan be used:\n\n :::python\n >>> # fill in times.\n >>> from datetime impo""rt datetime, timedelta\n >>> from netCDF4 import num2date, date2num\n >>> dates = [datetime(2001,3,1)+n*timedelta(hours=12) for n in range(temp.shape[0])]\n >>> times[:] = date2num(dates,units=times.units,calendar=times.calendar)\n >>> print \"time values (in units %s): \" % times.units+\"\\n\",times[:]\n time values (in units hours since January 1, 0001):\n [ 17533056. 17533068. 17533080. 17533092. 17533104.]\n >>> dates = num2date(times[:],units=times.units,calendar=times.calendar)\n >>> print \"dates corresponding to time values:\\n\",dates\n dates corresponding to time values:\n [2001-03-01 00:00:00 2001-03-01 12:00:00 2001-03-02 00:00:00\n 2001-03-02 12:00:00 2001-03-03 00:00:00]\n\n`netCDF4.num2date` converts numeric values of time in the specified `units`\nand `calendar` to datetime objects, and `netCDF4.date2num` does the reverse.\nAll the calendars currently defined in the\n[CF metadata convention](http://cfconventions.org) are supported.\nA function called `netCDF4.date2index` is also provided which returns the indices\nof a netCDF time variable corresponding to a sequence of datetime instances.\n\n\n##
8) Reading data from a multi-file netCDF dataset.\n\nIf you want to read data from a variable that spans multiple netCDF files,\nyou can use the `netCDF4.MFDataset` class to read the data as if it were\ncontained in a single file. Instead of using a single filename to create\na `netCDF4.Dataset` instance, create a `netCDF4.MFDataset` instance with either a list\nof filenames, or a string with a wildcard (which is then converted to\na sorted list of files using the python glob module).\nVariables in the list of files that share the same unlimited\ndimension are aggregated together, and can be sliced across multiple\nfiles. To illustrate this, let's first create a bunch of netCDF files with\nthe same variable (with the same unlimited dimension). The files\nmust in be in `NETCDF3_64BIT_OFFSET`, `NETCDF""3_64BIT_DATA`, `NETCDF3_CLASSIC` or\n`NETCDF4_CLASSIC` format (`NETCDF4` formatted multi-file\ndatasets are not supported).\n\n :::python\n >>> for nf in range(10):\n >>> f = Dataset(\"mftest%s.nc\" % nf,\"w\")\n >>> f.createDimension(\"x\",None)\n >>> x = f.createVariable(\"x\",\"i\",(\"x\",))\n >>> x[0:10] = numpy.arange(nf*10,10*(nf+1))\n >>> f.close()\n\nNow read all the files back in at once with `netCDF4.MFDataset`\n\n :::python\n >>> from netCDF4 import MFDataset\n >>> f = MFDataset(\"mftest*nc\")\n >>> print f.variables[\"x\"][:]\n [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24\n 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49\n 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74\n 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99]\n\nNote that `netCDF4.MFDataset` can only be used to read, not write, multi-file\ndatasets.\n\n##
9) Efficient compression of netCDF variables.\n\nData stored in netCDF 4 `netCDF4.Variable` objects can be compressed and\ndecompressed on the fly. The parameters for the compression are\ndetermined by the `zlib`, `complevel` and `shuffle` keyword arguments\nto the `netCDF4.Dataset.createVariable` method. To turn on\ncompression, set `zlib=True`. The `complevel` keyword regulates the\nspeed and efficiency of the compression (1 being fastest, but lowest\ncompression ratio, 9 being slowest but best compression ratio). The\ndefault value of `complevel` is 4. Setting `shuffle=False` will turn\noff the HDF5 shuffle filter, which de-interlaces a block of data before\ncompression by reordering the bytes. The shuffle filter can\nsignificantly improve compression ratios, and is on by default. Setting\n`fletcher32` keyword argument to\n`netCDF4.Dataset.createVariable` to `True` (it's `False` by\ndefault) enables the Fletcher32 checksum algorithm for erro""r detection.\nIt's also possible to set the HDF5 chunking parameters and endian-ness\nof the binary data stored in the HDF5 file with the `chunksizes`\nand `endian` keyword arguments to\n`netCDF4.Dataset.createVariable`. These keyword arguments only\nare relevant for `NETCDF4` and `NETCDF4_CLASSIC` files (where the\nunderlying file format is HDF5) and are silently ignored if the file\nformat is `NETCDF3_CLASSIC`, `NETCDF3_64BIT_OFFSET` or `NETCDF3_64BIT_DATA`.\n\nIf your data only has a certain number of digits of precision (say for\nexample, it is temperature data that was measured with a precision of\n0.1 degrees), you can dramatically improve zlib compression by\nquantizing (or truncating) the data using the `least_significant_digit`\nkeyword argument to `netCDF4.Dataset.createVariable`. The least\nsignificant digit is the power of ten of the smallest decimal place in\nthe data that is a reliable value. For example if the data has a\nprecision of 0.1, then setting `least_significant_digit=1` will cause\ndata the data to be quantized using `numpy.around(scale*data)/scale`, where\nscale = 2**bits, and bits is determined so that a precision of 0.1 is\nretained (in this case bits=4). Effectively, this makes the compression\n'lossy' instead of 'lossless', that is some precision in the data is\nsacrificed for the sake of disk space.\n\nIn our example, try replacing the line\n\n :::python\n >>> temp = rootgrp.createVariable(\"temp\",\"f4\",(\"time\",\"level\",\"lat\",\"lon\",))\n\nwith\n\n :::python\n >>> temp = dataset.createVariable(\"temp\",\"f4\",(\"time\",\"level\",\"lat\",\"lon\",),zlib=True)\n\nand then\n\n :::python\n >>> temp = dataset.createVariable(\"temp\",\"f4\",(\"time\",\"level\",\"lat\",\"lon\",),zlib=True,least_significant_digit=3)\n\nand see how much smaller the resulting files are.\n\n##
10) Beyond homogeneous arrays of a fixed type - compound data types.\n\nCompound data types map directly to numpy structured (""a.k.a 'record')\narrays. Structured arrays are akin to C structs, or derived types\nin Fortran. They allow for the construction of table-like structures\ncomposed of combinations of other data types, including other\ncompound types. Compound types might be useful for representing multiple\nparameter values at each point on a grid, or at each time and space\nlocation for scattered (point) data. You can then access all the\ninformation for a point by reading one variable, instead of reading\ndifferent parameters from different variables. Compound data types\nare created from the corresponding numpy data type using the\n`netCDF4.Dataset.createCompoundType` method of a `netCDF4.Dataset` or `netCDF4.Group` instance.\nSince there is no native complex data type in netcdf, compound types are handy\nfor storing numpy complex arrays. Here's an example:\n\n :::python\n >>> f = Dataset(\"complex.nc\",\"w\")\n >>> size = 3 # length of 1-d complex array\n >>> # create sample complex data.\n >>> datac = numpy.exp(1j*(1.+numpy.linspace(0, numpy.pi, size)))\n >>> # create complex128 compound data type.\n >>> complex128 = numpy.dtype([(\"real\",numpy.float64),(\"imag\",numpy.float64)])\n >>> complex128_t = f.createCompoundType(complex128,\"complex128\")\n >>> # create a variable with this data type, write some data to it.\n >>> f.createDimension(\"x_dim\",None)\n >>> v = f.createVariable(\"cmplx_var\",complex128_t,\"x_dim\")\n >>> data = numpy.empty(size,complex128) # numpy structured array\n >>> data[\"real\"] = datac.real; data[\"imag\"] = datac.imag\n >>> v[:] = data # write numpy structured array to netcdf compound var\n >>> # close and reopen the file, check the contents.\n >>> f.close(); f = Dataset(\"complex.nc\")\n >>> v = f.variables[\"cmplx_var\"]\n >>> datain = v[:] # read in all the data into a numpy structured array\n >>> # create an empty numpy complex array\n >>> datac2 = numpy.empty(datain.shape,numpy.comp""lex128)\n >>> # .. fill it with contents of structured array.\n >>> datac2.real = datain[\"real\"]; datac2.imag = datain[\"imag\"]\n >>> print datac.dtype,datac # original data\n complex128 [ 0.54030231+0.84147098j -0.84147098+0.54030231j -0.54030231-0.84147098j]\n >>>\n >>> print datac2.dtype,datac2 # data from file\n complex128 [ 0.54030231+0.84147098j -0.84147098+0.54030231j -0.54030231-0.84147098j]\n\nCompound types can be nested, but you must create the 'inner'\nones first. All of the compound types defined for a `netCDF4.Dataset` or `netCDF4.Group` are stored in a\nPython dictionary, just like variables and dimensions. As always, printing\nobjects gives useful summary information in an interactive session:\n\n :::python\n >>> print f\n \n root group (NETCDF4 file format):\n dimensions: x_dim\n variables: cmplx_var\n groups:\n \n >>> print f.variables[\"cmplx_var\"]\n compound cmplx_var(x_dim)\n compound data type: [(\"real\", \">> print f.cmptypes\n OrderedDict([(\"complex128\", )])\n >>> print f.cmptypes[\"complex128\"]\n : name = \"complex128\", numpy dtype = [(u\"real\",\"11) Variable-length (vlen) data types.\n\nNetCDF 4 has support for variable-length or \"ragged\" arrays. These are arrays\nof variable length sequences having the same type. To create a variable-length\ndata type, use the `netCDF4.Dataset.createVLType` method\nmethod of a `netCDF4.Dataset` or `netCDF4.Group` instance.\n\n :::python\n >>> f = Dataset(\"tst_vlen.nc\",\"w\")\n >>> vlen_t = f.createVLType(numpy.int32, \"phony_vlen\")\n\nThe numpy datatype of the variable-length sequences and the name of the""\nnew datatype must be specified. Any of the primitive datatypes can be\nused (signed and unsigned integers, 32 and 64 bit floats, and characters),\nbut compound data types cannot.\nA new variable can then be created using this datatype.\n\n :::python\n >>> x = f.createDimension(\"x\",3)\n >>> y = f.createDimension(\"y\",4)\n >>> vlvar = f.createVariable(\"phony_vlen_var\", vlen_t, (\"y\",\"x\"))\n\nSince there is no native vlen datatype in numpy, vlen arrays are represented\nin python as object arrays (arrays of dtype `object`). These are arrays whose\nelements are Python object pointers, and can contain any type of python object.\nFor this application, they must contain 1-D numpy arrays all of the same type\nbut of varying length.\nIn this case, they contain 1-D numpy `int32` arrays of random length between\n1 and 10.\n\n :::python\n >>> import random\n >>> data = numpy.empty(len(y)*len(x),object)\n >>> for n in range(len(y)*len(x)):\n >>> data[n] = numpy.arange(random.randint(1,10),dtype=\"int32\")+1\n >>> data = numpy.reshape(data,(len(y),len(x)))\n >>> vlvar[:] = data\n >>> print \"vlen variable =\\n\",vlvar[:]\n vlen variable =\n [[[ 1 2 3 4 5 6 7 8 9 10] [1 2 3 4 5] [1 2 3 4 5 6 7 8]]\n [[1 2 3 4 5 6 7] [1 2 3 4 5 6] [1 2 3 4 5]]\n [[1 2 3 4 5] [1 2 3 4] [1]]\n [[ 1 2 3 4 5 6 7 8 9 10] [ 1 2 3 4 5 6 7 8 9 10]\n [1 2 3 4 5 6 7 8]]]\n >>> print f\n \n root group (NETCDF4 file format):\n dimensions: x, y\n variables: phony_vlen_var\n groups:\n >>> print f.variables[\"phony_vlen_var\"]\n \n vlen phony_vlen_var(y, x)\n vlen data type: int32\n unlimited dimensions:\n current shape = (4, 3)\n >>> print f.VLtypes[\"phony_vlen\"]\n : name = \"phony_vlen\", numpy dtype = int32\n\nNumpy object arrays containing python strings can"" also be written as vlen\nvariables, For vlen strings, you don't need to create a vlen data type.\nInstead, simply use the python `str` builtin (or a numpy string datatype\nwith fixed length greater than 1) when calling the\n`netCDF4.Dataset.createVariable` method.\n\n :::python\n >>> z = f.createDimension(\"z\",10)\n >>> strvar = rootgrp.createVariable(\"strvar\", str, \"z\")\n\nIn this example, an object array is filled with random python strings with\nrandom lengths between 2 and 12 characters, and the data in the object\narray is assigned to the vlen string variable.\n\n :::python\n >>> chars = \"1234567890aabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\"\n >>> data = numpy.empty(10,\"O\")\n >>> for n in range(10):\n >>> stringlen = random.randint(2,12)\n >>> data[n] = \"\".join([random.choice(chars) for i in range(stringlen)])\n >>> strvar[:] = data\n >>> print \"variable-length string variable:\\n\",strvar[:]\n variable-length string variable:\n [aDy29jPt 5DS9X8 jd7aplD b8t4RM jHh8hq KtaPWF9cQj Q1hHN5WoXSiT MMxsVeq tdLUzvVTzj]\n >>> print f\n \n root group (NETCDF4 file format):\n dimensions: x, y, z\n variables: phony_vlen_var, strvar\n groups:\n >>> print f.variables[\"strvar\"]\n \n vlen strvar(z)\n vlen data type: \n unlimited dimensions:\n current size = (10,)\n\nIt is also possible to set contents of vlen string variables with numpy arrays\nof any string or unicode data type. Note, however, that accessing the contents\nof such variables will always return numpy arrays with dtype `object`.\n\n##
12) Enum data type.\n\nnetCDF4 has an enumerated data type, which is an integer datatype that is\nrestricted to certain named values. Since Enums don't map directly to\na numpy data type, they are read and written as integer arrays.\n\nHere's an example of usin""g an Enum type to hold cloud type data. \nThe base integer data type and a python dictionary describing the allowed\nvalues and their names are used to define an Enum data type using\n`netCDF4.Dataset.createEnumType`.\n\n :::python\n >>> nc = Dataset('clouds.nc','w')\n >>> # python dict with allowed values and their names.\n >>> enum_dict = {u'Altocumulus': 7, u'Missing': 255, \n >>> u'Stratus': 2, u'Clear': 0,\n >>> u'Nimbostratus': 6, u'Cumulus': 4, u'Altostratus': 5,\n >>> u'Cumulonimbus': 1, u'Stratocumulus': 3}\n >>> # create the Enum type called 'cloud_t'.\n >>> cloud_type = nc.createEnumType(numpy.uint8,'cloud_t',enum_dict)\n >>> print cloud_type\n : name = 'cloud_t',\n numpy dtype = uint8, fields/values ={u'Cumulus': 4,\n u'Altocumulus': 7, u'Missing': 255,\n u'Stratus': 2, u'Clear': 0,\n u'Cumulonimbus': 1, u'Stratocumulus': 3,\n u'Nimbostratus': 6, u'Altostratus': 5}\n\nA new variable can be created in the usual way using this data type.\nInteger data is written to the variable that represents the named\ncloud types in enum_dict. A `ValueError` will be raised if an attempt\nis made to write an integer value not associated with one of the\nspecified names.\n\n :::python\n >>> time = nc.createDimension('time',None)\n >>> # create a 1d variable of type 'cloud_type'.\n >>> # The fill_value is set to the 'Missing' named value.\n >>> cloud_var =\n >>> nc.createVariable('primary_cloud',cloud_type,'time',\n >>> fill_value=enum_dict['Missing'])\n >>> # write some data to the variable.\n >>> cloud_var[:] = [enum_dict['Clear'],enum_dict['Stratus'],\n >>> enum_dict['Cumulus'],enum_dict['Missing'],\n >>> enum_dict['Cumulonimbus']]\n >>> nc.close()\n >>> # reopen the file, read the data.\n >>> nc = Dataset('clouds.nc')\n >>> cloud_var = nc.variables['primary_cloud']\n >>> print cloud_var\n \n enum prima""ry_cloud(time)\n _FillValue: 255\n enum data type: uint8\n unlimited dimensions: time\n current shape = (5,)\n >>> print cloud_var.datatype.enum_dict\n {u'Altocumulus': 7, u'Missing': 255, u'Stratus': 2,\n u'Clear': 0, u'Nimbostratus': 6, u'Cumulus': 4,\n u'Altostratus': 5, u'Cumulonimbus': 1,\n u'Stratocumulus': 3}\n >>> print cloud_var[:]\n [0 2 4 -- 1]\n >>> nc.close()\n\nAll of the code in this tutorial is available in `examples/tutorial.py`,\nUnit tests are in the `test` directory.\n\n**contact**: Jeffrey Whitaker \n\n**copyright**: 2008 by Jeffrey Whitaker.\n\n**license**: Permission to use, copy, modify, and distribute this software and\nits documentation for any purpose and without fee is hereby granted,\nprovided that the above copyright notice appear in all copies and that\nboth the copyright notice and this permission notice appear in\nsupporting documentation.\nTHE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,\nINCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO\nEVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR\nCONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF\nUSE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n- - -\n"; ++static const char __pyx_k_Volumes_Drobo_python_netcdf4_py[] = "/Volumes/Drobo/python/netcdf4-python.git/netCDF4/_netCDF4.pyx"; + static const char __pyx_k_assign_vlen_method_only_for_use[] = "_assign_vlen method only for use with VLEN variables"; + static const char __pyx_k_cannot_set__FillValue_attribute[] = "cannot set _FillValue attribute for VLEN or compound variable"; + static const char __pyx_k_cannot_specify_chunksizes_for_a[] = "cannot specify chunksizes for a contiguous dataset"; +@@ -2443,7 +2452,6 @@ static PyObject *__pyx_n_s_UNDEFINED; + static PyObject *__pyx_n_s_UnicodeDecodeError; + static PyObject *__pyx_n_s_UnicodeError; + static PyObject *__pyx_kp_s_Unsupported_compound_type_elemen; +-static PyObject *__pyx_kp_s_Users_jsw_python_netcdf4_python; + static PyObject *__pyx_n_s_V; + static PyObject *__pyx_kp_s_VLType_dtype; + static PyObject *__pyx_kp_s_VLType_is_not_picklable; +@@ -2475,6 +2483,7 @@ static PyObject *__pyx_n_s_Variable_set_auto_scale; + static PyObject *__pyx_kp_s_Variable_shape; + static PyObject *__pyx_kp_s_Variable_size; + static PyObject *__pyx_n_s_Variable_typecode; ++static PyObject *__pyx_kp_s_Volumes_Drobo_python_netcdf4_py; + static PyObject *__pyx_kp_s_WARNING_Backwards_incompatible; + static PyObject *__pyx_kp_s_WARNING_unsupported_Compound_typ; + static PyObject *__pyx_kp_s_WARNING_unsupported_Enum_type_sk; +@@ -3631,7 +3640,7 @@ static PyObject *__pyx_gb_7netCDF4_8_netCDF4_24generator(__pyx_CoroutineObject * + if (unlikely(PyDict_SetItem(__pyx_r, (PyObject*)__pyx_cur_scope->__pyx_v_v, (PyObject*)__pyx_cur_scope->__pyx_v_k))) __PYX_ERR(0, 1032, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- if (1); else __pyx_cur_scope = __pyx_cur_scope; ++ CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); + + /* function exit code */ + goto __pyx_L0; +@@ -41797,7 +41806,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + * if mvalisnan: + * mvalmask += numpy.isnan(data) # <<<<<<<<<<<<<< + * else: +- * mvalmask += data==mval ++ * mvalmask += data==m + */ + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3860, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); +@@ -41866,12 +41875,12 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + /* "netCDF4/_netCDF4.pyx":3862 + * mvalmask += numpy.isnan(data) + * else: +- * mvalmask += data==mval # <<<<<<<<<<<<<< ++ * mvalmask += data==m # <<<<<<<<<<<<<< + * if mvalmask.any(): + * # set fill_value for masked array + */ + /*else*/ { +- __pyx_t_4 = PyObject_RichCompare(__pyx_v_data, __pyx_v_mval, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3862, __pyx_L1_error) ++ __pyx_t_4 = PyObject_RichCompare(__pyx_v_data, __pyx_v_m, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3862, __pyx_L1_error) + __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_mvalmask, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3862, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +@@ -41892,7 +41901,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + + /* "netCDF4/_netCDF4.pyx":3863 + * else: +- * mvalmask += data==mval ++ * mvalmask += data==m + * if mvalmask.any(): # <<<<<<<<<<<<<< + * # set fill_value for masked array + * # to missing_value (or 1st element +@@ -41947,7 +41956,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + + /* "netCDF4/_netCDF4.pyx":3863 + * else: +- * mvalmask += data==mval ++ * mvalmask += data==m + * if mvalmask.any(): # <<<<<<<<<<<<<< + * # set fill_value for masked array + * # to missing_value (or 1st element +@@ -79460,7 +79469,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { + {&__pyx_n_s_UnicodeDecodeError, __pyx_k_UnicodeDecodeError, sizeof(__pyx_k_UnicodeDecodeError), 0, 0, 1, 1}, + {&__pyx_n_s_UnicodeError, __pyx_k_UnicodeError, sizeof(__pyx_k_UnicodeError), 0, 0, 1, 1}, + {&__pyx_kp_s_Unsupported_compound_type_elemen, __pyx_k_Unsupported_compound_type_elemen, sizeof(__pyx_k_Unsupported_compound_type_elemen), 0, 0, 1, 0}, +- {&__pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_k_Users_jsw_python_netcdf4_python, sizeof(__pyx_k_Users_jsw_python_netcdf4_python), 0, 0, 1, 0}, + {&__pyx_n_s_V, __pyx_k_V, sizeof(__pyx_k_V), 0, 0, 1, 1}, + {&__pyx_kp_s_VLType_dtype, __pyx_k_VLType_dtype, sizeof(__pyx_k_VLType_dtype), 0, 0, 1, 0}, + {&__pyx_kp_s_VLType_is_not_picklable, __pyx_k_VLType_is_not_picklable, sizeof(__pyx_k_VLType_is_not_picklable), 0, 0, 1, 0}, +@@ -79492,6 +79500,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { + {&__pyx_kp_s_Variable_shape, __pyx_k_Variable_shape, sizeof(__pyx_k_Variable_shape), 0, 0, 1, 0}, + {&__pyx_kp_s_Variable_size, __pyx_k_Variable_size, sizeof(__pyx_k_Variable_size), 0, 0, 1, 0}, + {&__pyx_n_s_Variable_typecode, __pyx_k_Variable_typecode, sizeof(__pyx_k_Variable_typecode), 0, 0, 1, 1}, ++ {&__pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_k_Volumes_Drobo_python_netcdf4_py, sizeof(__pyx_k_Volumes_Drobo_python_netcdf4_py), 0, 0, 1, 0}, + {&__pyx_kp_s_WARNING_Backwards_incompatible, __pyx_k_WARNING_Backwards_incompatible, sizeof(__pyx_k_WARNING_Backwards_incompatible), 0, 0, 1, 0}, + {&__pyx_kp_s_WARNING_unsupported_Compound_typ, __pyx_k_WARNING_unsupported_Compound_typ, sizeof(__pyx_k_WARNING_unsupported_Compound_typ), 0, 0, 1, 0}, + {&__pyx_kp_s_WARNING_unsupported_Enum_type_sk, __pyx_k_WARNING_unsupported_Enum_type_sk, sizeof(__pyx_k_WARNING_unsupported_Enum_type_sk), 0, 0, 1, 0}, +@@ -81339,7 +81348,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__130 = PyTuple_Pack(4, __pyx_n_s_majorvers, __pyx_n_s_minorvers, __pyx_n_s_releasevers, __pyx_n_s_patchstring); if (unlikely(!__pyx_tuple__130)) __PYX_ERR(0, 958, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__130); + __Pyx_GIVEREF(__pyx_tuple__130); +- __pyx_codeobj__131 = (PyObject*)__Pyx_PyCode_New(0, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__130, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_gethdf5libversion, 958, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__131)) __PYX_ERR(0, 958, __pyx_L1_error) ++ __pyx_codeobj__131 = (PyObject*)__Pyx_PyCode_New(0, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__130, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_gethdf5libversion, 958, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__131)) __PYX_ERR(0, 958, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":968 + * return '%d.%d.%d-%s' % (majorvers,minorvers,releasevers,patchstring) +@@ -81348,7 +81357,7 @@ static int __Pyx_InitCachedConstants(void) { + * """ + * **`getlibversion()`** + */ +- __pyx_codeobj__132 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_getlibversion, 968, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__132)) __PYX_ERR(0, 968, __pyx_L1_error) ++ __pyx_codeobj__132 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_getlibversion, 968, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__132)) __PYX_ERR(0, 968, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":984 + * __has_cdf5__ = HAS_CDF5_FORMAT +@@ -81415,7 +81424,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__138 = PyTuple_Pack(1, __pyx_n_s_format); if (unlikely(!__pyx_tuple__138)) __PYX_ERR(0, 1183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__138); + __Pyx_GIVEREF(__pyx_tuple__138); +- __pyx_codeobj__139 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__138, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_set_default_format, 1183, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__139)) __PYX_ERR(0, 1183, __pyx_L1_error) ++ __pyx_codeobj__139 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__138, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_set_default_format, 1183, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__139)) __PYX_ERR(0, 1183, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5074 + * return pystr # already bytes or unicode? +@@ -81427,7 +81436,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__140 = PyTuple_Pack(1, __pyx_n_s_bytestr); if (unlikely(!__pyx_tuple__140)) __PYX_ERR(0, 5074, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__140); + __Pyx_GIVEREF(__pyx_tuple__140); +- __pyx_codeobj__141 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__140, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_to_ascii, 5074, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__141)) __PYX_ERR(0, 5074, __pyx_L1_error) ++ __pyx_codeobj__141 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__140, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_to_ascii, 5074, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__141)) __PYX_ERR(0, 5074, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5089 + * +@@ -81450,7 +81459,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__143 = PyTuple_Pack(13, __pyx_n_s_timestr, __pyx_n_s_timestr_split, __pyx_n_s_units, __pyx_n_s_n, __pyx_n_s_isostring, __pyx_n_s_year, __pyx_n_s_month, __pyx_n_s_day, __pyx_n_s_hour, __pyx_n_s_minute, __pyx_n_s_second, __pyx_n_s_utc_offset, __pyx_n_s_basedate); if (unlikely(!__pyx_tuple__143)) __PYX_ERR(0, 5091, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__143); + __Pyx_GIVEREF(__pyx_tuple__143); +- __pyx_codeobj__144 = (PyObject*)__Pyx_PyCode_New(1, 0, 13, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__143, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_dateparse, 5091, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__144)) __PYX_ERR(0, 5091, __pyx_L1_error) ++ __pyx_codeobj__144 = (PyObject*)__Pyx_PyCode_New(1, 0, 13, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__143, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_dateparse, 5091, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__144)) __PYX_ERR(0, 5091, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5116 + * return basedate +@@ -81462,7 +81471,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__145 = PyTuple_Pack(4, __pyx_n_s_string, __pyx_n_s_NUMCHARS, __pyx_n_s_dtype, __pyx_n_s_arr); if (unlikely(!__pyx_tuple__145)) __PYX_ERR(0, 5116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__145); + __Pyx_GIVEREF(__pyx_tuple__145); +- __pyx_codeobj__146 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__145, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_stringtoarr, 5116, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__146)) __PYX_ERR(0, 5116, __pyx_L1_error) ++ __pyx_codeobj__146 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__145, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_stringtoarr, 5116, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__146)) __PYX_ERR(0, 5116, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5139 + * return arr +@@ -81474,7 +81483,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__147 = PyTuple_Pack(3, __pyx_n_s_a, __pyx_n_s_dtype, __pyx_n_s_b); if (unlikely(!__pyx_tuple__147)) __PYX_ERR(0, 5139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__147); + __Pyx_GIVEREF(__pyx_tuple__147); +- __pyx_codeobj__148 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__147, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_stringtochar, 5139, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__148)) __PYX_ERR(0, 5139, __pyx_L1_error) ++ __pyx_codeobj__148 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__147, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_stringtochar, 5139, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__148)) __PYX_ERR(0, 5139, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5158 + * return b +@@ -81486,7 +81495,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__149 = PyTuple_Pack(6, __pyx_n_s_b, __pyx_n_s_dtype, __pyx_n_s_bs, __pyx_n_s_slen, __pyx_n_s_a, __pyx_n_s_n1); if (unlikely(!__pyx_tuple__149)) __PYX_ERR(0, 5158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__149); + __Pyx_GIVEREF(__pyx_tuple__149); +- __pyx_codeobj__150 = (PyObject*)__Pyx_PyCode_New(1, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__149, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_chartostring, 5158, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__150)) __PYX_ERR(0, 5158, __pyx_L1_error) ++ __pyx_codeobj__150 = (PyObject*)__Pyx_PyCode_New(1, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__149, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_chartostring, 5158, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__150)) __PYX_ERR(0, 5158, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5179 + * return a +@@ -81498,7 +81507,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__151 = PyTuple_Pack(15, __pyx_n_s_dates, __pyx_n_s_units, __pyx_n_s_calendar, __pyx_n_s_basedate, __pyx_n_s_unit, __pyx_n_s_msg, __pyx_n_s_isscalar, __pyx_n_s_shape, __pyx_n_s_ismasked, __pyx_n_s_mask, __pyx_n_s_times, __pyx_n_s_date, __pyx_n_s_td, __pyx_n_s_totaltime, __pyx_n_s_cdftime); if (unlikely(!__pyx_tuple__151)) __PYX_ERR(0, 5179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__151); + __Pyx_GIVEREF(__pyx_tuple__151); +- __pyx_codeobj__152 = (PyObject*)__Pyx_PyCode_New(3, 0, 15, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__151, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_date2num, 5179, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__152)) __PYX_ERR(0, 5179, __pyx_L1_error) ++ __pyx_codeobj__152 = (PyObject*)__Pyx_PyCode_New(3, 0, 15, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__151, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_date2num, 5179, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__152)) __PYX_ERR(0, 5179, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5267 + * return cdftime.date2num(dates) +@@ -81510,7 +81519,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__153 = PyTuple_Pack(20, __pyx_n_s_times, __pyx_n_s_units, __pyx_n_s_calendar, __pyx_n_s_basedate, __pyx_n_s_unit, __pyx_n_s_msg, __pyx_n_s_isscalar, __pyx_n_s_shape, __pyx_n_s_ismasked, __pyx_n_s_mask, __pyx_n_s_dates, __pyx_n_s_time, __pyx_n_s_tsecs, __pyx_n_s_days, __pyx_n_s_msecsd, __pyx_n_s_secs, __pyx_n_s_msecs, __pyx_n_s_td, __pyx_n_s_date, __pyx_n_s_cdftime); if (unlikely(!__pyx_tuple__153)) __PYX_ERR(0, 5267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__153); + __Pyx_GIVEREF(__pyx_tuple__153); +- __pyx_codeobj__154 = (PyObject*)__Pyx_PyCode_New(3, 0, 20, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__153, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_num2date, 5267, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__154)) __PYX_ERR(0, 5267, __pyx_L1_error) ++ __pyx_codeobj__154 = (PyObject*)__Pyx_PyCode_New(3, 0, 20, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__153, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_num2date, 5267, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__154)) __PYX_ERR(0, 5267, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5370 + * return cdftime.num2date(times) +@@ -81522,7 +81531,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__155 = PyTuple_Pack(7, __pyx_n_s_dates, __pyx_n_s_nctime, __pyx_n_s_calendar, __pyx_n_s_select, __pyx_n_s_basedate, __pyx_n_s_msg, __pyx_n_s_times); if (unlikely(!__pyx_tuple__155)) __PYX_ERR(0, 5370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__155); + __Pyx_GIVEREF(__pyx_tuple__155); +- __pyx_codeobj__156 = (PyObject*)__Pyx_PyCode_New(4, 0, 7, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__155, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_date2index, 5370, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__156)) __PYX_ERR(0, 5370, __pyx_L1_error) ++ __pyx_codeobj__156 = (PyObject*)__Pyx_PyCode_New(4, 0, 7, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__155, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_date2index, 5370, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__156)) __PYX_ERR(0, 5370, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5456 + * """ +@@ -81534,7 +81543,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__157 = PyTuple_Pack(36, __pyx_n_s_self, __pyx_n_s_files, __pyx_n_s_check, __pyx_n_s_aggdim, __pyx_n_s_exclude, __pyx_n_s_msg, __pyx_n_s_master, __pyx_n_s_cdfm, __pyx_n_s_name, __pyx_n_s_value, __pyx_n_s_aggDimId, __pyx_n_s_dimname, __pyx_n_s_dim, __pyx_n_s_aggDimName, __pyx_n_s_masterRecVar, __pyx_n_s_vName, __pyx_n_s_v, __pyx_n_s_dims_2, __pyx_n_s_shape, __pyx_n_s_dtype, __pyx_n_s_cdf_2, __pyx_n_s_cdfVLen_2, __pyx_n_s_cdfRecVar_2, __pyx_n_s_f, __pyx_n_s_part, __pyx_n_s_varInfo, __pyx_n_s_masterDims, __pyx_n_s_masterShape, __pyx_n_s_masterType, __pyx_n_s_extDims, __pyx_n_s_extShape, __pyx_n_s_extType, __pyx_n_s_vInst, __pyx_n_s_varname, __pyx_n_s_var, __pyx_n_s_dset); if (unlikely(!__pyx_tuple__157)) __PYX_ERR(0, 5456, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__157); + __Pyx_GIVEREF(__pyx_tuple__157); +- __pyx_codeobj__158 = (PyObject*)__Pyx_PyCode_New(5, 0, 36, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__157, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_init, 5456, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__158)) __PYX_ERR(0, 5456, __pyx_L1_error) ++ __pyx_codeobj__158 = (PyObject*)__Pyx_PyCode_New(5, 0, 36, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__157, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_init, 5456, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__158)) __PYX_ERR(0, 5456, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5629 + * self._path = '/' +@@ -81546,7 +81555,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__159 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_name, __pyx_n_s_value); if (unlikely(!__pyx_tuple__159)) __PYX_ERR(0, 5629, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__159); + __Pyx_GIVEREF(__pyx_tuple__159); +- __pyx_codeobj__160 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__159, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_setattr, 5629, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__160)) __PYX_ERR(0, 5629, __pyx_L1_error) ++ __pyx_codeobj__160 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__159, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_setattr, 5629, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__160)) __PYX_ERR(0, 5629, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5633 + * self.__dict__[name] = value +@@ -81558,7 +81567,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__161 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_name); if (unlikely(!__pyx_tuple__161)) __PYX_ERR(0, 5633, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__161); + __Pyx_GIVEREF(__pyx_tuple__161); +- __pyx_codeobj__162 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__161, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_getattribute, 5633, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__162)) __PYX_ERR(0, 5633, __pyx_L1_error) ++ __pyx_codeobj__162 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__161, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_getattribute, 5633, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__162)) __PYX_ERR(0, 5633, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5646 + * return Dataset.__getattribute__(self, name) +@@ -81570,7 +81579,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__163 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__163)) __PYX_ERR(0, 5646, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__163); + __Pyx_GIVEREF(__pyx_tuple__163); +- __pyx_codeobj__164 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__163, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_ncattrs, 5646, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__164)) __PYX_ERR(0, 5646, __pyx_L1_error) ++ __pyx_codeobj__164 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__163, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_ncattrs, 5646, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__164)) __PYX_ERR(0, 5646, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5654 + * return self._cdf[0].__dict__.keys() +@@ -81582,7 +81591,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__165 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_dset); if (unlikely(!__pyx_tuple__165)) __PYX_ERR(0, 5654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__165); + __Pyx_GIVEREF(__pyx_tuple__165); +- __pyx_codeobj__166 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__165, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_close, 5654, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__166)) __PYX_ERR(0, 5654, __pyx_L1_error) ++ __pyx_codeobj__166 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__165, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_close, 5654, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__166)) __PYX_ERR(0, 5654, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5663 + * dset.close() +@@ -81594,7 +81603,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__167 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_ncdump, __pyx_n_s_dimnames, __pyx_n_s_varnames, __pyx_n_s_grpnames, __pyx_n_s_attrs, __pyx_n_s_dimname, __pyx_n_s_varname, __pyx_n_s_name); if (unlikely(!__pyx_tuple__167)) __PYX_ERR(0, 5663, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__167); + __Pyx_GIVEREF(__pyx_tuple__167); +- __pyx_codeobj__168 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__167, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_repr, 5663, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__168)) __PYX_ERR(0, 5663, __pyx_L1_error) ++ __pyx_codeobj__168 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__167, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_repr, 5663, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__168)) __PYX_ERR(0, 5663, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5681 + * return ''.join(ncdump) +@@ -81606,7 +81615,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__169 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__169)) __PYX_ERR(0, 5681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__169); + __Pyx_GIVEREF(__pyx_tuple__169); +- __pyx_codeobj__170 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__169, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_reduce, 5681, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__170)) __PYX_ERR(0, 5681, __pyx_L1_error) ++ __pyx_codeobj__170 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__169, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_reduce, 5681, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__170)) __PYX_ERR(0, 5681, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5686 + * +@@ -81618,7 +81627,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__171 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_dimname, __pyx_n_s_dim, __pyx_n_s_dimlens, __pyx_n_s_dimtotlen); if (unlikely(!__pyx_tuple__171)) __PYX_ERR(0, 5686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__171); + __Pyx_GIVEREF(__pyx_tuple__171); +- __pyx_codeobj__172 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__171, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_init, 5686, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__172)) __PYX_ERR(0, 5686, __pyx_L1_error) ++ __pyx_codeobj__172 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__171, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_init, 5686, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__172)) __PYX_ERR(0, 5686, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5690 + * self.dimtotlen = dimtotlen +@@ -81630,7 +81639,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__173 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__173)) __PYX_ERR(0, 5690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__173); + __Pyx_GIVEREF(__pyx_tuple__173); +- __pyx_codeobj__174 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__173, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_len, 5690, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__174)) __PYX_ERR(0, 5690, __pyx_L1_error) ++ __pyx_codeobj__174 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__173, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_len, 5690, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__174)) __PYX_ERR(0, 5690, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5692 + * def __len__(self): +@@ -81642,7 +81651,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__175 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__175)) __PYX_ERR(0, 5692, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__175); + __Pyx_GIVEREF(__pyx_tuple__175); +- __pyx_codeobj__176 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__175, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_isunlimited, 5692, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__176)) __PYX_ERR(0, 5692, __pyx_L1_error) ++ __pyx_codeobj__176 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__175, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_isunlimited, 5692, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__176)) __PYX_ERR(0, 5692, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5694 + * def isunlimited(self): +@@ -81654,7 +81663,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__177 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__177)) __PYX_ERR(0, 5694, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__177); + __Pyx_GIVEREF(__pyx_tuple__177); +- __pyx_codeobj__178 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__177, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_repr, 5694, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__178)) __PYX_ERR(0, 5694, __pyx_L1_error) ++ __pyx_codeobj__178 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__177, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_repr, 5694, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__178)) __PYX_ERR(0, 5694, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5701 + * +@@ -81666,7 +81675,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__179 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_dset, __pyx_n_s_varname, __pyx_n_s_var, __pyx_n_s_recdimname, __pyx_n_s_name, __pyx_n_s_value); if (unlikely(!__pyx_tuple__179)) __PYX_ERR(0, 5701, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__179); + __Pyx_GIVEREF(__pyx_tuple__179); +- __pyx_codeobj__180 = (PyObject*)__Pyx_PyCode_New(5, 0, 7, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__179, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_init, 5701, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__180)) __PYX_ERR(0, 5701, __pyx_L1_error) ++ __pyx_codeobj__180 = (PyObject*)__Pyx_PyCode_New(5, 0, 7, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__179, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_init, 5701, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__180)) __PYX_ERR(0, 5701, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5714 + * for name, value in var.__dict__.items(): +@@ -81678,7 +81687,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__181 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__181)) __PYX_ERR(0, 5714, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__181); + __Pyx_GIVEREF(__pyx_tuple__181); +- __pyx_codeobj__182 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__181, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_typecode, 5714, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__182)) __PYX_ERR(0, 5714, __pyx_L1_error) ++ __pyx_codeobj__182 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__181, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_typecode, 5714, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__182)) __PYX_ERR(0, 5714, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5716 + * def typecode(self): +@@ -81690,7 +81699,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__183 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__183)) __PYX_ERR(0, 5716, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__183); + __Pyx_GIVEREF(__pyx_tuple__183); +- __pyx_codeobj__184 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__183, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_ncattrs, 5716, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__184)) __PYX_ERR(0, 5716, __pyx_L1_error) ++ __pyx_codeobj__184 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__183, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_ncattrs, 5716, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__184)) __PYX_ERR(0, 5716, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5718 + * def ncattrs(self): +@@ -81702,7 +81711,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__185 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_name); if (unlikely(!__pyx_tuple__185)) __PYX_ERR(0, 5718, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__185); + __Pyx_GIVEREF(__pyx_tuple__185); +- __pyx_codeobj__186 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__185, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_getattr, 5718, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__186)) __PYX_ERR(0, 5718, __pyx_L1_error) ++ __pyx_codeobj__186 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__185, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_getattr, 5718, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__186)) __PYX_ERR(0, 5718, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5725 + * except: +@@ -81714,7 +81723,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__187 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_ncdump_var, __pyx_n_s_dimnames, __pyx_n_s_attrs, __pyx_n_s_unlimdims, __pyx_n_s_dimname, __pyx_n_s_dim, __pyx_n_s_name); if (unlikely(!__pyx_tuple__187)) __PYX_ERR(0, 5725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__187); + __Pyx_GIVEREF(__pyx_tuple__187); +- __pyx_codeobj__188 = (PyObject*)__Pyx_PyCode_New(1, 0, 8, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__187, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_repr, 5725, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__188)) __PYX_ERR(0, 5725, __pyx_L1_error) ++ __pyx_codeobj__188 = (PyObject*)__Pyx_PyCode_New(1, 0, 8, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__187, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_repr, 5725, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__188)) __PYX_ERR(0, 5725, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5741 + * ncdump_var.append('current size = %s\n' % repr(self.shape)) +@@ -81726,7 +81735,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__189 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__189)) __PYX_ERR(0, 5741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__189); + __Pyx_GIVEREF(__pyx_tuple__189); +- __pyx_codeobj__190 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__189, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_len, 5741, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__190)) __PYX_ERR(0, 5741, __pyx_L1_error) ++ __pyx_codeobj__190 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__189, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_len, 5741, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__190)) __PYX_ERR(0, 5741, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5746 + * else: +@@ -81738,7 +81747,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__191 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_recdimlen); if (unlikely(!__pyx_tuple__191)) __PYX_ERR(0, 5746, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__191); + __Pyx_GIVEREF(__pyx_tuple__191); +- __pyx_codeobj__192 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__191, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_shape_2, 5746, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__192)) __PYX_ERR(0, 5746, __pyx_L1_error) ++ __pyx_codeobj__192 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__191, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_shape_2, 5746, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__192)) __PYX_ERR(0, 5746, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5749 + * recdimlen = len(self._dset.dimensions[self._recdimname]) +@@ -81750,7 +81759,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__193 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_val, __pyx_n_s_v); if (unlikely(!__pyx_tuple__193)) __PYX_ERR(0, 5749, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__193); + __Pyx_GIVEREF(__pyx_tuple__193); +- __pyx_codeobj__194 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__193, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_set_auto_maskandscale, 5749, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__194)) __PYX_ERR(0, 5749, __pyx_L1_error) ++ __pyx_codeobj__194 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__193, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_set_auto_maskandscale, 5749, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__194)) __PYX_ERR(0, 5749, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5752 + * for v in self._recVar: +@@ -81762,7 +81771,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__195 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_val, __pyx_n_s_v); if (unlikely(!__pyx_tuple__195)) __PYX_ERR(0, 5752, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__195); + __Pyx_GIVEREF(__pyx_tuple__195); +- __pyx_codeobj__196 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__195, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_set_auto_mask, 5752, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__196)) __PYX_ERR(0, 5752, __pyx_L1_error) ++ __pyx_codeobj__196 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__195, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_set_auto_mask, 5752, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__196)) __PYX_ERR(0, 5752, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5755 + * for v in self._recVar: +@@ -81774,7 +81783,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__197 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_val, __pyx_n_s_v); if (unlikely(!__pyx_tuple__197)) __PYX_ERR(0, 5755, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__197); + __Pyx_GIVEREF(__pyx_tuple__197); +- __pyx_codeobj__198 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__197, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_set_auto_scale, 5755, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__198)) __PYX_ERR(0, 5755, __pyx_L1_error) ++ __pyx_codeobj__198 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__197, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_set_auto_scale, 5755, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__198)) __PYX_ERR(0, 5755, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5758 + * for v in self._recVar: +@@ -81786,7 +81795,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__199 = PyTuple_Pack(30, __pyx_n_s_self, __pyx_n_s_elem, __pyx_n_s_start, __pyx_n_s_count, __pyx_n_s_stride, __pyx_n_s_put_ind, __pyx_n_s_datashape, __pyx_n_s_data, __pyx_n_s_squeeze, __pyx_n_s_i, __pyx_n_s_n, __pyx_n_s_strt, __pyx_n_s_cnt, __pyx_n_s_strd, __pyx_n_s_nv, __pyx_n_s_ind, __pyx_n_s_sta, __pyx_n_s_step, __pyx_n_s_stop, __pyx_n_s_idx, __pyx_n_s_vid, __pyx_n_s_k, __pyx_n_s_lst, __pyx_n_s_newSlice, __pyx_n_s_s_2, __pyx_n_s_lstArr, __pyx_n_s_ismasked, __pyx_n_s_dat, __pyx_n_s_fill_value, __pyx_n_s_numv); if (unlikely(!__pyx_tuple__199)) __PYX_ERR(0, 5758, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__199); + __Pyx_GIVEREF(__pyx_tuple__199); +- __pyx_codeobj__200 = (PyObject*)__Pyx_PyCode_New(2, 0, 30, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__199, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_getitem, 5758, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__200)) __PYX_ERR(0, 5758, __pyx_L1_error) ++ __pyx_codeobj__200 = (PyObject*)__Pyx_PyCode_New(2, 0, 30, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__199, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_getitem, 5758, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__200)) __PYX_ERR(0, 5758, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5897 + * """ +@@ -81798,7 +81807,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__201 = PyTuple_Pack(15, __pyx_n_s_self, __pyx_n_s_time, __pyx_n_s_units, __pyx_n_s_datetime, __pyx_n_s_name, __pyx_n_s_value, __pyx_n_s_t, __pyx_n_s_ref_date, __pyx_n_s_ref_num, __pyx_n_s_i0, __pyx_n_s_i1, __pyx_n_s_i, __pyx_n_s_v, __pyx_n_s_n, __pyx_n_s_num); if (unlikely(!__pyx_tuple__201)) __PYX_ERR(0, 5897, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__201); + __Pyx_GIVEREF(__pyx_tuple__201); +- __pyx_codeobj__202 = (PyObject*)__Pyx_PyCode_New(3, 0, 15, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__201, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_init, 5897, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__202)) __PYX_ERR(0, 5897, __pyx_L1_error) ++ __pyx_codeobj__202 = (PyObject*)__Pyx_PyCode_New(3, 0, 15, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__201, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_init, 5897, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__202)) __PYX_ERR(0, 5897, __pyx_L1_error) + __pyx_tuple__203 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__203)) __PYX_ERR(0, 5897, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__203); + __Pyx_GIVEREF(__pyx_tuple__203); +@@ -81812,7 +81821,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__204 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_elem); if (unlikely(!__pyx_tuple__204)) __PYX_ERR(0, 5945, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__204); + __Pyx_GIVEREF(__pyx_tuple__204); +- __pyx_codeobj__205 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__204, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jsw_python_netcdf4_python, __pyx_n_s_getitem, 5945, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__205)) __PYX_ERR(0, 5945, __pyx_L1_error) ++ __pyx_codeobj__205 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__204, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_getitem, 5945, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__205)) __PYX_ERR(0, 5945, __pyx_L1_error) + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; +@@ -85124,10 +85133,8 @@ static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, P + PyCFunctionObject *func = (PyCFunctionObject*)func_obj; + PyCFunction meth = PyCFunction_GET_FUNCTION(func); + PyObject *self = PyCFunction_GET_SELF(func); +- PyObject *result; +- int flags; + assert(PyCFunction_Check(func)); +- assert(METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)); ++ assert(METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST))); + assert(nargs >= 0); + assert(nargs == 0 || args != NULL); + /* _PyCFunction_FastCallDict() must not be called with an exception set, +diff --git a/netCDF4/_netCDF4.pyx b/netCDF4/_netCDF4.pyx +index 6f294d5..8c382b0 100644 +--- a/netCDF4/_netCDF4.pyx ++++ b/netCDF4/_netCDF4.pyx +@@ -3859,7 +3859,7 @@ rename a `netCDF4.Variable` attribute named `oldname` to `newname`.""" + if mvalisnan: + mvalmask += numpy.isnan(data) + else: +- mvalmask += data==mval ++ mvalmask += data==m + if mvalmask.any(): + # set fill_value for masked array + # to missing_value (or 1st element + +From 2714dfa111d1cbaa21b1ffb6c2445fd42d2ba9db Mon Sep 17 00:00:00 2001 +From: Jeff Whitaker +Date: Tue, 20 Dec 2016 10:54:19 -0700 +Subject: [PATCH 02/14] fix typo + +--- + Changelog | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Changelog b/Changelog +index 7c9186c..3586afe 100644 +--- a/Changelog ++++ b/Changelog +@@ -1,6 +1,6 @@ + since version 1.2.6 release + ============================ +- * fix for issue #624 (error conversion to masked array when variableslice ++ * fix for issue #624 (error in conversion to masked array when variableslice + returns a scalar). + + version 1.2.6 (tag v1.2.6rel) + +From 03f2d58b6a4d4095fa14944643f7a77a34f4c9a8 Mon Sep 17 00:00:00 2001 +From: Jeff Whitaker +Date: Tue, 20 Dec 2016 10:56:28 -0700 +Subject: [PATCH 03/14] bump version number + +--- + Changelog | 4 ++-- + netCDF4/_netCDF4.c | 18 +++++++++--------- + netCDF4/_netCDF4.pyx | 4 ++-- + setup.py | 2 +- + 4 files changed, 14 insertions(+), 14 deletions(-) + +diff --git a/Changelog b/Changelog +index 3586afe..23876d5 100644 +--- a/Changelog ++++ b/Changelog +@@ -1,5 +1,5 @@ +- since version 1.2.6 release +-============================ ++ version 1.2.7 (not yet released) ++================================= + * fix for issue #624 (error in conversion to masked array when variableslice + returns a scalar). + +diff --git a/netCDF4/_netCDF4.c b/netCDF4/_netCDF4.c +index c9fbc65..128cfc2 100644 +--- a/netCDF4/_netCDF4.c ++++ b/netCDF4/_netCDF4.c +@@ -1792,7 +1792,7 @@ static const char __pyx_k_vlen[] = "vlen"; + static const char __pyx_k_warn[] = "warn"; + static const char __pyx_k_year[] = "year"; + static const char __pyx_k_zlib[] = "zlib"; +-static const char __pyx_k_1_2_6[] = "1.2.6"; ++static const char __pyx_k_1_2_7[] = "1.2.7"; + static const char __pyx_k_4_2_1[] = "4.2.1"; + static const char __pyx_k_4_4_0[] = "4.4.0"; + static const char __pyx_k_4_4_1[] = "4.4.1"; +@@ -2244,7 +2244,7 @@ static const char __pyx_k_Class_providing_an_interface_to[] = "\nClass providing + static const char __pyx_k_FillValue_attribute_must_be_set[] = "_FillValue attribute must be set when variable is "; + static const char __pyx_k_The_vltypes_dictionary_maps_the[] = "The `vltypes` dictionary maps the names of\n variable-length types defined for the `netCDF4.Group` or `netCDF4.Dataset` to instances of the\n `netCDF4.VLType` class."; + static const char __pyx_k_Variable_object_no_longer_valid[] = "Variable object no longer valid"; +-static const char __pyx_k_Version_1_2_6_Introduction_netc[] = "\nVersion 1.2.6\n-------------\n- - - \n\nIntroduction\n============\n\nnetcdf4-python is a Python interface to the netCDF C library. \n\n[netCDF](http://www.unidata.ucar.edu/software/netcdf/) version 4 has many features\nnot found in earlier versions of the library and is implemented on top of\n[HDF5](http://www.hdfgroup.org/HDF5). This module can read and write\nfiles in both the new netCDF 4 and the old netCDF 3 format, and can create\nfiles that are readable by HDF5 clients. The API modelled after\n[Scientific.IO.NetCDF](http://dirac.cnrs-orleans.fr/ScientificPython/),\nand should be familiar to users of that module.\n\nMost new features of netCDF 4 are implemented, such as multiple\nunlimited dimensions, groups and zlib data compression. All the new\nnumeric data types (such as 64 bit and unsigned integer types) are\nimplemented. Compound (struct), variable length (vlen) and\nenumerated (enum) data types are supported, but not the opaque data type.\nMixtures of compound, vlen and enum data types (such as\ncompound types containing enums, or vlens containing compound\ntypes) are not supported.\n\nDownload\n========\n\n - Latest bleeding-edge code from the \n [github repository](http://github.com/Unidata/netcdf4-python).\n - Latest [releases](https://pypi.python.org/pypi/netCDF4)\n (source code and windows installers).\n\nRequires\n========\n\n - Python 2.7 or later (python 3 works too).\n - [numpy array module](http://numpy.scipy.org), version 1.7.0 or later.\n - [Cython](http://cython.org), version 0.19 or later, is optional - if it is installed setup.py will\n use it to recompile the Cython source code into C, using conditional compilation\n to enable features in the netCDF API that have been added since version 4.1.1. If\n Cython is not installed, these features (such as the ability to rename Group objects)\n will be disabled to preserve backward compatibility with older versions of the netCDF\n library.\n - The HDF5 C library version 1.8.4-p""atch1 or higher (1.8.x recommended)\n from [](ftp://ftp.hdfgroup.org/HDF5/current/src).\n ***netCDF version 4.4.1 or higher is recommended if using HDF5 1.10.x -\n otherwise resulting files may be unreadable by clients using earlier\n versions of HDF5. For netCDF < 4.4.1, HDF5 version 1.8.x is recommended.***\n Be sure to build with `--enable-hl --enable-shared`.\n - [Libcurl](http://curl.haxx.se/libcurl), if you want\n [OPeNDAP](http://opendap.org) support.\n - [HDF4](http://www.hdfgroup.org/products/hdf4), if you want\n to be able to read HDF4 \"Scientific Dataset\" (SD) files.\n - The netCDF-4 C library from the [github releases\n page](https://github.com/Unidata/netcdf-c/releases). \n Version 4.1.1 or higher is required (4.2 or higher recommended).\n Be sure to build with `--enable-netcdf-4 --enable-shared`, and set\n `CPPFLAGS=\"-I $HDF5_DIR/include\"` and `LDFLAGS=\"-L $HDF5_DIR/lib\"`,\n where `$HDF5_DIR` is the directory where HDF5 was installed.\n If you want [OPeNDAP](http://opendap.org) support, add `--enable-dap`.\n If you want HDF4 SD support, add `--enable-hdf4` and add\n the location of the HDF4 headers and library to `$CPPFLAGS` and `$LDFLAGS`.\n\n\nInstall\n=======\n\n - install the requisite python modules and C libraries (see above). It's\n easiest if all the C libs are built as shared libraries.\n - By default, the utility `nc-config`, installed with netcdf 4.1.2 or higher,\n will be run used to determine where all the dependencies live.\n - If `nc-config` is not in your default `$PATH`, rename the\n file `setup.cfg.template` to `setup.cfg`, then edit\n in a text editor (follow the instructions in the comments).\n In addition to specifying the path to `nc-config`,\n you can manually set the paths to all the libraries and their include files\n (in case `nc-config` does not do the right thing).\n - run `python setup.py build`, then `python setup.py install` (as root if\n necessary).\n - [`pip install`](https://pip.pypa.io/en/latest/reference/pip""_install.html) can\n also be used, with library paths set with environment variables. To make\n this work, the `USE_SETUPCFG` environment variable must be used to tell \n setup.py not to use `setup.cfg`.\n For example, `USE_SETUPCFG=0 HDF5_INCDIR=/usr/include/hdf5/serial\n HDF5_LIBDIR=/usr/lib/x86_64-linux-gnu/hdf5/serial pip install` has been\n shown to work on an Ubuntu/Debian linux system. Similarly, environment variables\n (all capitalized) can be used to set the include and library paths for\n `hdf5`, `netCDF4`, `hdf4`, `szip`, `jpeg`, `curl` and `zlib`. If the\n libraries are installed in standard places (e.g. `/usr` or `/usr/local`), \n the environment variables do not need to be set.\n - run the tests in the 'test' directory by running `python run_all.py`.\n\nTutorial\n========\n\n1. [Creating/Opening/Closing a netCDF file.](#section1)\n2. [Groups in a netCDF file.](#section2)\n3. [Dimensions in a netCDF file.](#section3)\n4. [Variables in a netCDF file.](#section4)\n5. [Attributes in a netCDF file.](#section5)\n6. [Writing data to and retrieving data from a netCDF variable.](#section6)\n7. [Dealing with time coordinates.](#section7)\n8. [Reading data from a multi-file netCDF dataset.](#section8)\n9. [Efficient compression of netCDF variables.](#section9)\n10. [Beyond homogeneous arrays of a fixed type - compound data types.](#section10)\n11. [Variable-length (vlen) data types.](#section11)\n12. [Enum data type.](#section12)\n\n\n##
1) Creating/Opening/Closing a netCDF file.\n\nTo create a netCDF file from python, you simply call the `netCDF4.Dataset`\nconstructor. This is also the method used to open an existing netCDF\nfile. If the file is open for write access (`mode='w', 'r+'` or `'a'`), you may\nwrite any type of data including new dimensions, groups, variables and\nattributes. netCDF files come in five flavors (`NETCDF3_CLASSIC,\nNETCDF3_64BIT_OFFSET, NETCDF3_64BIT_DATA, NETCDF4_CLASSIC`, and `NETCDF4`). \n`NETC""DF3_CLASSIC` was the original netcdf binary format, and was limited \nto file sizes less than 2 Gb. `NETCDF3_64BIT_OFFSET` was introduced\nin version 3.6.0 of the library, and extended the original binary format\nto allow for file sizes greater than 2 Gb. \n`NETCDF3_64BIT_DATA` is a new format that requires version 4.4.0 of\nthe C library - it extends the `NETCDF3_64BIT_OFFSET` binary format to\nallow for unsigned/64 bit integer data types and 64-bit dimension sizes.\n`NETCDF3_64BIT` is an alias for `NETCDF3_64BIT_OFFSET`.\n`NETCDF4_CLASSIC` files use the version 4 disk format (HDF5), but omits features\nnot found in the version 3 API. They can be read by netCDF 3 clients\nonly if they have been relinked against the netCDF 4 library. They can\nalso be read by HDF5 clients. `NETCDF4` files use the version 4 disk\nformat (HDF5) and use the new features of the version 4 API. The\n`netCDF4` module can read and write files in any of these formats. When\ncreating a new file, the format may be specified using the `format`\nkeyword in the `Dataset` constructor. The default format is\n`NETCDF4`. To see how a given file is formatted, you can examine the\n`data_model` attribute. Closing the netCDF file is\naccomplished via the `netCDF4.Dataset.close` method of the `netCDF4.Dataset`\ninstance.\n\nHere's an example:\n\n :::python\n >>> from netCDF4 import Dataset\n >>> rootgrp = Dataset(\"test.nc\", \"w\", format=\"NETCDF4\")\n >>> print rootgrp.data_model\n NETCDF4\n >>> rootgrp.close()\n\nRemote [OPeNDAP](http://opendap.org)-hosted datasets can be accessed for\nreading over http if a URL is provided to the `netCDF4.Dataset` constructor instead of a\nfilename. However, this requires that the netCDF library be built with\nOPenDAP support, via the `--enable-dap` configure option (added in\nversion 4.0.1).\n\n\n##
2) Groups in a netCDF file.\n\nnetCDF version 4 added support for organizing data in hierarchical\ngroups, which are analogous t""o directories in a filesystem. Groups serve\nas containers for variables, dimensions and attributes, as well as other\ngroups. A `netCDF4.Dataset` creates a special group, called\nthe 'root group', which is similar to the root directory in a unix\nfilesystem. To create `netCDF4.Group` instances, use the\n`netCDF4.Dataset.createGroup` method of a `netCDF4.Dataset` or `netCDF4.Group`\ninstance. `netCDF4.Dataset.createGroup` takes a single argument, a\npython string containing the name of the new group. The new `netCDF4.Group`\ninstances contained within the root group can be accessed by name using\nthe `groups` dictionary attribute of the `netCDF4.Dataset` instance. Only\n`NETCDF4` formatted files support Groups, if you try to create a Group\nin a netCDF 3 file you will get an error message.\n\n :::python\n >>> rootgrp = Dataset(\"test.nc\", \"a\")\n >>> fcstgrp = rootgrp.createGroup(\"forecasts\")\n >>> analgrp = rootgrp.createGroup(\"analyses\")\n >>> print rootgrp.groups\n OrderedDict([(\"forecasts\", \n ),\n (\"analyses\", \n )])\n\nGroups can exist within groups in a `netCDF4.Dataset`, just as directories\nexist within directories in a unix filesystem. Each `netCDF4.Group` instance\nhas a `groups` attribute dictionary containing all of the group\ninstances contained within that group. Each `netCDF4.Group` instance also has a\n`path` attribute that contains a simulated unix directory path to\nthat group. To simplify the creation of nested groups, you can\nuse a unix-like path as an argument to `netCDF4.Dataset.createGroup`.\n\n :::python\n >>> fcstgrp1 = rootgrp.createGroup(\"/forecasts/model1\")\n >>> fcstgrp2 = rootgrp.createGroup(\"/forecasts/model2\")\n\nIf any of the intermediate elements of the path do not exist, they are created,\njust as with the unix command `'mkdir -p'`. If you try to cre""ate a group\nthat already exists, no error will be raised, and the existing group will be \nreturned.\n\nHere's an example that shows how to navigate all the groups in a\n`netCDF4.Dataset`. The function `walktree` is a Python generator that is used\nto walk the directory tree. Note that printing the `netCDF4.Dataset` or `netCDF4.Group`\nobject yields summary information about it's contents.\n\n :::python\n >>> def walktree(top):\n >>> values = top.groups.values()\n >>> yield values\n >>> for value in top.groups.values():\n >>> for children in walktree(value):\n >>> yield children\n >>> print rootgrp\n >>> for children in walktree(rootgrp):\n >>> for child in children:\n >>> print child\n \n root group (NETCDF4 file format):\n dimensions:\n variables:\n groups: forecasts, analyses\n \n group /forecasts:\n dimensions:\n variables:\n groups: model1, model2\n \n group /analyses:\n dimensions:\n variables:\n groups:\n \n group /forecasts/model1:\n dimensions:\n variables:\n groups:\n \n group /forecasts/model2:\n dimensions:\n variables:\n groups:\n\n##
3) Dimensions in a netCDF file.\n\nnetCDF defines the sizes of all variables in terms of dimensions, so\nbefore any variables can be created the dimensions they use must be\ncreated first. A special case, not often used in practice, is that of a\nscalar variable, which has no dimensions. A dimension is created using\nthe `netCDF4.Dataset.createDimension` method of a `netCDF4.Dataset`\nor `netCDF4.Group` instance. A Python string is used to set the name of the\ndimension, and an integer value is used to set the size. To create an""\nunlimited dimension (a dimension that can be appended to), the size\nvalue is set to `None` or 0. In this example, there both the `time` and\n`level` dimensions are unlimited. Having more than one unlimited\ndimension is a new netCDF 4 feature, in netCDF 3 files there may be only\none, and it must be the first (leftmost) dimension of the variable.\n\n :::python\n >>> level = rootgrp.createDimension(\"level\", None)\n >>> time = rootgrp.createDimension(\"time\", None)\n >>> lat = rootgrp.createDimension(\"lat\", 73)\n >>> lon = rootgrp.createDimension(\"lon\", 144)\n\n\nAll of the `netCDF4.Dimension` instances are stored in a python dictionary.\n\n :::python\n >>> print rootgrp.dimensions\n OrderedDict([(\"level\", ),\n (\"time\", ),\n (\"lat\", ),\n (\"lon\", )])\n\nCalling the python `len` function with a `netCDF4.Dimension` instance returns\nthe current size of that dimension.\nThe `netCDF4.Dimension.isunlimited` method of a `netCDF4.Dimension` instance\ncan be used to determine if the dimensions is unlimited, or appendable.\n\n :::python\n >>> print len(lon)\n 144\n >>> print lon.isunlimited()\n False\n >>> print time.isunlimited()\n True\n\nPrinting the `netCDF4.Dimension` object\nprovides useful summary info, including the name and length of the dimension,\nand whether it is unlimited.\n\n :::python\n >>> for dimobj in rootgrp.dimensions.values():\n >>> print dimobj\n (unlimited): name = \"level\", size = 0\n (unlimited): name = \"time\", size = 0\n : name = \"lat\", size = 73\n : name = \"lon\", size = 144""\n (unlimited): name = \"time\", size = 0\n\n`netCDF4.Dimension` names can be changed using the\n`netCDF4.Datatset.renameDimension` method of a `netCDF4.Dataset` or\n`netCDF4.Group` instance.\n\n##
4) Variables in a netCDF file.\n\nnetCDF variables behave much like python multidimensional array objects\nsupplied by the [numpy module](http://numpy.scipy.org). However,\nunlike numpy arrays, netCDF4 variables can be appended to along one or\nmore 'unlimited' dimensions. To create a netCDF variable, use the\n`netCDF4.Dataset.createVariable` method of a `netCDF4.Dataset` or\n`netCDF4.Group` instance. The `netCDF4.Dataset.createVariable` method\nhas two mandatory arguments, the variable name (a Python string), and\nthe variable datatype. The variable's dimensions are given by a tuple\ncontaining the dimension names (defined previously with\n`netCDF4.Dataset.createDimension`). To create a scalar\nvariable, simply leave out the dimensions keyword. The variable\nprimitive datatypes correspond to the dtype attribute of a numpy array.\nYou can specify the datatype as a numpy dtype object, or anything that\ncan be converted to a numpy dtype object. Valid datatype specifiers\ninclude: `'f4'` (32-bit floating point), `'f8'` (64-bit floating\npoint), `'i4'` (32-bit signed integer), `'i2'` (16-bit signed\ninteger), `'i8'` (64-bit signed integer), `'i1'` (8-bit signed\ninteger), `'u1'` (8-bit unsigned integer), `'u2'` (16-bit unsigned\ninteger), `'u4'` (32-bit unsigned integer), `'u8'` (64-bit unsigned\ninteger), or `'S1'` (single-character string). The old Numeric\nsingle-character typecodes (`'f'`,`'d'`,`'h'`,\n`'s'`,`'b'`,`'B'`,`'c'`,`'i'`,`'l'`), corresponding to\n(`'f4'`,`'f8'`,`'i2'`,`'i2'`,`'i1'`,`'i1'`,`'S1'`,`'i4'`,`'i4'`),\nwill also work. The unsigned integer types and the 64-bit integer type\ncan only be used if the file format is `NETCDF4`.\n\nThe dimensions themselves are usually also defined as variables, c""alled\ncoordinate variables. The `netCDF4.Dataset.createVariable`\nmethod returns an instance of the `netCDF4.Variable` class whose methods can be\nused later to access and set variable data and attributes.\n\n :::python\n >>> times = rootgrp.createVariable(\"time\",\"f8\",(\"time\",))\n >>> levels = rootgrp.createVariable(\"level\",\"i4\",(\"level\",))\n >>> latitudes = rootgrp.createVariable(\"latitude\",\"f4\",(\"lat\",))\n >>> longitudes = rootgrp.createVariable(\"longitude\",\"f4\",(\"lon\",))\n >>> # two dimensions unlimited\n >>> temp = rootgrp.createVariable(\"temp\",\"f4\",(\"time\",\"level\",\"lat\",\"lon\",))\n\nTo get summary info on a `netCDF4.Variable` instance in an interactive session, just print it.\n\n :::python\n >>> print temp\n \n float32 temp(time, level, lat, lon)\n least_significant_digit: 3\n units: K\n unlimited dimensions: time, level\n current shape = (0, 0, 73, 144)\n\nYou can use a path to create a Variable inside a hierarchy of groups.\n\n :::python\n >>> ftemp = rootgrp.createVariable(\"/forecasts/model1/temp\",\"f4\",(\"time\",\"level\",\"lat\",\"lon\",))\n\nIf the intermediate groups do not yet exist, they will be created.\n\nYou can also query a `netCDF4.Dataset` or `netCDF4.Group` instance directly to obtain `netCDF4.Group` or \n`netCDF4.Variable` instances using paths.\n\n :::python\n >>> print rootgrp[\"/forecasts/model1\"] # a Group instance\n \n group /forecasts/model1:\n dimensions(sizes):\n variables(dimensions): float32 temp(time,level,lat,lon)\n groups:\n >>> print rootgrp[\"/forecasts/model1/temp\"] # a Variable instance\n \n float32 temp(time, level, lat, lon)\n path = /forecasts/model1\n unlimited dimensions: time, level\n current shape = (0, 0, 73, 144)\n filling on, default _FillValue of 9.96920996839e+3""6 used\n\nAll of the variables in the `netCDF4.Dataset` or `netCDF4.Group` are stored in a\nPython dictionary, in the same way as the dimensions:\n\n :::python\n >>> print rootgrp.variables\n OrderedDict([(\"time\", ),\n (\"level\", ),\n (\"latitude\", ),\n (\"longitude\", ),\n (\"temp\", )])\n\n`netCDF4.Variable` names can be changed using the\n`netCDF4.Dataset.renameVariable` method of a `netCDF4.Dataset`\ninstance.\n\n\n##
5) Attributes in a netCDF file.\n\nThere are two types of attributes in a netCDF file, global and variable.\nGlobal attributes provide information about a group, or the entire\ndataset, as a whole. `netCDF4.Variable` attributes provide information about\none of the variables in a group. Global attributes are set by assigning\nvalues to `netCDF4.Dataset` or `netCDF4.Group` instance variables. `netCDF4.Variable`\nattributes are set by assigning values to `netCDF4.Variable` instances\nvariables. Attributes can be strings, numbers or sequences. Returning to\nour example,\n\n :::python\n >>> import time\n >>> rootgrp.description = \"bogus example script\"\n >>> rootgrp.history = \"Created \" + time.ctime(time.time())\n >>> rootgrp.source = \"netCDF4 python module tutorial\"\n >>> latitudes.units = \"degrees north\"\n >>> longitudes.units = \"degrees east\"\n >>> levels.units = \"hPa\"\n >>> temp.units = \"K\"\n >>> times.units = \"hours since 0001-01-01 00:00:00.0\"\n >>> times.calendar = \"gregorian\"\n\nThe `netCDF4.Dataset.ncattrs` method of a `netCDF4.Dataset`, `netCDF4.Group` or\n`netCDF4.Variable` instance can be used to retrieve the names of all the netCDF\nattributes. This method is provided as a convenience, since using the\nbuilt-""in `dir` Python function will return a bunch of private methods\nand attributes that cannot (or should not) be modified by the user.\n\n :::python\n >>> for name in rootgrp.ncattrs():\n >>> print \"Global attr\", name, \"=\", getattr(rootgrp,name)\n Global attr description = bogus example script\n Global attr history = Created Mon Nov 7 10.30:56 2005\n Global attr source = netCDF4 python module tutorial\n\nThe `__dict__` attribute of a `netCDF4.Dataset`, `netCDF4.Group` or `netCDF4.Variable`\ninstance provides all the netCDF attribute name/value pairs in a python\ndictionary:\n\n :::python\n >>> print rootgrp.__dict__\n OrderedDict([(u\"description\", u\"bogus example script\"),\n (u\"history\", u\"Created Thu Mar 3 19:30:33 2011\"),\n (u\"source\", u\"netCDF4 python module tutorial\")])\n\nAttributes can be deleted from a netCDF `netCDF4.Dataset`, `netCDF4.Group` or\n`netCDF4.Variable` using the python `del` statement (i.e. `del grp.foo`\nremoves the attribute `foo` the the group `grp`).\n\n##
6) Writing data to and retrieving data from a netCDF variable.\n\nNow that you have a netCDF `netCDF4.Variable` instance, how do you put data\ninto it? You can just treat it like an array and assign data to a slice.\n\n :::python\n >>> import numpy\n >>> lats = numpy.arange(-90,91,2.5)\n >>> lons = numpy.arange(-180,180,2.5)\n >>> latitudes[:] = lats\n >>> longitudes[:] = lons\n >>> print \"latitudes =\\n\",latitudes[:]\n latitudes =\n [-90. -87.5 -85. -82.5 -80. -77.5 -75. -72.5 -70. -67.5 -65. -62.5\n -60. -57.5 -55. -52.5 -50. -47.5 -45. -42.5 -40. -37.5 -35. -32.5\n -30. -27.5 -25. -22.5 -20. -17.5 -15. -12.5 -10. -7.5 -5. -2.5\n 0. 2.5 5. 7.5 10. 12.5 15. 17.5 20. 22.5 25. 27.5\n 30. 32.5 35. 37.5 40. 42.5 45. 47.5 50. 52.5 55. 57.5\n 60. 62.5 65. 67.5 70. 72.5 75. 77.""5 80. 82.5 85. 87.5\n 90. ]\n\nUnlike NumPy's array objects, netCDF `netCDF4.Variable`\nobjects with unlimited dimensions will grow along those dimensions if you\nassign data outside the currently defined range of indices.\n\n :::python\n >>> # append along two unlimited dimensions by assigning to slice.\n >>> nlats = len(rootgrp.dimensions[\"lat\"])\n >>> nlons = len(rootgrp.dimensions[\"lon\"])\n >>> print \"temp shape before adding data = \",temp.shape\n temp shape before adding data = (0, 0, 73, 144)\n >>>\n >>> from numpy.random import uniform\n >>> temp[0:5,0:10,:,:] = uniform(size=(5,10,nlats,nlons))\n >>> print \"temp shape after adding data = \",temp.shape\n temp shape after adding data = (6, 10, 73, 144)\n >>>\n >>> # levels have grown, but no values yet assigned.\n >>> print \"levels shape after adding pressure data = \",levels.shape\n levels shape after adding pressure data = (10,)\n\nNote that the size of the levels variable grows when data is appended\nalong the `level` dimension of the variable `temp`, even though no\ndata has yet been assigned to levels.\n\n :::python\n >>> # now, assign data to levels dimension variable.\n >>> levels[:] = [1000.,850.,700.,500.,300.,250.,200.,150.,100.,50.]\n\nHowever, that there are some differences between NumPy and netCDF\nvariable slicing rules. Slices behave as usual, being specified as a\n`start:stop:step` triplet. Using a scalar integer index `i` takes the ith\nelement and reduces the rank of the output array by one. Boolean array and\ninteger sequence indexing behaves differently for netCDF variables\nthan for numpy arrays. Only 1-d boolean arrays and integer sequences are\nallowed, and these indices work independently along each dimension (similar\nto the way vector subscripts work in fortran). This means that\n\n :::python\n >>> temp[0, 0, [0,1,2,3], [0,1,2,3]]\n\nreturns an array of shape (4,4) when slicing a netCDF variable, but ""for a\nnumpy array it returns an array of shape (4,).\nSimilarly, a netCDF variable of shape `(2,3,4,5)` indexed\nwith `[0, array([True, False, True]), array([False, True, True, True]), :]`\nwould return a `(2, 3, 5)` array. In NumPy, this would raise an error since\nit would be equivalent to `[0, [0,1], [1,2,3], :]`. When slicing with integer\nsequences, the indices ***need not be sorted*** and ***may contain\nduplicates*** (both of these are new features in version 1.2.1).\nWhile this behaviour may cause some confusion for those used to NumPy's 'fancy indexing' rules,\nit provides a very powerful way to extract data from multidimensional netCDF\nvariables by using logical operations on the dimension arrays to create slices.\n\nFor example,\n\n :::python\n >>> tempdat = temp[::2, [1,3,6], lats>0, lons>0]\n\nwill extract time indices 0,2 and 4, pressure levels\n850, 500 and 200 hPa, all Northern Hemisphere latitudes and Eastern\nHemisphere longitudes, resulting in a numpy array of shape (3, 3, 36, 71).\n\n :::python\n >>> print \"shape of fancy temp slice = \",tempdat.shape\n shape of fancy temp slice = (3, 3, 36, 71)\n\n***Special note for scalar variables***: To extract data from a scalar variable\n`v` with no associated dimensions, use `np.asarray(v)` or `v[...]`. The result\nwill be a numpy scalar array.\n\n##
7) Dealing with time coordinates.\n\nTime coordinate values pose a special challenge to netCDF users. Most\nmetadata standards (such as CF) specify that time should be\nmeasure relative to a fixed date using a certain calendar, with units\nspecified like `hours since YY:MM:DD hh-mm-ss`. These units can be\nawkward to deal with, without a utility to convert the values to and\nfrom calendar dates. The function called `netCDF4.num2date` and `netCDF4.date2num` are\nprovided with this package to do just that. Here's an example of how they\ncan be used:\n\n :::python\n >>> # fill in times.\n >>> from datetime impo""rt datetime, timedelta\n >>> from netCDF4 import num2date, date2num\n >>> dates = [datetime(2001,3,1)+n*timedelta(hours=12) for n in range(temp.shape[0])]\n >>> times[:] = date2num(dates,units=times.units,calendar=times.calendar)\n >>> print \"time values (in units %s): \" % times.units+\"\\n\",times[:]\n time values (in units hours since January 1, 0001):\n [ 17533056. 17533068. 17533080. 17533092. 17533104.]\n >>> dates = num2date(times[:],units=times.units,calendar=times.calendar)\n >>> print \"dates corresponding to time values:\\n\",dates\n dates corresponding to time values:\n [2001-03-01 00:00:00 2001-03-01 12:00:00 2001-03-02 00:00:00\n 2001-03-02 12:00:00 2001-03-03 00:00:00]\n\n`netCDF4.num2date` converts numeric values of time in the specified `units`\nand `calendar` to datetime objects, and `netCDF4.date2num` does the reverse.\nAll the calendars currently defined in the\n[CF metadata convention](http://cfconventions.org) are supported.\nA function called `netCDF4.date2index` is also provided which returns the indices\nof a netCDF time variable corresponding to a sequence of datetime instances.\n\n\n##
8) Reading data from a multi-file netCDF dataset.\n\nIf you want to read data from a variable that spans multiple netCDF files,\nyou can use the `netCDF4.MFDataset` class to read the data as if it were\ncontained in a single file. Instead of using a single filename to create\na `netCDF4.Dataset` instance, create a `netCDF4.MFDataset` instance with either a list\nof filenames, or a string with a wildcard (which is then converted to\na sorted list of files using the python glob module).\nVariables in the list of files that share the same unlimited\ndimension are aggregated together, and can be sliced across multiple\nfiles. To illustrate this, let's first create a bunch of netCDF files with\nthe same variable (with the same unlimited dimension). The files\nmust in be in `NETCDF3_64BIT_OFFSET`, `NETCDF""3_64BIT_DATA`, `NETCDF3_CLASSIC` or\n`NETCDF4_CLASSIC` format (`NETCDF4` formatted multi-file\ndatasets are not supported).\n\n :::python\n >>> for nf in range(10):\n >>> f = Dataset(\"mftest%s.nc\" % nf,\"w\")\n >>> f.createDimension(\"x\",None)\n >>> x = f.createVariable(\"x\",\"i\",(\"x\",))\n >>> x[0:10] = numpy.arange(nf*10,10*(nf+1))\n >>> f.close()\n\nNow read all the files back in at once with `netCDF4.MFDataset`\n\n :::python\n >>> from netCDF4 import MFDataset\n >>> f = MFDataset(\"mftest*nc\")\n >>> print f.variables[\"x\"][:]\n [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24\n 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49\n 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74\n 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99]\n\nNote that `netCDF4.MFDataset` can only be used to read, not write, multi-file\ndatasets.\n\n##
9) Efficient compression of netCDF variables.\n\nData stored in netCDF 4 `netCDF4.Variable` objects can be compressed and\ndecompressed on the fly. The parameters for the compression are\ndetermined by the `zlib`, `complevel` and `shuffle` keyword arguments\nto the `netCDF4.Dataset.createVariable` method. To turn on\ncompression, set `zlib=True`. The `complevel` keyword regulates the\nspeed and efficiency of the compression (1 being fastest, but lowest\ncompression ratio, 9 being slowest but best compression ratio). The\ndefault value of `complevel` is 4. Setting `shuffle=False` will turn\noff the HDF5 shuffle filter, which de-interlaces a block of data before\ncompression by reordering the bytes. The shuffle filter can\nsignificantly improve compression ratios, and is on by default. Setting\n`fletcher32` keyword argument to\n`netCDF4.Dataset.createVariable` to `True` (it's `False` by\ndefault) enables the Fletcher32 checksum algorithm for erro""r detection.\nIt's also possible to set the HDF5 chunking parameters and endian-ness\nof the binary data stored in the HDF5 file with the `chunksizes`\nand `endian` keyword arguments to\n`netCDF4.Dataset.createVariable`. These keyword arguments only\nare relevant for `NETCDF4` and `NETCDF4_CLASSIC` files (where the\nunderlying file format is HDF5) and are silently ignored if the file\nformat is `NETCDF3_CLASSIC`, `NETCDF3_64BIT_OFFSET` or `NETCDF3_64BIT_DATA`.\n\nIf your data only has a certain number of digits of precision (say for\nexample, it is temperature data that was measured with a precision of\n0.1 degrees), you can dramatically improve zlib compression by\nquantizing (or truncating) the data using the `least_significant_digit`\nkeyword argument to `netCDF4.Dataset.createVariable`. The least\nsignificant digit is the power of ten of the smallest decimal place in\nthe data that is a reliable value. For example if the data has a\nprecision of 0.1, then setting `least_significant_digit=1` will cause\ndata the data to be quantized using `numpy.around(scale*data)/scale`, where\nscale = 2**bits, and bits is determined so that a precision of 0.1 is\nretained (in this case bits=4). Effectively, this makes the compression\n'lossy' instead of 'lossless', that is some precision in the data is\nsacrificed for the sake of disk space.\n\nIn our example, try replacing the line\n\n :::python\n >>> temp = rootgrp.createVariable(\"temp\",\"f4\",(\"time\",\"level\",\"lat\",\"lon\",))\n\nwith\n\n :::python\n >>> temp = dataset.createVariable(\"temp\",\"f4\",(\"time\",\"level\",\"lat\",\"lon\",),zlib=True)\n\nand then\n\n :::python\n >>> temp = dataset.createVariable(\"temp\",\"f4\",(\"time\",\"level\",\"lat\",\"lon\",),zlib=True,least_significant_digit=3)\n\nand see how much smaller the resulting files are.\n\n##
10) Beyond homogeneous arrays of a fixed type - compound data types.\n\nCompound data types map directly to numpy structured (""a.k.a 'record')\narrays. Structured arrays are akin to C structs, or derived types\nin Fortran. They allow for the construction of table-like structures\ncomposed of combinations of other data types, including other\ncompound types. Compound types might be useful for representing multiple\nparameter values at each point on a grid, or at each time and space\nlocation for scattered (point) data. You can then access all the\ninformation for a point by reading one variable, instead of reading\ndifferent parameters from different variables. Compound data types\nare created from the corresponding numpy data type using the\n`netCDF4.Dataset.createCompoundType` method of a `netCDF4.Dataset` or `netCDF4.Group` instance.\nSince there is no native complex data type in netcdf, compound types are handy\nfor storing numpy complex arrays. Here's an example:\n\n :::python\n >>> f = Dataset(\"complex.nc\",\"w\")\n >>> size = 3 # length of 1-d complex array\n >>> # create sample complex data.\n >>> datac = numpy.exp(1j*(1.+numpy.linspace(0, numpy.pi, size)))\n >>> # create complex128 compound data type.\n >>> complex128 = numpy.dtype([(\"real\",numpy.float64),(\"imag\",numpy.float64)])\n >>> complex128_t = f.createCompoundType(complex128,\"complex128\")\n >>> # create a variable with this data type, write some data to it.\n >>> f.createDimension(\"x_dim\",None)\n >>> v = f.createVariable(\"cmplx_var\",complex128_t,\"x_dim\")\n >>> data = numpy.empty(size,complex128) # numpy structured array\n >>> data[\"real\"] = datac.real; data[\"imag\"] = datac.imag\n >>> v[:] = data # write numpy structured array to netcdf compound var\n >>> # close and reopen the file, check the contents.\n >>> f.close(); f = Dataset(\"complex.nc\")\n >>> v = f.variables[\"cmplx_var\"]\n >>> datain = v[:] # read in all the data into a numpy structured array\n >>> # create an empty numpy complex array\n >>> datac2 = numpy.empty(datain.shape,numpy.comp""lex128)\n >>> # .. fill it with contents of structured array.\n >>> datac2.real = datain[\"real\"]; datac2.imag = datain[\"imag\"]\n >>> print datac.dtype,datac # original data\n complex128 [ 0.54030231+0.84147098j -0.84147098+0.54030231j -0.54030231-0.84147098j]\n >>>\n >>> print datac2.dtype,datac2 # data from file\n complex128 [ 0.54030231+0.84147098j -0.84147098+0.54030231j -0.54030231-0.84147098j]\n\nCompound types can be nested, but you must create the 'inner'\nones first. All of the compound types defined for a `netCDF4.Dataset` or `netCDF4.Group` are stored in a\nPython dictionary, just like variables and dimensions. As always, printing\nobjects gives useful summary information in an interactive session:\n\n :::python\n >>> print f\n \n root group (NETCDF4 file format):\n dimensions: x_dim\n variables: cmplx_var\n groups:\n \n >>> print f.variables[\"cmplx_var\"]\n compound cmplx_var(x_dim)\n compound data type: [(\"real\", \">> print f.cmptypes\n OrderedDict([(\"complex128\", )])\n >>> print f.cmptypes[\"complex128\"]\n : name = \"complex128\", numpy dtype = [(u\"real\",\"11) Variable-length (vlen) data types.\n\nNetCDF 4 has support for variable-length or \"ragged\" arrays. These are arrays\nof variable length sequences having the same type. To create a variable-length\ndata type, use the `netCDF4.Dataset.createVLType` method\nmethod of a `netCDF4.Dataset` or `netCDF4.Group` instance.\n\n :::python\n >>> f = Dataset(\"tst_vlen.nc\",\"w\")\n >>> vlen_t = f.createVLType(numpy.int32, \"phony_vlen\")\n\nThe numpy datatype of the variable-length sequences and the name of the""\nnew datatype must be specified. Any of the primitive datatypes can be\nused (signed and unsigned integers, 32 and 64 bit floats, and characters),\nbut compound data types cannot.\nA new variable can then be created using this datatype.\n\n :::python\n >>> x = f.createDimension(\"x\",3)\n >>> y = f.createDimension(\"y\",4)\n >>> vlvar = f.createVariable(\"phony_vlen_var\", vlen_t, (\"y\",\"x\"))\n\nSince there is no native vlen datatype in numpy, vlen arrays are represented\nin python as object arrays (arrays of dtype `object`). These are arrays whose\nelements are Python object pointers, and can contain any type of python object.\nFor this application, they must contain 1-D numpy arrays all of the same type\nbut of varying length.\nIn this case, they contain 1-D numpy `int32` arrays of random length between\n1 and 10.\n\n :::python\n >>> import random\n >>> data = numpy.empty(len(y)*len(x),object)\n >>> for n in range(len(y)*len(x)):\n >>> data[n] = numpy.arange(random.randint(1,10),dtype=\"int32\")+1\n >>> data = numpy.reshape(data,(len(y),len(x)))\n >>> vlvar[:] = data\n >>> print \"vlen variable =\\n\",vlvar[:]\n vlen variable =\n [[[ 1 2 3 4 5 6 7 8 9 10] [1 2 3 4 5] [1 2 3 4 5 6 7 8]]\n [[1 2 3 4 5 6 7] [1 2 3 4 5 6] [1 2 3 4 5]]\n [[1 2 3 4 5] [1 2 3 4] [1]]\n [[ 1 2 3 4 5 6 7 8 9 10] [ 1 2 3 4 5 6 7 8 9 10]\n [1 2 3 4 5 6 7 8]]]\n >>> print f\n \n root group (NETCDF4 file format):\n dimensions: x, y\n variables: phony_vlen_var\n groups:\n >>> print f.variables[\"phony_vlen_var\"]\n \n vlen phony_vlen_var(y, x)\n vlen data type: int32\n unlimited dimensions:\n current shape = (4, 3)\n >>> print f.VLtypes[\"phony_vlen\"]\n : name = \"phony_vlen\", numpy dtype = int32\n\nNumpy object arrays containing python strings can"" also be written as vlen\nvariables, For vlen strings, you don't need to create a vlen data type.\nInstead, simply use the python `str` builtin (or a numpy string datatype\nwith fixed length greater than 1) when calling the\n`netCDF4.Dataset.createVariable` method.\n\n :::python\n >>> z = f.createDimension(\"z\",10)\n >>> strvar = rootgrp.createVariable(\"strvar\", str, \"z\")\n\nIn this example, an object array is filled with random python strings with\nrandom lengths between 2 and 12 characters, and the data in the object\narray is assigned to the vlen string variable.\n\n :::python\n >>> chars = \"1234567890aabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\"\n >>> data = numpy.empty(10,\"O\")\n >>> for n in range(10):\n >>> stringlen = random.randint(2,12)\n >>> data[n] = \"\".join([random.choice(chars) for i in range(stringlen)])\n >>> strvar[:] = data\n >>> print \"variable-length string variable:\\n\",strvar[:]\n variable-length string variable:\n [aDy29jPt 5DS9X8 jd7aplD b8t4RM jHh8hq KtaPWF9cQj Q1hHN5WoXSiT MMxsVeq tdLUzvVTzj]\n >>> print f\n \n root group (NETCDF4 file format):\n dimensions: x, y, z\n variables: phony_vlen_var, strvar\n groups:\n >>> print f.variables[\"strvar\"]\n \n vlen strvar(z)\n vlen data type: \n unlimited dimensions:\n current size = (10,)\n\nIt is also possible to set contents of vlen string variables with numpy arrays\nof any string or unicode data type. Note, however, that accessing the contents\nof such variables will always return numpy arrays with dtype `object`.\n\n##
12) Enum data type.\n\nnetCDF4 has an enumerated data type, which is an integer datatype that is\nrestricted to certain named values. Since Enums don't map directly to\na numpy data type, they are read and written as integer arrays.\n\nHere's an example of usin""g an Enum type to hold cloud type data. \nThe base integer data type and a python dictionary describing the allowed\nvalues and their names are used to define an Enum data type using\n`netCDF4.Dataset.createEnumType`.\n\n :::python\n >>> nc = Dataset('clouds.nc','w')\n >>> # python dict with allowed values and their names.\n >>> enum_dict = {u'Altocumulus': 7, u'Missing': 255, \n >>> u'Stratus': 2, u'Clear': 0,\n >>> u'Nimbostratus': 6, u'Cumulus': 4, u'Altostratus': 5,\n >>> u'Cumulonimbus': 1, u'Stratocumulus': 3}\n >>> # create the Enum type called 'cloud_t'.\n >>> cloud_type = nc.createEnumType(numpy.uint8,'cloud_t',enum_dict)\n >>> print cloud_type\n : name = 'cloud_t',\n numpy dtype = uint8, fields/values ={u'Cumulus': 4,\n u'Altocumulus': 7, u'Missing': 255,\n u'Stratus': 2, u'Clear': 0,\n u'Cumulonimbus': 1, u'Stratocumulus': 3,\n u'Nimbostratus': 6, u'Altostratus': 5}\n\nA new variable can be created in the usual way using this data type.\nInteger data is written to the variable that represents the named\ncloud types in enum_dict. A `ValueError` will be raised if an attempt\nis made to write an integer value not associated with one of the\nspecified names.\n\n :::python\n >>> time = nc.createDimension('time',None)\n >>> # create a 1d variable of type 'cloud_type'.\n >>> # The fill_value is set to the 'Missing' named value.\n >>> cloud_var =\n >>> nc.createVariable('primary_cloud',cloud_type,'time',\n >>> fill_value=enum_dict['Missing'])\n >>> # write some data to the variable.\n >>> cloud_var[:] = [enum_dict['Clear'],enum_dict['Stratus'],\n >>> enum_dict['Cumulus'],enum_dict['Missing'],\n >>> enum_dict['Cumulonimbus']]\n >>> nc.close()\n >>> # reopen the file, read the data.\n >>> nc = Dataset('clouds.nc')\n >>> cloud_var = nc.variables['primary_cloud']\n >>> print cloud_var\n \n enum prima""ry_cloud(time)\n _FillValue: 255\n enum data type: uint8\n unlimited dimensions: time\n current shape = (5,)\n >>> print cloud_var.datatype.enum_dict\n {u'Altocumulus': 7, u'Missing': 255, u'Stratus': 2,\n u'Clear': 0, u'Nimbostratus': 6, u'Cumulus': 4,\n u'Altostratus': 5, u'Cumulonimbus': 1,\n u'Stratocumulus': 3}\n >>> print cloud_var[:]\n [0 2 4 -- 1]\n >>> nc.close()\n\nAll of the code in this tutorial is available in `examples/tutorial.py`,\nUnit tests are in the `test` directory.\n\n**contact**: Jeffrey Whitaker \n\n**copyright**: 2008 by Jeffrey Whitaker.\n\n**license**: Permission to use, copy, modify, and distribute this software and\nits documentation for any purpose and without fee is hereby granted,\nprovided that the above copyright notice appear in all copies and that\nboth the copyright notice and this permission notice appear in\nsupporting documentation.\nTHE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,\nINCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO\nEVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR\nCONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF\nUSE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n- - -\n"; ++static const char __pyx_k_Version_1_2_7_Introduction_netc[] = "\nVersion 1.2.7\n-------------\n- - - \n\nIntroduction\n============\n\nnetcdf4-python is a Python interface to the netCDF C library. \n\n[netCDF](http://www.unidata.ucar.edu/software/netcdf/) version 4 has many features\nnot found in earlier versions of the library and is implemented on top of\n[HDF5](http://www.hdfgroup.org/HDF5). This module can read and write\nfiles in both the new netCDF 4 and the old netCDF 3 format, and can create\nfiles that are readable by HDF5 clients. The API modelled after\n[Scientific.IO.NetCDF](http://dirac.cnrs-orleans.fr/ScientificPython/),\nand should be familiar to users of that module.\n\nMost new features of netCDF 4 are implemented, such as multiple\nunlimited dimensions, groups and zlib data compression. All the new\nnumeric data types (such as 64 bit and unsigned integer types) are\nimplemented. Compound (struct), variable length (vlen) and\nenumerated (enum) data types are supported, but not the opaque data type.\nMixtures of compound, vlen and enum data types (such as\ncompound types containing enums, or vlens containing compound\ntypes) are not supported.\n\nDownload\n========\n\n - Latest bleeding-edge code from the \n [github repository](http://github.com/Unidata/netcdf4-python).\n - Latest [releases](https://pypi.python.org/pypi/netCDF4)\n (source code and windows installers).\n\nRequires\n========\n\n - Python 2.7 or later (python 3 works too).\n - [numpy array module](http://numpy.scipy.org), version 1.7.0 or later.\n - [Cython](http://cython.org), version 0.19 or later, is optional - if it is installed setup.py will\n use it to recompile the Cython source code into C, using conditional compilation\n to enable features in the netCDF API that have been added since version 4.1.1. If\n Cython is not installed, these features (such as the ability to rename Group objects)\n will be disabled to preserve backward compatibility with older versions of the netCDF\n library.\n - The HDF5 C library version 1.8.4-p""atch1 or higher (1.8.x recommended)\n from [](ftp://ftp.hdfgroup.org/HDF5/current/src).\n ***netCDF version 4.4.1 or higher is recommended if using HDF5 1.10.x -\n otherwise resulting files may be unreadable by clients using earlier\n versions of HDF5. For netCDF < 4.4.1, HDF5 version 1.8.x is recommended.***\n Be sure to build with `--enable-hl --enable-shared`.\n - [Libcurl](http://curl.haxx.se/libcurl), if you want\n [OPeNDAP](http://opendap.org) support.\n - [HDF4](http://www.hdfgroup.org/products/hdf4), if you want\n to be able to read HDF4 \"Scientific Dataset\" (SD) files.\n - The netCDF-4 C library from the [github releases\n page](https://github.com/Unidata/netcdf-c/releases). \n Version 4.1.1 or higher is required (4.2 or higher recommended).\n Be sure to build with `--enable-netcdf-4 --enable-shared`, and set\n `CPPFLAGS=\"-I $HDF5_DIR/include\"` and `LDFLAGS=\"-L $HDF5_DIR/lib\"`,\n where `$HDF5_DIR` is the directory where HDF5 was installed.\n If you want [OPeNDAP](http://opendap.org) support, add `--enable-dap`.\n If you want HDF4 SD support, add `--enable-hdf4` and add\n the location of the HDF4 headers and library to `$CPPFLAGS` and `$LDFLAGS`.\n\n\nInstall\n=======\n\n - install the requisite python modules and C libraries (see above). It's\n easiest if all the C libs are built as shared libraries.\n - By default, the utility `nc-config`, installed with netcdf 4.1.2 or higher,\n will be run used to determine where all the dependencies live.\n - If `nc-config` is not in your default `$PATH`, rename the\n file `setup.cfg.template` to `setup.cfg`, then edit\n in a text editor (follow the instructions in the comments).\n In addition to specifying the path to `nc-config`,\n you can manually set the paths to all the libraries and their include files\n (in case `nc-config` does not do the right thing).\n - run `python setup.py build`, then `python setup.py install` (as root if\n necessary).\n - [`pip install`](https://pip.pypa.io/en/latest/reference/pip""_install.html) can\n also be used, with library paths set with environment variables. To make\n this work, the `USE_SETUPCFG` environment variable must be used to tell \n setup.py not to use `setup.cfg`.\n For example, `USE_SETUPCFG=0 HDF5_INCDIR=/usr/include/hdf5/serial\n HDF5_LIBDIR=/usr/lib/x86_64-linux-gnu/hdf5/serial pip install` has been\n shown to work on an Ubuntu/Debian linux system. Similarly, environment variables\n (all capitalized) can be used to set the include and library paths for\n `hdf5`, `netCDF4`, `hdf4`, `szip`, `jpeg`, `curl` and `zlib`. If the\n libraries are installed in standard places (e.g. `/usr` or `/usr/local`), \n the environment variables do not need to be set.\n - run the tests in the 'test' directory by running `python run_all.py`.\n\nTutorial\n========\n\n1. [Creating/Opening/Closing a netCDF file.](#section1)\n2. [Groups in a netCDF file.](#section2)\n3. [Dimensions in a netCDF file.](#section3)\n4. [Variables in a netCDF file.](#section4)\n5. [Attributes in a netCDF file.](#section5)\n6. [Writing data to and retrieving data from a netCDF variable.](#section6)\n7. [Dealing with time coordinates.](#section7)\n8. [Reading data from a multi-file netCDF dataset.](#section8)\n9. [Efficient compression of netCDF variables.](#section9)\n10. [Beyond homogeneous arrays of a fixed type - compound data types.](#section10)\n11. [Variable-length (vlen) data types.](#section11)\n12. [Enum data type.](#section12)\n\n\n##
1) Creating/Opening/Closing a netCDF file.\n\nTo create a netCDF file from python, you simply call the `netCDF4.Dataset`\nconstructor. This is also the method used to open an existing netCDF\nfile. If the file is open for write access (`mode='w', 'r+'` or `'a'`), you may\nwrite any type of data including new dimensions, groups, variables and\nattributes. netCDF files come in five flavors (`NETCDF3_CLASSIC,\nNETCDF3_64BIT_OFFSET, NETCDF3_64BIT_DATA, NETCDF4_CLASSIC`, and `NETCDF4`). \n`NETC""DF3_CLASSIC` was the original netcdf binary format, and was limited \nto file sizes less than 2 Gb. `NETCDF3_64BIT_OFFSET` was introduced\nin version 3.6.0 of the library, and extended the original binary format\nto allow for file sizes greater than 2 Gb. \n`NETCDF3_64BIT_DATA` is a new format that requires version 4.4.0 of\nthe C library - it extends the `NETCDF3_64BIT_OFFSET` binary format to\nallow for unsigned/64 bit integer data types and 64-bit dimension sizes.\n`NETCDF3_64BIT` is an alias for `NETCDF3_64BIT_OFFSET`.\n`NETCDF4_CLASSIC` files use the version 4 disk format (HDF5), but omits features\nnot found in the version 3 API. They can be read by netCDF 3 clients\nonly if they have been relinked against the netCDF 4 library. They can\nalso be read by HDF5 clients. `NETCDF4` files use the version 4 disk\nformat (HDF5) and use the new features of the version 4 API. The\n`netCDF4` module can read and write files in any of these formats. When\ncreating a new file, the format may be specified using the `format`\nkeyword in the `Dataset` constructor. The default format is\n`NETCDF4`. To see how a given file is formatted, you can examine the\n`data_model` attribute. Closing the netCDF file is\naccomplished via the `netCDF4.Dataset.close` method of the `netCDF4.Dataset`\ninstance.\n\nHere's an example:\n\n :::python\n >>> from netCDF4 import Dataset\n >>> rootgrp = Dataset(\"test.nc\", \"w\", format=\"NETCDF4\")\n >>> print rootgrp.data_model\n NETCDF4\n >>> rootgrp.close()\n\nRemote [OPeNDAP](http://opendap.org)-hosted datasets can be accessed for\nreading over http if a URL is provided to the `netCDF4.Dataset` constructor instead of a\nfilename. However, this requires that the netCDF library be built with\nOPenDAP support, via the `--enable-dap` configure option (added in\nversion 4.0.1).\n\n\n##
2) Groups in a netCDF file.\n\nnetCDF version 4 added support for organizing data in hierarchical\ngroups, which are analogous t""o directories in a filesystem. Groups serve\nas containers for variables, dimensions and attributes, as well as other\ngroups. A `netCDF4.Dataset` creates a special group, called\nthe 'root group', which is similar to the root directory in a unix\nfilesystem. To create `netCDF4.Group` instances, use the\n`netCDF4.Dataset.createGroup` method of a `netCDF4.Dataset` or `netCDF4.Group`\ninstance. `netCDF4.Dataset.createGroup` takes a single argument, a\npython string containing the name of the new group. The new `netCDF4.Group`\ninstances contained within the root group can be accessed by name using\nthe `groups` dictionary attribute of the `netCDF4.Dataset` instance. Only\n`NETCDF4` formatted files support Groups, if you try to create a Group\nin a netCDF 3 file you will get an error message.\n\n :::python\n >>> rootgrp = Dataset(\"test.nc\", \"a\")\n >>> fcstgrp = rootgrp.createGroup(\"forecasts\")\n >>> analgrp = rootgrp.createGroup(\"analyses\")\n >>> print rootgrp.groups\n OrderedDict([(\"forecasts\", \n ),\n (\"analyses\", \n )])\n\nGroups can exist within groups in a `netCDF4.Dataset`, just as directories\nexist within directories in a unix filesystem. Each `netCDF4.Group` instance\nhas a `groups` attribute dictionary containing all of the group\ninstances contained within that group. Each `netCDF4.Group` instance also has a\n`path` attribute that contains a simulated unix directory path to\nthat group. To simplify the creation of nested groups, you can\nuse a unix-like path as an argument to `netCDF4.Dataset.createGroup`.\n\n :::python\n >>> fcstgrp1 = rootgrp.createGroup(\"/forecasts/model1\")\n >>> fcstgrp2 = rootgrp.createGroup(\"/forecasts/model2\")\n\nIf any of the intermediate elements of the path do not exist, they are created,\njust as with the unix command `'mkdir -p'`. If you try to cre""ate a group\nthat already exists, no error will be raised, and the existing group will be \nreturned.\n\nHere's an example that shows how to navigate all the groups in a\n`netCDF4.Dataset`. The function `walktree` is a Python generator that is used\nto walk the directory tree. Note that printing the `netCDF4.Dataset` or `netCDF4.Group`\nobject yields summary information about it's contents.\n\n :::python\n >>> def walktree(top):\n >>> values = top.groups.values()\n >>> yield values\n >>> for value in top.groups.values():\n >>> for children in walktree(value):\n >>> yield children\n >>> print rootgrp\n >>> for children in walktree(rootgrp):\n >>> for child in children:\n >>> print child\n \n root group (NETCDF4 file format):\n dimensions:\n variables:\n groups: forecasts, analyses\n \n group /forecasts:\n dimensions:\n variables:\n groups: model1, model2\n \n group /analyses:\n dimensions:\n variables:\n groups:\n \n group /forecasts/model1:\n dimensions:\n variables:\n groups:\n \n group /forecasts/model2:\n dimensions:\n variables:\n groups:\n\n##
3) Dimensions in a netCDF file.\n\nnetCDF defines the sizes of all variables in terms of dimensions, so\nbefore any variables can be created the dimensions they use must be\ncreated first. A special case, not often used in practice, is that of a\nscalar variable, which has no dimensions. A dimension is created using\nthe `netCDF4.Dataset.createDimension` method of a `netCDF4.Dataset`\nor `netCDF4.Group` instance. A Python string is used to set the name of the\ndimension, and an integer value is used to set the size. To create an""\nunlimited dimension (a dimension that can be appended to), the size\nvalue is set to `None` or 0. In this example, there both the `time` and\n`level` dimensions are unlimited. Having more than one unlimited\ndimension is a new netCDF 4 feature, in netCDF 3 files there may be only\none, and it must be the first (leftmost) dimension of the variable.\n\n :::python\n >>> level = rootgrp.createDimension(\"level\", None)\n >>> time = rootgrp.createDimension(\"time\", None)\n >>> lat = rootgrp.createDimension(\"lat\", 73)\n >>> lon = rootgrp.createDimension(\"lon\", 144)\n\n\nAll of the `netCDF4.Dimension` instances are stored in a python dictionary.\n\n :::python\n >>> print rootgrp.dimensions\n OrderedDict([(\"level\", ),\n (\"time\", ),\n (\"lat\", ),\n (\"lon\", )])\n\nCalling the python `len` function with a `netCDF4.Dimension` instance returns\nthe current size of that dimension.\nThe `netCDF4.Dimension.isunlimited` method of a `netCDF4.Dimension` instance\ncan be used to determine if the dimensions is unlimited, or appendable.\n\n :::python\n >>> print len(lon)\n 144\n >>> print lon.isunlimited()\n False\n >>> print time.isunlimited()\n True\n\nPrinting the `netCDF4.Dimension` object\nprovides useful summary info, including the name and length of the dimension,\nand whether it is unlimited.\n\n :::python\n >>> for dimobj in rootgrp.dimensions.values():\n >>> print dimobj\n (unlimited): name = \"level\", size = 0\n (unlimited): name = \"time\", size = 0\n : name = \"lat\", size = 73\n : name = \"lon\", size = 144""\n (unlimited): name = \"time\", size = 0\n\n`netCDF4.Dimension` names can be changed using the\n`netCDF4.Datatset.renameDimension` method of a `netCDF4.Dataset` or\n`netCDF4.Group` instance.\n\n##
4) Variables in a netCDF file.\n\nnetCDF variables behave much like python multidimensional array objects\nsupplied by the [numpy module](http://numpy.scipy.org). However,\nunlike numpy arrays, netCDF4 variables can be appended to along one or\nmore 'unlimited' dimensions. To create a netCDF variable, use the\n`netCDF4.Dataset.createVariable` method of a `netCDF4.Dataset` or\n`netCDF4.Group` instance. The `netCDF4.Dataset.createVariable` method\nhas two mandatory arguments, the variable name (a Python string), and\nthe variable datatype. The variable's dimensions are given by a tuple\ncontaining the dimension names (defined previously with\n`netCDF4.Dataset.createDimension`). To create a scalar\nvariable, simply leave out the dimensions keyword. The variable\nprimitive datatypes correspond to the dtype attribute of a numpy array.\nYou can specify the datatype as a numpy dtype object, or anything that\ncan be converted to a numpy dtype object. Valid datatype specifiers\ninclude: `'f4'` (32-bit floating point), `'f8'` (64-bit floating\npoint), `'i4'` (32-bit signed integer), `'i2'` (16-bit signed\ninteger), `'i8'` (64-bit signed integer), `'i1'` (8-bit signed\ninteger), `'u1'` (8-bit unsigned integer), `'u2'` (16-bit unsigned\ninteger), `'u4'` (32-bit unsigned integer), `'u8'` (64-bit unsigned\ninteger), or `'S1'` (single-character string). The old Numeric\nsingle-character typecodes (`'f'`,`'d'`,`'h'`,\n`'s'`,`'b'`,`'B'`,`'c'`,`'i'`,`'l'`), corresponding to\n(`'f4'`,`'f8'`,`'i2'`,`'i2'`,`'i1'`,`'i1'`,`'S1'`,`'i4'`,`'i4'`),\nwill also work. The unsigned integer types and the 64-bit integer type\ncan only be used if the file format is `NETCDF4`.\n\nThe dimensions themselves are usually also defined as variables, c""alled\ncoordinate variables. The `netCDF4.Dataset.createVariable`\nmethod returns an instance of the `netCDF4.Variable` class whose methods can be\nused later to access and set variable data and attributes.\n\n :::python\n >>> times = rootgrp.createVariable(\"time\",\"f8\",(\"time\",))\n >>> levels = rootgrp.createVariable(\"level\",\"i4\",(\"level\",))\n >>> latitudes = rootgrp.createVariable(\"latitude\",\"f4\",(\"lat\",))\n >>> longitudes = rootgrp.createVariable(\"longitude\",\"f4\",(\"lon\",))\n >>> # two dimensions unlimited\n >>> temp = rootgrp.createVariable(\"temp\",\"f4\",(\"time\",\"level\",\"lat\",\"lon\",))\n\nTo get summary info on a `netCDF4.Variable` instance in an interactive session, just print it.\n\n :::python\n >>> print temp\n \n float32 temp(time, level, lat, lon)\n least_significant_digit: 3\n units: K\n unlimited dimensions: time, level\n current shape = (0, 0, 73, 144)\n\nYou can use a path to create a Variable inside a hierarchy of groups.\n\n :::python\n >>> ftemp = rootgrp.createVariable(\"/forecasts/model1/temp\",\"f4\",(\"time\",\"level\",\"lat\",\"lon\",))\n\nIf the intermediate groups do not yet exist, they will be created.\n\nYou can also query a `netCDF4.Dataset` or `netCDF4.Group` instance directly to obtain `netCDF4.Group` or \n`netCDF4.Variable` instances using paths.\n\n :::python\n >>> print rootgrp[\"/forecasts/model1\"] # a Group instance\n \n group /forecasts/model1:\n dimensions(sizes):\n variables(dimensions): float32 temp(time,level,lat,lon)\n groups:\n >>> print rootgrp[\"/forecasts/model1/temp\"] # a Variable instance\n \n float32 temp(time, level, lat, lon)\n path = /forecasts/model1\n unlimited dimensions: time, level\n current shape = (0, 0, 73, 144)\n filling on, default _FillValue of 9.96920996839e+3""6 used\n\nAll of the variables in the `netCDF4.Dataset` or `netCDF4.Group` are stored in a\nPython dictionary, in the same way as the dimensions:\n\n :::python\n >>> print rootgrp.variables\n OrderedDict([(\"time\", ),\n (\"level\", ),\n (\"latitude\", ),\n (\"longitude\", ),\n (\"temp\", )])\n\n`netCDF4.Variable` names can be changed using the\n`netCDF4.Dataset.renameVariable` method of a `netCDF4.Dataset`\ninstance.\n\n\n##
5) Attributes in a netCDF file.\n\nThere are two types of attributes in a netCDF file, global and variable.\nGlobal attributes provide information about a group, or the entire\ndataset, as a whole. `netCDF4.Variable` attributes provide information about\none of the variables in a group. Global attributes are set by assigning\nvalues to `netCDF4.Dataset` or `netCDF4.Group` instance variables. `netCDF4.Variable`\nattributes are set by assigning values to `netCDF4.Variable` instances\nvariables. Attributes can be strings, numbers or sequences. Returning to\nour example,\n\n :::python\n >>> import time\n >>> rootgrp.description = \"bogus example script\"\n >>> rootgrp.history = \"Created \" + time.ctime(time.time())\n >>> rootgrp.source = \"netCDF4 python module tutorial\"\n >>> latitudes.units = \"degrees north\"\n >>> longitudes.units = \"degrees east\"\n >>> levels.units = \"hPa\"\n >>> temp.units = \"K\"\n >>> times.units = \"hours since 0001-01-01 00:00:00.0\"\n >>> times.calendar = \"gregorian\"\n\nThe `netCDF4.Dataset.ncattrs` method of a `netCDF4.Dataset`, `netCDF4.Group` or\n`netCDF4.Variable` instance can be used to retrieve the names of all the netCDF\nattributes. This method is provided as a convenience, since using the\nbuilt-""in `dir` Python function will return a bunch of private methods\nand attributes that cannot (or should not) be modified by the user.\n\n :::python\n >>> for name in rootgrp.ncattrs():\n >>> print \"Global attr\", name, \"=\", getattr(rootgrp,name)\n Global attr description = bogus example script\n Global attr history = Created Mon Nov 7 10.30:56 2005\n Global attr source = netCDF4 python module tutorial\n\nThe `__dict__` attribute of a `netCDF4.Dataset`, `netCDF4.Group` or `netCDF4.Variable`\ninstance provides all the netCDF attribute name/value pairs in a python\ndictionary:\n\n :::python\n >>> print rootgrp.__dict__\n OrderedDict([(u\"description\", u\"bogus example script\"),\n (u\"history\", u\"Created Thu Mar 3 19:30:33 2011\"),\n (u\"source\", u\"netCDF4 python module tutorial\")])\n\nAttributes can be deleted from a netCDF `netCDF4.Dataset`, `netCDF4.Group` or\n`netCDF4.Variable` using the python `del` statement (i.e. `del grp.foo`\nremoves the attribute `foo` the the group `grp`).\n\n##
6) Writing data to and retrieving data from a netCDF variable.\n\nNow that you have a netCDF `netCDF4.Variable` instance, how do you put data\ninto it? You can just treat it like an array and assign data to a slice.\n\n :::python\n >>> import numpy\n >>> lats = numpy.arange(-90,91,2.5)\n >>> lons = numpy.arange(-180,180,2.5)\n >>> latitudes[:] = lats\n >>> longitudes[:] = lons\n >>> print \"latitudes =\\n\",latitudes[:]\n latitudes =\n [-90. -87.5 -85. -82.5 -80. -77.5 -75. -72.5 -70. -67.5 -65. -62.5\n -60. -57.5 -55. -52.5 -50. -47.5 -45. -42.5 -40. -37.5 -35. -32.5\n -30. -27.5 -25. -22.5 -20. -17.5 -15. -12.5 -10. -7.5 -5. -2.5\n 0. 2.5 5. 7.5 10. 12.5 15. 17.5 20. 22.5 25. 27.5\n 30. 32.5 35. 37.5 40. 42.5 45. 47.5 50. 52.5 55. 57.5\n 60. 62.5 65. 67.5 70. 72.5 75. 77.""5 80. 82.5 85. 87.5\n 90. ]\n\nUnlike NumPy's array objects, netCDF `netCDF4.Variable`\nobjects with unlimited dimensions will grow along those dimensions if you\nassign data outside the currently defined range of indices.\n\n :::python\n >>> # append along two unlimited dimensions by assigning to slice.\n >>> nlats = len(rootgrp.dimensions[\"lat\"])\n >>> nlons = len(rootgrp.dimensions[\"lon\"])\n >>> print \"temp shape before adding data = \",temp.shape\n temp shape before adding data = (0, 0, 73, 144)\n >>>\n >>> from numpy.random import uniform\n >>> temp[0:5,0:10,:,:] = uniform(size=(5,10,nlats,nlons))\n >>> print \"temp shape after adding data = \",temp.shape\n temp shape after adding data = (6, 10, 73, 144)\n >>>\n >>> # levels have grown, but no values yet assigned.\n >>> print \"levels shape after adding pressure data = \",levels.shape\n levels shape after adding pressure data = (10,)\n\nNote that the size of the levels variable grows when data is appended\nalong the `level` dimension of the variable `temp`, even though no\ndata has yet been assigned to levels.\n\n :::python\n >>> # now, assign data to levels dimension variable.\n >>> levels[:] = [1000.,850.,700.,500.,300.,250.,200.,150.,100.,50.]\n\nHowever, that there are some differences between NumPy and netCDF\nvariable slicing rules. Slices behave as usual, being specified as a\n`start:stop:step` triplet. Using a scalar integer index `i` takes the ith\nelement and reduces the rank of the output array by one. Boolean array and\ninteger sequence indexing behaves differently for netCDF variables\nthan for numpy arrays. Only 1-d boolean arrays and integer sequences are\nallowed, and these indices work independently along each dimension (similar\nto the way vector subscripts work in fortran). This means that\n\n :::python\n >>> temp[0, 0, [0,1,2,3], [0,1,2,3]]\n\nreturns an array of shape (4,4) when slicing a netCDF variable, but ""for a\nnumpy array it returns an array of shape (4,).\nSimilarly, a netCDF variable of shape `(2,3,4,5)` indexed\nwith `[0, array([True, False, True]), array([False, True, True, True]), :]`\nwould return a `(2, 3, 5)` array. In NumPy, this would raise an error since\nit would be equivalent to `[0, [0,1], [1,2,3], :]`. When slicing with integer\nsequences, the indices ***need not be sorted*** and ***may contain\nduplicates*** (both of these are new features in version 1.2.1).\nWhile this behaviour may cause some confusion for those used to NumPy's 'fancy indexing' rules,\nit provides a very powerful way to extract data from multidimensional netCDF\nvariables by using logical operations on the dimension arrays to create slices.\n\nFor example,\n\n :::python\n >>> tempdat = temp[::2, [1,3,6], lats>0, lons>0]\n\nwill extract time indices 0,2 and 4, pressure levels\n850, 500 and 200 hPa, all Northern Hemisphere latitudes and Eastern\nHemisphere longitudes, resulting in a numpy array of shape (3, 3, 36, 71).\n\n :::python\n >>> print \"shape of fancy temp slice = \",tempdat.shape\n shape of fancy temp slice = (3, 3, 36, 71)\n\n***Special note for scalar variables***: To extract data from a scalar variable\n`v` with no associated dimensions, use `np.asarray(v)` or `v[...]`. The result\nwill be a numpy scalar array.\n\n##
7) Dealing with time coordinates.\n\nTime coordinate values pose a special challenge to netCDF users. Most\nmetadata standards (such as CF) specify that time should be\nmeasure relative to a fixed date using a certain calendar, with units\nspecified like `hours since YY:MM:DD hh-mm-ss`. These units can be\nawkward to deal with, without a utility to convert the values to and\nfrom calendar dates. The function called `netCDF4.num2date` and `netCDF4.date2num` are\nprovided with this package to do just that. Here's an example of how they\ncan be used:\n\n :::python\n >>> # fill in times.\n >>> from datetime impo""rt datetime, timedelta\n >>> from netCDF4 import num2date, date2num\n >>> dates = [datetime(2001,3,1)+n*timedelta(hours=12) for n in range(temp.shape[0])]\n >>> times[:] = date2num(dates,units=times.units,calendar=times.calendar)\n >>> print \"time values (in units %s): \" % times.units+\"\\n\",times[:]\n time values (in units hours since January 1, 0001):\n [ 17533056. 17533068. 17533080. 17533092. 17533104.]\n >>> dates = num2date(times[:],units=times.units,calendar=times.calendar)\n >>> print \"dates corresponding to time values:\\n\",dates\n dates corresponding to time values:\n [2001-03-01 00:00:00 2001-03-01 12:00:00 2001-03-02 00:00:00\n 2001-03-02 12:00:00 2001-03-03 00:00:00]\n\n`netCDF4.num2date` converts numeric values of time in the specified `units`\nand `calendar` to datetime objects, and `netCDF4.date2num` does the reverse.\nAll the calendars currently defined in the\n[CF metadata convention](http://cfconventions.org) are supported.\nA function called `netCDF4.date2index` is also provided which returns the indices\nof a netCDF time variable corresponding to a sequence of datetime instances.\n\n\n##
8) Reading data from a multi-file netCDF dataset.\n\nIf you want to read data from a variable that spans multiple netCDF files,\nyou can use the `netCDF4.MFDataset` class to read the data as if it were\ncontained in a single file. Instead of using a single filename to create\na `netCDF4.Dataset` instance, create a `netCDF4.MFDataset` instance with either a list\nof filenames, or a string with a wildcard (which is then converted to\na sorted list of files using the python glob module).\nVariables in the list of files that share the same unlimited\ndimension are aggregated together, and can be sliced across multiple\nfiles. To illustrate this, let's first create a bunch of netCDF files with\nthe same variable (with the same unlimited dimension). The files\nmust in be in `NETCDF3_64BIT_OFFSET`, `NETCDF""3_64BIT_DATA`, `NETCDF3_CLASSIC` or\n`NETCDF4_CLASSIC` format (`NETCDF4` formatted multi-file\ndatasets are not supported).\n\n :::python\n >>> for nf in range(10):\n >>> f = Dataset(\"mftest%s.nc\" % nf,\"w\")\n >>> f.createDimension(\"x\",None)\n >>> x = f.createVariable(\"x\",\"i\",(\"x\",))\n >>> x[0:10] = numpy.arange(nf*10,10*(nf+1))\n >>> f.close()\n\nNow read all the files back in at once with `netCDF4.MFDataset`\n\n :::python\n >>> from netCDF4 import MFDataset\n >>> f = MFDataset(\"mftest*nc\")\n >>> print f.variables[\"x\"][:]\n [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24\n 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49\n 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74\n 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99]\n\nNote that `netCDF4.MFDataset` can only be used to read, not write, multi-file\ndatasets.\n\n##
9) Efficient compression of netCDF variables.\n\nData stored in netCDF 4 `netCDF4.Variable` objects can be compressed and\ndecompressed on the fly. The parameters for the compression are\ndetermined by the `zlib`, `complevel` and `shuffle` keyword arguments\nto the `netCDF4.Dataset.createVariable` method. To turn on\ncompression, set `zlib=True`. The `complevel` keyword regulates the\nspeed and efficiency of the compression (1 being fastest, but lowest\ncompression ratio, 9 being slowest but best compression ratio). The\ndefault value of `complevel` is 4. Setting `shuffle=False` will turn\noff the HDF5 shuffle filter, which de-interlaces a block of data before\ncompression by reordering the bytes. The shuffle filter can\nsignificantly improve compression ratios, and is on by default. Setting\n`fletcher32` keyword argument to\n`netCDF4.Dataset.createVariable` to `True` (it's `False` by\ndefault) enables the Fletcher32 checksum algorithm for erro""r detection.\nIt's also possible to set the HDF5 chunking parameters and endian-ness\nof the binary data stored in the HDF5 file with the `chunksizes`\nand `endian` keyword arguments to\n`netCDF4.Dataset.createVariable`. These keyword arguments only\nare relevant for `NETCDF4` and `NETCDF4_CLASSIC` files (where the\nunderlying file format is HDF5) and are silently ignored if the file\nformat is `NETCDF3_CLASSIC`, `NETCDF3_64BIT_OFFSET` or `NETCDF3_64BIT_DATA`.\n\nIf your data only has a certain number of digits of precision (say for\nexample, it is temperature data that was measured with a precision of\n0.1 degrees), you can dramatically improve zlib compression by\nquantizing (or truncating) the data using the `least_significant_digit`\nkeyword argument to `netCDF4.Dataset.createVariable`. The least\nsignificant digit is the power of ten of the smallest decimal place in\nthe data that is a reliable value. For example if the data has a\nprecision of 0.1, then setting `least_significant_digit=1` will cause\ndata the data to be quantized using `numpy.around(scale*data)/scale`, where\nscale = 2**bits, and bits is determined so that a precision of 0.1 is\nretained (in this case bits=4). Effectively, this makes the compression\n'lossy' instead of 'lossless', that is some precision in the data is\nsacrificed for the sake of disk space.\n\nIn our example, try replacing the line\n\n :::python\n >>> temp = rootgrp.createVariable(\"temp\",\"f4\",(\"time\",\"level\",\"lat\",\"lon\",))\n\nwith\n\n :::python\n >>> temp = dataset.createVariable(\"temp\",\"f4\",(\"time\",\"level\",\"lat\",\"lon\",),zlib=True)\n\nand then\n\n :::python\n >>> temp = dataset.createVariable(\"temp\",\"f4\",(\"time\",\"level\",\"lat\",\"lon\",),zlib=True,least_significant_digit=3)\n\nand see how much smaller the resulting files are.\n\n##
10) Beyond homogeneous arrays of a fixed type - compound data types.\n\nCompound data types map directly to numpy structured (""a.k.a 'record')\narrays. Structured arrays are akin to C structs, or derived types\nin Fortran. They allow for the construction of table-like structures\ncomposed of combinations of other data types, including other\ncompound types. Compound types might be useful for representing multiple\nparameter values at each point on a grid, or at each time and space\nlocation for scattered (point) data. You can then access all the\ninformation for a point by reading one variable, instead of reading\ndifferent parameters from different variables. Compound data types\nare created from the corresponding numpy data type using the\n`netCDF4.Dataset.createCompoundType` method of a `netCDF4.Dataset` or `netCDF4.Group` instance.\nSince there is no native complex data type in netcdf, compound types are handy\nfor storing numpy complex arrays. Here's an example:\n\n :::python\n >>> f = Dataset(\"complex.nc\",\"w\")\n >>> size = 3 # length of 1-d complex array\n >>> # create sample complex data.\n >>> datac = numpy.exp(1j*(1.+numpy.linspace(0, numpy.pi, size)))\n >>> # create complex128 compound data type.\n >>> complex128 = numpy.dtype([(\"real\",numpy.float64),(\"imag\",numpy.float64)])\n >>> complex128_t = f.createCompoundType(complex128,\"complex128\")\n >>> # create a variable with this data type, write some data to it.\n >>> f.createDimension(\"x_dim\",None)\n >>> v = f.createVariable(\"cmplx_var\",complex128_t,\"x_dim\")\n >>> data = numpy.empty(size,complex128) # numpy structured array\n >>> data[\"real\"] = datac.real; data[\"imag\"] = datac.imag\n >>> v[:] = data # write numpy structured array to netcdf compound var\n >>> # close and reopen the file, check the contents.\n >>> f.close(); f = Dataset(\"complex.nc\")\n >>> v = f.variables[\"cmplx_var\"]\n >>> datain = v[:] # read in all the data into a numpy structured array\n >>> # create an empty numpy complex array\n >>> datac2 = numpy.empty(datain.shape,numpy.comp""lex128)\n >>> # .. fill it with contents of structured array.\n >>> datac2.real = datain[\"real\"]; datac2.imag = datain[\"imag\"]\n >>> print datac.dtype,datac # original data\n complex128 [ 0.54030231+0.84147098j -0.84147098+0.54030231j -0.54030231-0.84147098j]\n >>>\n >>> print datac2.dtype,datac2 # data from file\n complex128 [ 0.54030231+0.84147098j -0.84147098+0.54030231j -0.54030231-0.84147098j]\n\nCompound types can be nested, but you must create the 'inner'\nones first. All of the compound types defined for a `netCDF4.Dataset` or `netCDF4.Group` are stored in a\nPython dictionary, just like variables and dimensions. As always, printing\nobjects gives useful summary information in an interactive session:\n\n :::python\n >>> print f\n \n root group (NETCDF4 file format):\n dimensions: x_dim\n variables: cmplx_var\n groups:\n \n >>> print f.variables[\"cmplx_var\"]\n compound cmplx_var(x_dim)\n compound data type: [(\"real\", \">> print f.cmptypes\n OrderedDict([(\"complex128\", )])\n >>> print f.cmptypes[\"complex128\"]\n : name = \"complex128\", numpy dtype = [(u\"real\",\"11) Variable-length (vlen) data types.\n\nNetCDF 4 has support for variable-length or \"ragged\" arrays. These are arrays\nof variable length sequences having the same type. To create a variable-length\ndata type, use the `netCDF4.Dataset.createVLType` method\nmethod of a `netCDF4.Dataset` or `netCDF4.Group` instance.\n\n :::python\n >>> f = Dataset(\"tst_vlen.nc\",\"w\")\n >>> vlen_t = f.createVLType(numpy.int32, \"phony_vlen\")\n\nThe numpy datatype of the variable-length sequences and the name of the""\nnew datatype must be specified. Any of the primitive datatypes can be\nused (signed and unsigned integers, 32 and 64 bit floats, and characters),\nbut compound data types cannot.\nA new variable can then be created using this datatype.\n\n :::python\n >>> x = f.createDimension(\"x\",3)\n >>> y = f.createDimension(\"y\",4)\n >>> vlvar = f.createVariable(\"phony_vlen_var\", vlen_t, (\"y\",\"x\"))\n\nSince there is no native vlen datatype in numpy, vlen arrays are represented\nin python as object arrays (arrays of dtype `object`). These are arrays whose\nelements are Python object pointers, and can contain any type of python object.\nFor this application, they must contain 1-D numpy arrays all of the same type\nbut of varying length.\nIn this case, they contain 1-D numpy `int32` arrays of random length between\n1 and 10.\n\n :::python\n >>> import random\n >>> data = numpy.empty(len(y)*len(x),object)\n >>> for n in range(len(y)*len(x)):\n >>> data[n] = numpy.arange(random.randint(1,10),dtype=\"int32\")+1\n >>> data = numpy.reshape(data,(len(y),len(x)))\n >>> vlvar[:] = data\n >>> print \"vlen variable =\\n\",vlvar[:]\n vlen variable =\n [[[ 1 2 3 4 5 6 7 8 9 10] [1 2 3 4 5] [1 2 3 4 5 6 7 8]]\n [[1 2 3 4 5 6 7] [1 2 3 4 5 6] [1 2 3 4 5]]\n [[1 2 3 4 5] [1 2 3 4] [1]]\n [[ 1 2 3 4 5 6 7 8 9 10] [ 1 2 3 4 5 6 7 8 9 10]\n [1 2 3 4 5 6 7 8]]]\n >>> print f\n \n root group (NETCDF4 file format):\n dimensions: x, y\n variables: phony_vlen_var\n groups:\n >>> print f.variables[\"phony_vlen_var\"]\n \n vlen phony_vlen_var(y, x)\n vlen data type: int32\n unlimited dimensions:\n current shape = (4, 3)\n >>> print f.VLtypes[\"phony_vlen\"]\n : name = \"phony_vlen\", numpy dtype = int32\n\nNumpy object arrays containing python strings can"" also be written as vlen\nvariables, For vlen strings, you don't need to create a vlen data type.\nInstead, simply use the python `str` builtin (or a numpy string datatype\nwith fixed length greater than 1) when calling the\n`netCDF4.Dataset.createVariable` method.\n\n :::python\n >>> z = f.createDimension(\"z\",10)\n >>> strvar = rootgrp.createVariable(\"strvar\", str, \"z\")\n\nIn this example, an object array is filled with random python strings with\nrandom lengths between 2 and 12 characters, and the data in the object\narray is assigned to the vlen string variable.\n\n :::python\n >>> chars = \"1234567890aabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\"\n >>> data = numpy.empty(10,\"O\")\n >>> for n in range(10):\n >>> stringlen = random.randint(2,12)\n >>> data[n] = \"\".join([random.choice(chars) for i in range(stringlen)])\n >>> strvar[:] = data\n >>> print \"variable-length string variable:\\n\",strvar[:]\n variable-length string variable:\n [aDy29jPt 5DS9X8 jd7aplD b8t4RM jHh8hq KtaPWF9cQj Q1hHN5WoXSiT MMxsVeq tdLUzvVTzj]\n >>> print f\n \n root group (NETCDF4 file format):\n dimensions: x, y, z\n variables: phony_vlen_var, strvar\n groups:\n >>> print f.variables[\"strvar\"]\n \n vlen strvar(z)\n vlen data type: \n unlimited dimensions:\n current size = (10,)\n\nIt is also possible to set contents of vlen string variables with numpy arrays\nof any string or unicode data type. Note, however, that accessing the contents\nof such variables will always return numpy arrays with dtype `object`.\n\n##
12) Enum data type.\n\nnetCDF4 has an enumerated data type, which is an integer datatype that is\nrestricted to certain named values. Since Enums don't map directly to\na numpy data type, they are read and written as integer arrays.\n\nHere's an example of usin""g an Enum type to hold cloud type data. \nThe base integer data type and a python dictionary describing the allowed\nvalues and their names are used to define an Enum data type using\n`netCDF4.Dataset.createEnumType`.\n\n :::python\n >>> nc = Dataset('clouds.nc','w')\n >>> # python dict with allowed values and their names.\n >>> enum_dict = {u'Altocumulus': 7, u'Missing': 255, \n >>> u'Stratus': 2, u'Clear': 0,\n >>> u'Nimbostratus': 6, u'Cumulus': 4, u'Altostratus': 5,\n >>> u'Cumulonimbus': 1, u'Stratocumulus': 3}\n >>> # create the Enum type called 'cloud_t'.\n >>> cloud_type = nc.createEnumType(numpy.uint8,'cloud_t',enum_dict)\n >>> print cloud_type\n : name = 'cloud_t',\n numpy dtype = uint8, fields/values ={u'Cumulus': 4,\n u'Altocumulus': 7, u'Missing': 255,\n u'Stratus': 2, u'Clear': 0,\n u'Cumulonimbus': 1, u'Stratocumulus': 3,\n u'Nimbostratus': 6, u'Altostratus': 5}\n\nA new variable can be created in the usual way using this data type.\nInteger data is written to the variable that represents the named\ncloud types in enum_dict. A `ValueError` will be raised if an attempt\nis made to write an integer value not associated with one of the\nspecified names.\n\n :::python\n >>> time = nc.createDimension('time',None)\n >>> # create a 1d variable of type 'cloud_type'.\n >>> # The fill_value is set to the 'Missing' named value.\n >>> cloud_var =\n >>> nc.createVariable('primary_cloud',cloud_type,'time',\n >>> fill_value=enum_dict['Missing'])\n >>> # write some data to the variable.\n >>> cloud_var[:] = [enum_dict['Clear'],enum_dict['Stratus'],\n >>> enum_dict['Cumulus'],enum_dict['Missing'],\n >>> enum_dict['Cumulonimbus']]\n >>> nc.close()\n >>> # reopen the file, read the data.\n >>> nc = Dataset('clouds.nc')\n >>> cloud_var = nc.variables['primary_cloud']\n >>> print cloud_var\n \n enum prima""ry_cloud(time)\n _FillValue: 255\n enum data type: uint8\n unlimited dimensions: time\n current shape = (5,)\n >>> print cloud_var.datatype.enum_dict\n {u'Altocumulus': 7, u'Missing': 255, u'Stratus': 2,\n u'Clear': 0, u'Nimbostratus': 6, u'Cumulus': 4,\n u'Altostratus': 5, u'Cumulonimbus': 1,\n u'Stratocumulus': 3}\n >>> print cloud_var[:]\n [0 2 4 -- 1]\n >>> nc.close()\n\nAll of the code in this tutorial is available in `examples/tutorial.py`,\nUnit tests are in the `test` directory.\n\n**contact**: Jeffrey Whitaker \n\n**copyright**: 2008 by Jeffrey Whitaker.\n\n**license**: Permission to use, copy, modify, and distribute this software and\nits documentation for any purpose and without fee is hereby granted,\nprovided that the above copyright notice appear in all copies and that\nboth the copyright notice and this permission notice appear in\nsupporting documentation.\nTHE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,\nINCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO\nEVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR\nCONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF\nUSE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n- - -\n"; + static const char __pyx_k_Volumes_Drobo_python_netcdf4_py[] = "/Volumes/Drobo/python/netcdf4-python.git/netCDF4/_netCDF4.pyx"; + static const char __pyx_k_assign_vlen_method_only_for_use[] = "_assign_vlen method only for use with VLEN variables"; + static const char __pyx_k_cannot_set__FillValue_attribute[] = "cannot set _FillValue attribute for VLEN or compound variable"; +@@ -2345,7 +2345,7 @@ static PyObject *__pyx_kp_s_; + static PyObject *__pyx_kp_s_0m; + static PyObject *__pyx_kp_s_1; + static PyObject *__pyx_kp_s_1_10; +-static PyObject *__pyx_kp_s_1_2_6; ++static PyObject *__pyx_kp_s_1_2_7; + static PyObject *__pyx_kp_s_4_2_1; + static PyObject *__pyx_kp_s_4_4_0; + static PyObject *__pyx_kp_s_4_4_1; +@@ -79347,7 +79347,7 @@ static struct PyModuleDef __pyx_moduledef = { + PyModuleDef_HEAD_INIT, + #endif + "_netCDF4", +- __pyx_k_Version_1_2_6_Introduction_netc, /* m_doc */ ++ __pyx_k_Version_1_2_7_Introduction_netc, /* m_doc */ + -1, /* m_size */ + __pyx_methods /* m_methods */, + NULL, /* m_reload */ +@@ -79362,7 +79362,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { + {&__pyx_kp_s_0m, __pyx_k_0m, sizeof(__pyx_k_0m), 0, 0, 1, 0}, + {&__pyx_kp_s_1, __pyx_k_1, sizeof(__pyx_k_1), 0, 0, 1, 0}, + {&__pyx_kp_s_1_10, __pyx_k_1_10, sizeof(__pyx_k_1_10), 0, 0, 1, 0}, +- {&__pyx_kp_s_1_2_6, __pyx_k_1_2_6, sizeof(__pyx_k_1_2_6), 0, 0, 1, 0}, ++ {&__pyx_kp_s_1_2_7, __pyx_k_1_2_7, sizeof(__pyx_k_1_2_7), 0, 0, 1, 0}, + {&__pyx_kp_s_4_2_1, __pyx_k_4_2_1, sizeof(__pyx_k_4_2_1), 0, 0, 1, 0}, + {&__pyx_kp_s_4_4_0, __pyx_k_4_4_0, sizeof(__pyx_k_4_4_0), 0, 0, 1, 0}, + {&__pyx_kp_s_4_4_1, __pyx_k_4_4_1, sizeof(__pyx_k_4_4_1), 0, 0, 1, 0}, +@@ -81929,7 +81929,7 @@ PyMODINIT_FUNC PyInit__netCDF4(void) + #endif + /*--- Module creation code ---*/ + #if PY_MAJOR_VERSION < 3 +- __pyx_m = Py_InitModule4("_netCDF4", __pyx_methods, __pyx_k_Version_1_2_6_Introduction_netc, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); ++ __pyx_m = Py_InitModule4("_netCDF4", __pyx_methods, __pyx_k_Version_1_2_7_Introduction_netc, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); + #else + __pyx_m = PyModule_Create(&__pyx_moduledef); + #endif +@@ -82439,11 +82439,11 @@ PyMODINIT_FUNC PyInit__netCDF4(void) + /* "netCDF4/_netCDF4.pyx":939 + * pass + * +- * __version__ = "1.2.6" # <<<<<<<<<<<<<< ++ * __version__ = "1.2.7" # <<<<<<<<<<<<<< + * + * # Initialize numpy + */ +- if (PyDict_SetItem(__pyx_d, __pyx_n_s_version, __pyx_kp_s_1_2_6) < 0) __PYX_ERR(0, 939, __pyx_L1_error) ++ if (PyDict_SetItem(__pyx_d, __pyx_n_s_version, __pyx_kp_s_1_2_7) < 0) __PYX_ERR(0, 939, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":942 + * +@@ -84842,7 +84842,7 @@ PyMODINIT_FUNC PyInit__netCDF4(void) + + /* "netCDF4/_netCDF4.pyx":1 + * """ # <<<<<<<<<<<<<< +- * Version 1.2.6 ++ * Version 1.2.7 + * ------------- + */ + __pyx_t_11 = PyDict_New(); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1, __pyx_L1_error) +diff --git a/netCDF4/_netCDF4.pyx b/netCDF4/_netCDF4.pyx +index 8c382b0..ce2ad84 100644 +--- a/netCDF4/_netCDF4.pyx ++++ b/netCDF4/_netCDF4.pyx +@@ -1,5 +1,5 @@ + """ +-Version 1.2.6 ++Version 1.2.7 + ------------- + - - - + +@@ -936,7 +936,7 @@ except ImportError: + # python3: zip is already python2's itertools.izip + pass + +-__version__ = "1.2.6" ++__version__ = "1.2.7" + + # Initialize numpy + import posixpath +diff --git a/setup.py b/setup.py +index 6c3b0ef..c72e880 100644 +--- a/setup.py ++++ b/setup.py +@@ -449,7 +449,7 @@ def getnetcdfvers(libdirs): + + setup(name = "netCDF4", + cmdclass = cmdclass, +- version = "1.2.6", ++ version = "1.2.7", + long_description = "netCDF version 4 has many features not found in earlier versions of the library, such as hierarchical groups, zlib compression, multiple unlimited dimensions, and new data types. It is implemented on top of HDF5. This module implements most of the new features, and can read and write netCDF files compatible with older versions of the library. The API is modelled after Scientific.IO.NetCDF, and should be familiar to users of that module.\n\nThis project has a `Subversion repository `_ where you may access the most up-to-date source.", + author = "Jeff Whitaker", + author_email = "jeffrey.s.whitaker@noaa.gov", + +From 46c0774b5d0a268e46c93af9df8954e7b73419a2 Mon Sep 17 00:00:00 2001 +From: Jeff Whitaker +Date: Tue, 20 Dec 2016 11:09:11 -0700 +Subject: [PATCH 04/14] new test + +--- + test/tst_masked5.py | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 54 insertions(+) + create mode 100755 test/tst_masked5.py + +diff --git a/test/tst_masked5.py b/test/tst_masked5.py +new file mode 100755 +index 0000000..8a161fb +--- /dev/null ++++ b/test/tst_masked5.py +@@ -0,0 +1,54 @@ ++import unittest ++import os ++import tempfile ++ ++import numpy as np ++from numpy import ma ++from numpy.testing import assert_array_equal ++from netCDF4 import Dataset ++ ++# Test use of vector of missing values. ++ ++class VectorMissingValues(unittest.TestCase): ++ ++ def setUp(self): ++ ++ self.testfile = tempfile.NamedTemporaryFile(suffix='.nc', delete=False).name ++ ++ self.missing_values = [-999,999,0] ++ self.v = np.array([-999,0,1,2,3,999], dtype = "i2") ++ self.v_ma = ma.array([-1,0,1,2,3,4], dtype = "i2", \ ++ mask = [True, True, False, False, False, True]) ++ ++ f = Dataset(self.testfile, 'w') ++ d = f.createDimension('x',6) ++ v = f.createVariable('v', "i2", 'x') ++ ++ v.missing_value = self.missing_values ++ v[:] = self.v ++ ++ f.close() ++ ++ ++ def tearDown(self): ++ ++ os.remove(self.testfile) ++ ++ ++ def test_scaled(self): ++ ++ """Testing auto-conversion of masked arrays""" ++ ++ f = Dataset(self.testfile) ++ v = f.variables["v"] ++ self.assert_(isinstance(v[:], ma.core.MaskedArray)) ++ assert_array_equal(v[:], self.v_ma) ++ v.set_auto_mask(False) ++ self.assert_(isinstance(v[:], np.ndarray)) ++ assert_array_equal(v[:], self.v) ++ ++ f.close() ++ ++ ++if __name__ == '__main__': ++ unittest.main() + +From e113b010a1cab1a1696fce78ecb39ff084ceb893 Mon Sep 17 00:00:00 2001 +From: Jeff Whitaker +Date: Tue, 20 Dec 2016 11:12:10 -0700 +Subject: [PATCH 05/14] update + +--- + Changelog | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/Changelog b/Changelog +index 23876d5..06bb6ff 100644 +--- a/Changelog ++++ b/Changelog +@@ -1,7 +1,9 @@ + version 1.2.7 (not yet released) + ================================= + * fix for issue #624 (error in conversion to masked array when variableslice +- returns a scalar). ++ returns a scalar). This is a regression introduced in 1.2.5 associated ++ with support for vector missing_values. Test (tst_masked5.py) added for ++ vector missing_values. + + version 1.2.6 (tag v1.2.6rel) + ============================== + +From 8ae4a0677f7a2d1a57b3f89b1ef7d3bcc0aa2a7c Mon Sep 17 00:00:00 2001 +From: Jeff Whitaker +Date: Tue, 20 Dec 2016 11:13:52 -0700 +Subject: [PATCH 06/14] update + +--- + test/tst_masked5.py | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/test/tst_masked5.py b/test/tst_masked5.py +index 8a161fb..3b1ee84 100755 +--- a/test/tst_masked5.py ++++ b/test/tst_masked5.py +@@ -43,6 +43,7 @@ def test_scaled(self): + v = f.variables["v"] + self.assert_(isinstance(v[:], ma.core.MaskedArray)) + assert_array_equal(v[:], self.v_ma) ++ assert_array_equal(v[2],self.v[2]) # issue #624. + v.set_auto_mask(False) + self.assert_(isinstance(v[:], np.ndarray)) + assert_array_equal(v[:], self.v) + +From 1bff758c6adbc7541cff1eea50c2815f943ebdb7 Mon Sep 17 00:00:00 2001 +From: Jeff Whitaker +Date: Tue, 20 Dec 2016 11:16:42 -0700 +Subject: [PATCH 07/14] fix typo + +--- + Changelog | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Changelog b/Changelog +index 06bb6ff..c786805 100644 +--- a/Changelog ++++ b/Changelog +@@ -1,6 +1,6 @@ + version 1.2.7 (not yet released) + ================================= +- * fix for issue #624 (error in conversion to masked array when variableslice ++ * fix for issue #624 (error in conversion to masked array when variable slice + returns a scalar). This is a regression introduced in 1.2.5 associated + with support for vector missing_values. Test (tst_masked5.py) added for + vector missing_values. + +From a226bc9f43065b6eb605d0bf061c116dfbd68a09 Mon Sep 17 00:00:00 2001 +From: Jeffrey Whitaker +Date: Wed, 21 Dec 2016 10:34:34 -0700 +Subject: [PATCH 08/14] fix for python 3.6 (issue #626) + +--- + Changelog | 2 + + netCDF4/_netCDF4.c | 14224 +++++++++++++++++-------------------------------- + netCDF4/_netCDF4.pyx | 2 +- + 3 files changed, 4862 insertions(+), 9366 deletions(-) + +diff --git a/Changelog b/Changelog +index c786805..27482ab 100644 +--- a/Changelog ++++ b/Changelog +@@ -4,6 +4,8 @@ + returns a scalar). This is a regression introduced in 1.2.5 associated + with support for vector missing_values. Test (tst_masked5.py) added for + vector missing_values. ++ * fix for python 3.6 compatibility (error retrieving character _FillValue attribute, ++ issue #626). + + version 1.2.6 (tag v1.2.6rel) + ============================== +diff --git a/netCDF4/_netCDF4.c b/netCDF4/_netCDF4.c +index 128cfc2..fb7c560 100644 +--- a/netCDF4/_netCDF4.c ++++ b/netCDF4/_netCDF4.c +@@ -1,4 +1,4 @@ +-/* Generated by Cython 0.25.2 */ ++/* Generated by Cython 0.24 */ + + #define PY_SSIZE_T_CLEAN + #include "Python.h" +@@ -7,7 +7,7 @@ + #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03020000) + #error Cython requires Python 2.6+ or Python 3.2+. + #else +-#define CYTHON_ABI "0_25_2" ++#define CYTHON_ABI "0_24" + #include + #ifndef offsetof + #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) +@@ -29,11 +29,6 @@ + #ifndef DL_EXPORT + #define DL_EXPORT(t) t + #endif +-#ifndef HAVE_LONG_LONG +- #if PY_VERSION_HEX >= 0x03030000 || (PY_MAJOR_VERSION == 2 && PY_VERSION_HEX >= 0x02070000) +- #define HAVE_LONG_LONG +- #endif +-#endif + #ifndef PY_LONG_LONG + #define PY_LONG_LONG LONG_LONG + #endif +@@ -42,110 +37,13 @@ + #endif + #ifdef PYPY_VERSION + #define CYTHON_COMPILING_IN_PYPY 1 +- #define CYTHON_COMPILING_IN_PYSTON 0 + #define CYTHON_COMPILING_IN_CPYTHON 0 +- #undef CYTHON_USE_TYPE_SLOTS +- #define CYTHON_USE_TYPE_SLOTS 0 +- #undef CYTHON_USE_ASYNC_SLOTS +- #define CYTHON_USE_ASYNC_SLOTS 0 +- #undef CYTHON_USE_PYLIST_INTERNALS +- #define CYTHON_USE_PYLIST_INTERNALS 0 +- #undef CYTHON_USE_UNICODE_INTERNALS +- #define CYTHON_USE_UNICODE_INTERNALS 0 +- #undef CYTHON_USE_UNICODE_WRITER +- #define CYTHON_USE_UNICODE_WRITER 0 +- #undef CYTHON_USE_PYLONG_INTERNALS +- #define CYTHON_USE_PYLONG_INTERNALS 0 +- #undef CYTHON_AVOID_BORROWED_REFS +- #define CYTHON_AVOID_BORROWED_REFS 1 +- #undef CYTHON_ASSUME_SAFE_MACROS +- #define CYTHON_ASSUME_SAFE_MACROS 0 +- #undef CYTHON_UNPACK_METHODS +- #define CYTHON_UNPACK_METHODS 0 +- #undef CYTHON_FAST_THREAD_STATE +- #define CYTHON_FAST_THREAD_STATE 0 +- #undef CYTHON_FAST_PYCALL +- #define CYTHON_FAST_PYCALL 0 +-#elif defined(PYSTON_VERSION) +- #define CYTHON_COMPILING_IN_PYPY 0 +- #define CYTHON_COMPILING_IN_PYSTON 1 +- #define CYTHON_COMPILING_IN_CPYTHON 0 +- #ifndef CYTHON_USE_TYPE_SLOTS +- #define CYTHON_USE_TYPE_SLOTS 1 +- #endif +- #undef CYTHON_USE_ASYNC_SLOTS +- #define CYTHON_USE_ASYNC_SLOTS 0 +- #undef CYTHON_USE_PYLIST_INTERNALS +- #define CYTHON_USE_PYLIST_INTERNALS 0 +- #ifndef CYTHON_USE_UNICODE_INTERNALS +- #define CYTHON_USE_UNICODE_INTERNALS 1 +- #endif +- #undef CYTHON_USE_UNICODE_WRITER +- #define CYTHON_USE_UNICODE_WRITER 0 +- #undef CYTHON_USE_PYLONG_INTERNALS +- #define CYTHON_USE_PYLONG_INTERNALS 0 +- #ifndef CYTHON_AVOID_BORROWED_REFS +- #define CYTHON_AVOID_BORROWED_REFS 0 +- #endif +- #ifndef CYTHON_ASSUME_SAFE_MACROS +- #define CYTHON_ASSUME_SAFE_MACROS 1 +- #endif +- #ifndef CYTHON_UNPACK_METHODS +- #define CYTHON_UNPACK_METHODS 1 +- #endif +- #undef CYTHON_FAST_THREAD_STATE +- #define CYTHON_FAST_THREAD_STATE 0 +- #undef CYTHON_FAST_PYCALL +- #define CYTHON_FAST_PYCALL 0 + #else + #define CYTHON_COMPILING_IN_PYPY 0 +- #define CYTHON_COMPILING_IN_PYSTON 0 + #define CYTHON_COMPILING_IN_CPYTHON 1 +- #ifndef CYTHON_USE_TYPE_SLOTS +- #define CYTHON_USE_TYPE_SLOTS 1 +- #endif +- #if PY_MAJOR_VERSION < 3 +- #undef CYTHON_USE_ASYNC_SLOTS +- #define CYTHON_USE_ASYNC_SLOTS 0 +- #elif !defined(CYTHON_USE_ASYNC_SLOTS) +- #define CYTHON_USE_ASYNC_SLOTS 1 +- #endif +- #if PY_VERSION_HEX < 0x02070000 +- #undef CYTHON_USE_PYLONG_INTERNALS +- #define CYTHON_USE_PYLONG_INTERNALS 0 +- #elif !defined(CYTHON_USE_PYLONG_INTERNALS) +- #define CYTHON_USE_PYLONG_INTERNALS 1 +- #endif +- #ifndef CYTHON_USE_PYLIST_INTERNALS +- #define CYTHON_USE_PYLIST_INTERNALS 1 +- #endif +- #ifndef CYTHON_USE_UNICODE_INTERNALS +- #define CYTHON_USE_UNICODE_INTERNALS 1 +- #endif +- #if PY_VERSION_HEX < 0x030300F0 +- #undef CYTHON_USE_UNICODE_WRITER +- #define CYTHON_USE_UNICODE_WRITER 0 +- #elif !defined(CYTHON_USE_UNICODE_WRITER) +- #define CYTHON_USE_UNICODE_WRITER 1 +- #endif +- #ifndef CYTHON_AVOID_BORROWED_REFS +- #define CYTHON_AVOID_BORROWED_REFS 0 +- #endif +- #ifndef CYTHON_ASSUME_SAFE_MACROS +- #define CYTHON_ASSUME_SAFE_MACROS 1 +- #endif +- #ifndef CYTHON_UNPACK_METHODS +- #define CYTHON_UNPACK_METHODS 1 +- #endif +- #ifndef CYTHON_FAST_THREAD_STATE +- #define CYTHON_FAST_THREAD_STATE 1 +- #endif +- #ifndef CYTHON_FAST_PYCALL +- #define CYTHON_FAST_PYCALL 1 +- #endif + #endif +-#if !defined(CYTHON_FAST_PYCCALL) +-#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) ++#if !defined(CYTHON_USE_PYLONG_INTERNALS) && CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x02070000 ++ #define CYTHON_USE_PYLONG_INTERNALS 1 + #endif + #if CYTHON_USE_PYLONG_INTERNALS + #include "longintrepr.h" +@@ -181,44 +79,24 @@ + #ifndef Py_TPFLAGS_HAVE_FINALIZE + #define Py_TPFLAGS_HAVE_FINALIZE 0 + #endif +-#ifndef METH_FASTCALL +- #define METH_FASTCALL 0x80 +- typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject **args, +- Py_ssize_t nargs, PyObject *kwnames); +-#else +- #define __Pyx_PyCFunctionFast _PyCFunctionFast +-#endif +-#if CYTHON_FAST_PYCCALL +-#define __Pyx_PyFastCFunction_Check(func)\ +- ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST))))) +-#else +-#define __Pyx_PyFastCFunction_Check(func) 0 +-#endif + #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) + #define CYTHON_PEP393_ENABLED 1 + #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ + 0 : _PyUnicode_Ready((PyObject *)(op))) + #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) + #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) +- #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) + #define __Pyx_PyUnicode_KIND(u) PyUnicode_KIND(u) + #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) + #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) +- #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) + #else + #define CYTHON_PEP393_ENABLED 0 +- #define PyUnicode_1BYTE_KIND 1 +- #define PyUnicode_2BYTE_KIND 2 +- #define PyUnicode_4BYTE_KIND 4 + #define __Pyx_PyUnicode_READY(op) (0) + #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) + #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) +- #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111) + #define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE)) + #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u)) + #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) +- #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = ch) + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u)) + #endif + #if CYTHON_COMPILING_IN_PYPY +@@ -232,9 +110,6 @@ + #if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains) + #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) + #endif +-#if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check) +- #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type) +-#endif + #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) + #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) + #endif +@@ -243,13 +118,6 @@ + #define PyObject_Free(p) PyMem_Free(p) + #define PyObject_Realloc(p) PyMem_Realloc(p) + #endif +-#if CYTHON_COMPILING_IN_PYSTON +- #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co) +- #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno) +-#else +- #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) +- #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) +-#endif + #define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) + #define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) + #if PY_MAJOR_VERSION >= 3 +@@ -278,7 +146,6 @@ + #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) + #endif + #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) +-#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) + #if PY_MAJOR_VERSION >= 3 + #define PyIntObject PyLongObject + #define PyInt_Type PyLong_Type +@@ -317,20 +184,18 @@ + #else + #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) + #endif +-#if CYTHON_USE_ASYNC_SLOTS +- #if PY_VERSION_HEX >= 0x030500B1 +- #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods +- #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) +- #else +- typedef struct { +- unaryfunc am_await; +- unaryfunc am_aiter; +- unaryfunc am_anext; +- } __Pyx_PyAsyncMethodsStruct; +- #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) +- #endif ++#if PY_VERSION_HEX >= 0x030500B1 ++#define __Pyx_PyAsyncMethodsStruct PyAsyncMethods ++#define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) ++#elif CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 ++typedef struct { ++ unaryfunc am_await; ++ unaryfunc am_aiter; ++ unaryfunc am_anext; ++} __Pyx_PyAsyncMethodsStruct; ++#define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) + #else +- #define __Pyx_PyType_AsAsync(obj) NULL ++#define __Pyx_PyType_AsAsync(obj) NULL + #endif + #ifndef CYTHON_RESTRICT + #if defined(__GNUC__) +@@ -343,39 +208,10 @@ + #define CYTHON_RESTRICT + #endif + #endif +-#ifndef CYTHON_UNUSED +-# if defined(__GNUC__) +-# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +-# define CYTHON_UNUSED __attribute__ ((__unused__)) +-# else +-# define CYTHON_UNUSED +-# endif +-# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) +-# define CYTHON_UNUSED __attribute__ ((__unused__)) +-# else +-# define CYTHON_UNUSED +-# endif +-#endif +-#ifndef CYTHON_MAYBE_UNUSED_VAR +-# if defined(__cplusplus) +- template void CYTHON_MAYBE_UNUSED_VAR( const T& ) { } +-# else +-# define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x) +-# endif +-#endif +-#ifndef CYTHON_NCP_UNUSED +-# if CYTHON_COMPILING_IN_CPYTHON +-# define CYTHON_NCP_UNUSED +-# else +-# define CYTHON_NCP_UNUSED CYTHON_UNUSED +-# endif +-#endif + #define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) + + #ifndef CYTHON_INLINE +- #if defined(__clang__) +- #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) +- #elif defined(__GNUC__) ++ #if defined(__GNUC__) + #define CYTHON_INLINE __inline__ + #elif defined(_MSC_VER) + #define CYTHON_INLINE __inline +@@ -399,11 +235,6 @@ static CYTHON_INLINE float __PYX_NAN() { + return value; + } + #endif +-#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL) +-#define __Pyx_truncl trunc +-#else +-#define __Pyx_truncl truncl +-#endif + + + #define __PYX_ERR(f_index, lineno, Ln_error) \ +@@ -429,8 +260,7 @@ static CYTHON_INLINE float __PYX_NAN() { + + #define __PYX_HAVE__netCDF4___netCDF4 + #define __PYX_HAVE_API__netCDF4___netCDF4 +-#include +-#include ++#include "string.h" + #include "stdlib.h" + #include "H5public.h" + #include "netcdf.h" +@@ -443,6 +273,26 @@ static CYTHON_INLINE float __PYX_NAN() { + #define CYTHON_WITHOUT_ASSERTIONS + #endif + ++#ifndef CYTHON_UNUSED ++# if defined(__GNUC__) ++# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) ++# define CYTHON_UNUSED __attribute__ ((__unused__)) ++# else ++# define CYTHON_UNUSED ++# endif ++# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) ++# define CYTHON_UNUSED __attribute__ ((__unused__)) ++# else ++# define CYTHON_UNUSED ++# endif ++#endif ++#ifndef CYTHON_NCP_UNUSED ++# if CYTHON_COMPILING_IN_CPYTHON ++# define CYTHON_NCP_UNUSED ++# else ++# define CYTHON_NCP_UNUSED CYTHON_UNUSED ++# endif ++#endif + typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; + const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; + +@@ -520,7 +370,7 @@ static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); + static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); + static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); + static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); +-#if CYTHON_ASSUME_SAFE_MACROS ++#if CYTHON_COMPILING_IN_CPYTHON + #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) + #else + #define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) +@@ -927,7 +777,7 @@ struct __pyx_obj_7netCDF4_8_netCDF4___pyx_scope_struct__genexpr { + #define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) + + /* PyObjectGetAttrStr.proto */ +-#if CYTHON_USE_TYPE_SLOTS ++#if CYTHON_COMPILING_IN_CPYTHON + static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { + PyTypeObject* tp = Py_TYPE(obj); + if (likely(tp->tp_getattro)) +@@ -948,17 +798,6 @@ static PyObject *__Pyx_GetBuiltinName(PyObject *name); + /* IterFinish.proto */ + static CYTHON_INLINE int __Pyx_IterFinish(void); + +-/* PyFunctionFastCall.proto */ +-#if CYTHON_FAST_PYCALL +-#define __Pyx_PyFunction_FastCall(func, args, nargs)\ +- __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) +-#if 1 || PY_VERSION_HEX < 0x030600B1 +-static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, int nargs, PyObject *kwargs); +-#else +-#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) +-#endif +-#endif +- + /* PyObjectCall.proto */ + #if CYTHON_COMPILING_IN_CPYTHON + static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); +@@ -978,13 +817,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func); + #define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL) + #endif + +-/* PyCFunctionFastCall.proto */ +-#if CYTHON_FAST_PYCCALL +-static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); +-#else +-#define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) +-#endif +- + /* PyObjectCallOneArg.proto */ + static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); + +@@ -1029,7 +861,7 @@ static CYTHON_INLINE PyObject* __Pyx_decode_c_string( + PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)); + + /* PyThreadStateGet.proto */ +-#if CYTHON_FAST_THREAD_STATE ++#if CYTHON_COMPILING_IN_CPYTHON + #define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; + #define __Pyx_PyThreadState_assign __pyx_tstate = PyThreadState_GET(); + #else +@@ -1038,7 +870,7 @@ static CYTHON_INLINE PyObject* __Pyx_decode_c_string( + #endif + + /* PyErrFetchRestore.proto */ +-#if CYTHON_FAST_THREAD_STATE ++#if CYTHON_COMPILING_IN_CPYTHON + #define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) + #define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) + #define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) +@@ -1056,7 +888,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject + static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); + + /* ListAppend.proto */ +-#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS ++#if CYTHON_COMPILING_IN_CPYTHON + static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) { + PyListObject* L = (PyListObject*) list; + Py_ssize_t len = Py_SIZE(list); +@@ -1089,7 +921,7 @@ static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int + #endif + + /* ListCompAppend.proto */ +-#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS ++#if CYTHON_COMPILING_IN_CPYTHON + static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) { + PyListObject* L = (PyListObject*) list; + Py_ssize_t len = Py_SIZE(list); +@@ -1106,7 +938,7 @@ static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) { + #endif + + /* GetException.proto */ +-#if CYTHON_FAST_THREAD_STATE ++#if CYTHON_COMPILING_IN_CPYTHON + #define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb) + static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); + #else +@@ -1114,7 +946,7 @@ static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); + #endif + + /* SwapException.proto */ +-#if CYTHON_FAST_THREAD_STATE ++#if CYTHON_COMPILING_IN_CPYTHON + #define __Pyx_ExceptionSwap(type, value, tb) __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb) + static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); + #else +@@ -1122,7 +954,7 @@ static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, + #endif + + /* SaveResetException.proto */ +-#if CYTHON_FAST_THREAD_STATE ++#if CYTHON_COMPILING_IN_CPYTHON + #define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb) + static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); + #define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb) +@@ -1155,7 +987,7 @@ static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, + int is_list, int wraparound, int boundscheck); + + /* PyErrExceptionMatches.proto */ +-#if CYTHON_FAST_THREAD_STATE ++#if CYTHON_COMPILING_IN_CPYTHON + #define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err) + static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err); + #else +@@ -1226,16 +1058,14 @@ static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObje + ((likely((cfunc)->func)) ?\ + (likely((cfunc)->flag == METH_NOARGS) ? (*((cfunc)->func))(self, NULL) :\ + (likely((cfunc)->flag == (METH_VARARGS | METH_KEYWORDS)) ? ((*(PyCFunctionWithKeywords)(cfunc)->func)(self, __pyx_empty_tuple, NULL)) :\ +- ((cfunc)->flag == METH_VARARGS ? (*((cfunc)->func))(self, __pyx_empty_tuple) :\ +- (PY_VERSION_HEX >= 0x030600B1 && (cfunc)->flag == METH_FASTCALL ? (*(__Pyx_PyCFunctionFast)(cfunc)->func)(self, &PyTuple_GET_ITEM(__pyx_empty_tuple, 0), 0, NULL) :\ +- __Pyx__CallUnboundCMethod0(cfunc, self))))) :\ ++ ((cfunc)->flag == METH_VARARGS ? (*((cfunc)->func))(self, __pyx_empty_tuple) : __Pyx__CallUnboundCMethod0(cfunc, self)))) :\ + __Pyx__CallUnboundCMethod0(cfunc, self)) + #else + #define __Pyx_CallUnboundCMethod0(cfunc, self) __Pyx__CallUnboundCMethod0(cfunc, self) + #endif + + /* CallableCheck.proto */ +-#if CYTHON_USE_TYPE_SLOTS && PY_MAJOR_VERSION >= 3 ++#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 + #define __Pyx_PyCallable_Check(obj) ((obj)->ob_type->tp_call != NULL) + #else + #define __Pyx_PyCallable_Check(obj) PyCallable_Check(obj) +@@ -1278,7 +1108,7 @@ static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { + static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname); + + /* PyObjectSetAttrStr.proto */ +-#if CYTHON_USE_TYPE_SLOTS ++#if CYTHON_COMPILING_IN_CPYTHON + #define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o,n,NULL) + static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) { + PyTypeObject* tp = Py_TYPE(obj); +@@ -1296,7 +1126,7 @@ static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr + #endif + + /* PyIntBinop.proto */ +-#if !CYTHON_COMPILING_IN_PYPY ++#if CYTHON_COMPILING_IN_CPYTHON + static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace); + #else + #define __Pyx_PyInt_AddObjC(op1, op2, intval, inplace)\ +@@ -1304,7 +1134,7 @@ static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, + #endif + + /* PyIntBinop.proto */ +-#if !CYTHON_COMPILING_IN_PYPY ++#if CYTHON_COMPILING_IN_CPYTHON + static PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, long intval, int inplace); + #else + #define __Pyx_PyInt_EqObjC(op1, op2, intval, inplace)\ +@@ -1347,7 +1177,7 @@ static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, in + const char *name, int exact); + + /* PyIntBinop.proto */ +-#if !CYTHON_COMPILING_IN_PYPY ++#if CYTHON_COMPILING_IN_CPYTHON + static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, long intval, int inplace); + #else + #define __Pyx_PyInt_SubtractObjC(op1, op2, intval, inplace)\ +@@ -1361,7 +1191,7 @@ static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name + static CYTHON_INLINE int __Pyx_PyObject_Append(PyObject* L, PyObject* x); + + /* PyFloatBinop.proto */ +-#if !CYTHON_COMPILING_IN_PYPY ++#if CYTHON_COMPILING_IN_CPYTHON + static PyObject* __Pyx_PyFloat_DivideObjC(PyObject *op1, PyObject *op2, double floatval, int inplace); + #else + #define __Pyx_PyFloat_DivideObjC(op1, op2, floatval, inplace)\ +@@ -1533,13 +1363,11 @@ typedef struct { + PyObject *yieldfrom; + PyObject *gi_name; + PyObject *gi_qualname; +- PyObject *gi_modulename; + int resume_label; + char is_running; + } __pyx_CoroutineObject; +-static __pyx_CoroutineObject *__Pyx__Coroutine_New( +- PyTypeObject *type, __pyx_coroutine_body_t body, PyObject *closure, +- PyObject *name, PyObject *qualname, PyObject *module_name); ++static __pyx_CoroutineObject *__Pyx__Coroutine_New(PyTypeObject *type, __pyx_coroutine_body_t body, ++ PyObject *closure, PyObject *name, PyObject *qualname); + static int __Pyx_Coroutine_clear(PyObject *self); + #if 1 || PY_VERSION_HEX < 0x030300B0 + static int __Pyx_PyGen_FetchStopIterationValue(PyObject **pvalue); +@@ -1557,8 +1385,8 @@ static int __Pyx_patch_abc(void); + #define __Pyx_Generator_USED + static PyTypeObject *__pyx_GeneratorType = 0; + #define __Pyx_Generator_CheckExact(obj) (Py_TYPE(obj) == __pyx_GeneratorType) +-#define __Pyx_Generator_New(body, closure, name, qualname, module_name)\ +- __Pyx__Coroutine_New(__pyx_GeneratorType, body, closure, name, qualname, module_name) ++#define __Pyx_Generator_New(body, closure, name, qualname)\ ++ __Pyx__Coroutine_New(__pyx_GeneratorType, body, closure, name, qualname) + static PyObject *__Pyx_Generator_Next(PyObject *self); + static int __pyx_Generator_init(void); + +@@ -2243,9 +2071,9 @@ static const char __pyx_k_Class_for_reading_multi_file_ne[] = "\nClass for readi + static const char __pyx_k_Class_providing_an_interface_to[] = "\nClass providing an interface to a MFDataset time Variable by imposing a unique common\ntime unit to all files. \n\nExample usage (See `netCDF4.MFTime.__init__` for more details):\n\n :::python\n >>> import numpy\n >>> f1 = Dataset(\"mftest_1.nc\",\"w\", format=\"NETCDF4_CLASSIC\")\n >>> f2 = Dataset(\"mftest_2.nc\",\"w\", format=\"NETCDF4_CLASSIC\")\n >>> f1.createDimension(\"time\",None)\n >>> f2.createDimension(\"time\",None)\n >>> t1 = f1.createVariable(\"time\",\"i\",(\"time\",))\n >>> t2 = f2.createVariable(\"time\",\"i\",(\"time\",))\n >>> t1.units = \"days since 2000-01-01\"\n >>> t2.units = \"days since 2000-02-01\"\n >>> t1.calendar = \"standard\"\n >>> t2.calendar = \"standard\"\n >>> t1[:] = numpy.arange(31)\n >>> t2[:] = numpy.arange(30)\n >>> f1.close()\n >>> f2.close()\n >>> # Read the two files in at once, in one Dataset.\n >>> f = MFDataset(\"mftest*nc\")\n >>> t = f.variables[\"time\"]\n >>> print t.units\n days since 2000-01-01\n >>> print t[32] # The value written in the file, inconsistent with the MF time units.\n 1\n >>> T = MFTime(t)\n >>> print T[32]\n 32\n "; + static const char __pyx_k_FillValue_attribute_must_be_set[] = "_FillValue attribute must be set when variable is "; + static const char __pyx_k_The_vltypes_dictionary_maps_the[] = "The `vltypes` dictionary maps the names of\n variable-length types defined for the `netCDF4.Group` or `netCDF4.Dataset` to instances of the\n `netCDF4.VLType` class."; ++static const char __pyx_k_Users_jswhit_python_netcdf4_pyt[] = "/Users/jswhit/python/netcdf4-python/netCDF4/_netCDF4.pyx"; + static const char __pyx_k_Variable_object_no_longer_valid[] = "Variable object no longer valid"; + static const char __pyx_k_Version_1_2_7_Introduction_netc[] = "\nVersion 1.2.7\n-------------\n- - - \n\nIntroduction\n============\n\nnetcdf4-python is a Python interface to the netCDF C library. \n\n[netCDF](http://www.unidata.ucar.edu/software/netcdf/) version 4 has many features\nnot found in earlier versions of the library and is implemented on top of\n[HDF5](http://www.hdfgroup.org/HDF5). This module can read and write\nfiles in both the new netCDF 4 and the old netCDF 3 format, and can create\nfiles that are readable by HDF5 clients. The API modelled after\n[Scientific.IO.NetCDF](http://dirac.cnrs-orleans.fr/ScientificPython/),\nand should be familiar to users of that module.\n\nMost new features of netCDF 4 are implemented, such as multiple\nunlimited dimensions, groups and zlib data compression. All the new\nnumeric data types (such as 64 bit and unsigned integer types) are\nimplemented. Compound (struct), variable length (vlen) and\nenumerated (enum) data types are supported, but not the opaque data type.\nMixtures of compound, vlen and enum data types (such as\ncompound types containing enums, or vlens containing compound\ntypes) are not supported.\n\nDownload\n========\n\n - Latest bleeding-edge code from the \n [github repository](http://github.com/Unidata/netcdf4-python).\n - Latest [releases](https://pypi.python.org/pypi/netCDF4)\n (source code and windows installers).\n\nRequires\n========\n\n - Python 2.7 or later (python 3 works too).\n - [numpy array module](http://numpy.scipy.org), version 1.7.0 or later.\n - [Cython](http://cython.org), version 0.19 or later, is optional - if it is installed setup.py will\n use it to recompile the Cython source code into C, using conditional compilation\n to enable features in the netCDF API that have been added since version 4.1.1. If\n Cython is not installed, these features (such as the ability to rename Group objects)\n will be disabled to preserve backward compatibility with older versions of the netCDF\n library.\n - The HDF5 C library version 1.8.4-p""atch1 or higher (1.8.x recommended)\n from [](ftp://ftp.hdfgroup.org/HDF5/current/src).\n ***netCDF version 4.4.1 or higher is recommended if using HDF5 1.10.x -\n otherwise resulting files may be unreadable by clients using earlier\n versions of HDF5. For netCDF < 4.4.1, HDF5 version 1.8.x is recommended.***\n Be sure to build with `--enable-hl --enable-shared`.\n - [Libcurl](http://curl.haxx.se/libcurl), if you want\n [OPeNDAP](http://opendap.org) support.\n - [HDF4](http://www.hdfgroup.org/products/hdf4), if you want\n to be able to read HDF4 \"Scientific Dataset\" (SD) files.\n - The netCDF-4 C library from the [github releases\n page](https://github.com/Unidata/netcdf-c/releases). \n Version 4.1.1 or higher is required (4.2 or higher recommended).\n Be sure to build with `--enable-netcdf-4 --enable-shared`, and set\n `CPPFLAGS=\"-I $HDF5_DIR/include\"` and `LDFLAGS=\"-L $HDF5_DIR/lib\"`,\n where `$HDF5_DIR` is the directory where HDF5 was installed.\n If you want [OPeNDAP](http://opendap.org) support, add `--enable-dap`.\n If you want HDF4 SD support, add `--enable-hdf4` and add\n the location of the HDF4 headers and library to `$CPPFLAGS` and `$LDFLAGS`.\n\n\nInstall\n=======\n\n - install the requisite python modules and C libraries (see above). It's\n easiest if all the C libs are built as shared libraries.\n - By default, the utility `nc-config`, installed with netcdf 4.1.2 or higher,\n will be run used to determine where all the dependencies live.\n - If `nc-config` is not in your default `$PATH`, rename the\n file `setup.cfg.template` to `setup.cfg`, then edit\n in a text editor (follow the instructions in the comments).\n In addition to specifying the path to `nc-config`,\n you can manually set the paths to all the libraries and their include files\n (in case `nc-config` does not do the right thing).\n - run `python setup.py build`, then `python setup.py install` (as root if\n necessary).\n - [`pip install`](https://pip.pypa.io/en/latest/reference/pip""_install.html) can\n also be used, with library paths set with environment variables. To make\n this work, the `USE_SETUPCFG` environment variable must be used to tell \n setup.py not to use `setup.cfg`.\n For example, `USE_SETUPCFG=0 HDF5_INCDIR=/usr/include/hdf5/serial\n HDF5_LIBDIR=/usr/lib/x86_64-linux-gnu/hdf5/serial pip install` has been\n shown to work on an Ubuntu/Debian linux system. Similarly, environment variables\n (all capitalized) can be used to set the include and library paths for\n `hdf5`, `netCDF4`, `hdf4`, `szip`, `jpeg`, `curl` and `zlib`. If the\n libraries are installed in standard places (e.g. `/usr` or `/usr/local`), \n the environment variables do not need to be set.\n - run the tests in the 'test' directory by running `python run_all.py`.\n\nTutorial\n========\n\n1. [Creating/Opening/Closing a netCDF file.](#section1)\n2. [Groups in a netCDF file.](#section2)\n3. [Dimensions in a netCDF file.](#section3)\n4. [Variables in a netCDF file.](#section4)\n5. [Attributes in a netCDF file.](#section5)\n6. [Writing data to and retrieving data from a netCDF variable.](#section6)\n7. [Dealing with time coordinates.](#section7)\n8. [Reading data from a multi-file netCDF dataset.](#section8)\n9. [Efficient compression of netCDF variables.](#section9)\n10. [Beyond homogeneous arrays of a fixed type - compound data types.](#section10)\n11. [Variable-length (vlen) data types.](#section11)\n12. [Enum data type.](#section12)\n\n\n##
1) Creating/Opening/Closing a netCDF file.\n\nTo create a netCDF file from python, you simply call the `netCDF4.Dataset`\nconstructor. This is also the method used to open an existing netCDF\nfile. If the file is open for write access (`mode='w', 'r+'` or `'a'`), you may\nwrite any type of data including new dimensions, groups, variables and\nattributes. netCDF files come in five flavors (`NETCDF3_CLASSIC,\nNETCDF3_64BIT_OFFSET, NETCDF3_64BIT_DATA, NETCDF4_CLASSIC`, and `NETCDF4`). \n`NETC""DF3_CLASSIC` was the original netcdf binary format, and was limited \nto file sizes less than 2 Gb. `NETCDF3_64BIT_OFFSET` was introduced\nin version 3.6.0 of the library, and extended the original binary format\nto allow for file sizes greater than 2 Gb. \n`NETCDF3_64BIT_DATA` is a new format that requires version 4.4.0 of\nthe C library - it extends the `NETCDF3_64BIT_OFFSET` binary format to\nallow for unsigned/64 bit integer data types and 64-bit dimension sizes.\n`NETCDF3_64BIT` is an alias for `NETCDF3_64BIT_OFFSET`.\n`NETCDF4_CLASSIC` files use the version 4 disk format (HDF5), but omits features\nnot found in the version 3 API. They can be read by netCDF 3 clients\nonly if they have been relinked against the netCDF 4 library. They can\nalso be read by HDF5 clients. `NETCDF4` files use the version 4 disk\nformat (HDF5) and use the new features of the version 4 API. The\n`netCDF4` module can read and write files in any of these formats. When\ncreating a new file, the format may be specified using the `format`\nkeyword in the `Dataset` constructor. The default format is\n`NETCDF4`. To see how a given file is formatted, you can examine the\n`data_model` attribute. Closing the netCDF file is\naccomplished via the `netCDF4.Dataset.close` method of the `netCDF4.Dataset`\ninstance.\n\nHere's an example:\n\n :::python\n >>> from netCDF4 import Dataset\n >>> rootgrp = Dataset(\"test.nc\", \"w\", format=\"NETCDF4\")\n >>> print rootgrp.data_model\n NETCDF4\n >>> rootgrp.close()\n\nRemote [OPeNDAP](http://opendap.org)-hosted datasets can be accessed for\nreading over http if a URL is provided to the `netCDF4.Dataset` constructor instead of a\nfilename. However, this requires that the netCDF library be built with\nOPenDAP support, via the `--enable-dap` configure option (added in\nversion 4.0.1).\n\n\n##
2) Groups in a netCDF file.\n\nnetCDF version 4 added support for organizing data in hierarchical\ngroups, which are analogous t""o directories in a filesystem. Groups serve\nas containers for variables, dimensions and attributes, as well as other\ngroups. A `netCDF4.Dataset` creates a special group, called\nthe 'root group', which is similar to the root directory in a unix\nfilesystem. To create `netCDF4.Group` instances, use the\n`netCDF4.Dataset.createGroup` method of a `netCDF4.Dataset` or `netCDF4.Group`\ninstance. `netCDF4.Dataset.createGroup` takes a single argument, a\npython string containing the name of the new group. The new `netCDF4.Group`\ninstances contained within the root group can be accessed by name using\nthe `groups` dictionary attribute of the `netCDF4.Dataset` instance. Only\n`NETCDF4` formatted files support Groups, if you try to create a Group\nin a netCDF 3 file you will get an error message.\n\n :::python\n >>> rootgrp = Dataset(\"test.nc\", \"a\")\n >>> fcstgrp = rootgrp.createGroup(\"forecasts\")\n >>> analgrp = rootgrp.createGroup(\"analyses\")\n >>> print rootgrp.groups\n OrderedDict([(\"forecasts\", \n ),\n (\"analyses\", \n )])\n\nGroups can exist within groups in a `netCDF4.Dataset`, just as directories\nexist within directories in a unix filesystem. Each `netCDF4.Group` instance\nhas a `groups` attribute dictionary containing all of the group\ninstances contained within that group. Each `netCDF4.Group` instance also has a\n`path` attribute that contains a simulated unix directory path to\nthat group. To simplify the creation of nested groups, you can\nuse a unix-like path as an argument to `netCDF4.Dataset.createGroup`.\n\n :::python\n >>> fcstgrp1 = rootgrp.createGroup(\"/forecasts/model1\")\n >>> fcstgrp2 = rootgrp.createGroup(\"/forecasts/model2\")\n\nIf any of the intermediate elements of the path do not exist, they are created,\njust as with the unix command `'mkdir -p'`. If you try to cre""ate a group\nthat already exists, no error will be raised, and the existing group will be \nreturned.\n\nHere's an example that shows how to navigate all the groups in a\n`netCDF4.Dataset`. The function `walktree` is a Python generator that is used\nto walk the directory tree. Note that printing the `netCDF4.Dataset` or `netCDF4.Group`\nobject yields summary information about it's contents.\n\n :::python\n >>> def walktree(top):\n >>> values = top.groups.values()\n >>> yield values\n >>> for value in top.groups.values():\n >>> for children in walktree(value):\n >>> yield children\n >>> print rootgrp\n >>> for children in walktree(rootgrp):\n >>> for child in children:\n >>> print child\n \n root group (NETCDF4 file format):\n dimensions:\n variables:\n groups: forecasts, analyses\n \n group /forecasts:\n dimensions:\n variables:\n groups: model1, model2\n \n group /analyses:\n dimensions:\n variables:\n groups:\n \n group /forecasts/model1:\n dimensions:\n variables:\n groups:\n \n group /forecasts/model2:\n dimensions:\n variables:\n groups:\n\n##
3) Dimensions in a netCDF file.\n\nnetCDF defines the sizes of all variables in terms of dimensions, so\nbefore any variables can be created the dimensions they use must be\ncreated first. A special case, not often used in practice, is that of a\nscalar variable, which has no dimensions. A dimension is created using\nthe `netCDF4.Dataset.createDimension` method of a `netCDF4.Dataset`\nor `netCDF4.Group` instance. A Python string is used to set the name of the\ndimension, and an integer value is used to set the size. To create an""\nunlimited dimension (a dimension that can be appended to), the size\nvalue is set to `None` or 0. In this example, there both the `time` and\n`level` dimensions are unlimited. Having more than one unlimited\ndimension is a new netCDF 4 feature, in netCDF 3 files there may be only\none, and it must be the first (leftmost) dimension of the variable.\n\n :::python\n >>> level = rootgrp.createDimension(\"level\", None)\n >>> time = rootgrp.createDimension(\"time\", None)\n >>> lat = rootgrp.createDimension(\"lat\", 73)\n >>> lon = rootgrp.createDimension(\"lon\", 144)\n\n\nAll of the `netCDF4.Dimension` instances are stored in a python dictionary.\n\n :::python\n >>> print rootgrp.dimensions\n OrderedDict([(\"level\", ),\n (\"time\", ),\n (\"lat\", ),\n (\"lon\", )])\n\nCalling the python `len` function with a `netCDF4.Dimension` instance returns\nthe current size of that dimension.\nThe `netCDF4.Dimension.isunlimited` method of a `netCDF4.Dimension` instance\ncan be used to determine if the dimensions is unlimited, or appendable.\n\n :::python\n >>> print len(lon)\n 144\n >>> print lon.isunlimited()\n False\n >>> print time.isunlimited()\n True\n\nPrinting the `netCDF4.Dimension` object\nprovides useful summary info, including the name and length of the dimension,\nand whether it is unlimited.\n\n :::python\n >>> for dimobj in rootgrp.dimensions.values():\n >>> print dimobj\n (unlimited): name = \"level\", size = 0\n (unlimited): name = \"time\", size = 0\n : name = \"lat\", size = 73\n : name = \"lon\", size = 144""\n (unlimited): name = \"time\", size = 0\n\n`netCDF4.Dimension` names can be changed using the\n`netCDF4.Datatset.renameDimension` method of a `netCDF4.Dataset` or\n`netCDF4.Group` instance.\n\n##
4) Variables in a netCDF file.\n\nnetCDF variables behave much like python multidimensional array objects\nsupplied by the [numpy module](http://numpy.scipy.org). However,\nunlike numpy arrays, netCDF4 variables can be appended to along one or\nmore 'unlimited' dimensions. To create a netCDF variable, use the\n`netCDF4.Dataset.createVariable` method of a `netCDF4.Dataset` or\n`netCDF4.Group` instance. The `netCDF4.Dataset.createVariable` method\nhas two mandatory arguments, the variable name (a Python string), and\nthe variable datatype. The variable's dimensions are given by a tuple\ncontaining the dimension names (defined previously with\n`netCDF4.Dataset.createDimension`). To create a scalar\nvariable, simply leave out the dimensions keyword. The variable\nprimitive datatypes correspond to the dtype attribute of a numpy array.\nYou can specify the datatype as a numpy dtype object, or anything that\ncan be converted to a numpy dtype object. Valid datatype specifiers\ninclude: `'f4'` (32-bit floating point), `'f8'` (64-bit floating\npoint), `'i4'` (32-bit signed integer), `'i2'` (16-bit signed\ninteger), `'i8'` (64-bit signed integer), `'i1'` (8-bit signed\ninteger), `'u1'` (8-bit unsigned integer), `'u2'` (16-bit unsigned\ninteger), `'u4'` (32-bit unsigned integer), `'u8'` (64-bit unsigned\ninteger), or `'S1'` (single-character string). The old Numeric\nsingle-character typecodes (`'f'`,`'d'`,`'h'`,\n`'s'`,`'b'`,`'B'`,`'c'`,`'i'`,`'l'`), corresponding to\n(`'f4'`,`'f8'`,`'i2'`,`'i2'`,`'i1'`,`'i1'`,`'S1'`,`'i4'`,`'i4'`),\nwill also work. The unsigned integer types and the 64-bit integer type\ncan only be used if the file format is `NETCDF4`.\n\nThe dimensions themselves are usually also defined as variables, c""alled\ncoordinate variables. The `netCDF4.Dataset.createVariable`\nmethod returns an instance of the `netCDF4.Variable` class whose methods can be\nused later to access and set variable data and attributes.\n\n :::python\n >>> times = rootgrp.createVariable(\"time\",\"f8\",(\"time\",))\n >>> levels = rootgrp.createVariable(\"level\",\"i4\",(\"level\",))\n >>> latitudes = rootgrp.createVariable(\"latitude\",\"f4\",(\"lat\",))\n >>> longitudes = rootgrp.createVariable(\"longitude\",\"f4\",(\"lon\",))\n >>> # two dimensions unlimited\n >>> temp = rootgrp.createVariable(\"temp\",\"f4\",(\"time\",\"level\",\"lat\",\"lon\",))\n\nTo get summary info on a `netCDF4.Variable` instance in an interactive session, just print it.\n\n :::python\n >>> print temp\n \n float32 temp(time, level, lat, lon)\n least_significant_digit: 3\n units: K\n unlimited dimensions: time, level\n current shape = (0, 0, 73, 144)\n\nYou can use a path to create a Variable inside a hierarchy of groups.\n\n :::python\n >>> ftemp = rootgrp.createVariable(\"/forecasts/model1/temp\",\"f4\",(\"time\",\"level\",\"lat\",\"lon\",))\n\nIf the intermediate groups do not yet exist, they will be created.\n\nYou can also query a `netCDF4.Dataset` or `netCDF4.Group` instance directly to obtain `netCDF4.Group` or \n`netCDF4.Variable` instances using paths.\n\n :::python\n >>> print rootgrp[\"/forecasts/model1\"] # a Group instance\n \n group /forecasts/model1:\n dimensions(sizes):\n variables(dimensions): float32 temp(time,level,lat,lon)\n groups:\n >>> print rootgrp[\"/forecasts/model1/temp\"] # a Variable instance\n \n float32 temp(time, level, lat, lon)\n path = /forecasts/model1\n unlimited dimensions: time, level\n current shape = (0, 0, 73, 144)\n filling on, default _FillValue of 9.96920996839e+3""6 used\n\nAll of the variables in the `netCDF4.Dataset` or `netCDF4.Group` are stored in a\nPython dictionary, in the same way as the dimensions:\n\n :::python\n >>> print rootgrp.variables\n OrderedDict([(\"time\", ),\n (\"level\", ),\n (\"latitude\", ),\n (\"longitude\", ),\n (\"temp\", )])\n\n`netCDF4.Variable` names can be changed using the\n`netCDF4.Dataset.renameVariable` method of a `netCDF4.Dataset`\ninstance.\n\n\n##
5) Attributes in a netCDF file.\n\nThere are two types of attributes in a netCDF file, global and variable.\nGlobal attributes provide information about a group, or the entire\ndataset, as a whole. `netCDF4.Variable` attributes provide information about\none of the variables in a group. Global attributes are set by assigning\nvalues to `netCDF4.Dataset` or `netCDF4.Group` instance variables. `netCDF4.Variable`\nattributes are set by assigning values to `netCDF4.Variable` instances\nvariables. Attributes can be strings, numbers or sequences. Returning to\nour example,\n\n :::python\n >>> import time\n >>> rootgrp.description = \"bogus example script\"\n >>> rootgrp.history = \"Created \" + time.ctime(time.time())\n >>> rootgrp.source = \"netCDF4 python module tutorial\"\n >>> latitudes.units = \"degrees north\"\n >>> longitudes.units = \"degrees east\"\n >>> levels.units = \"hPa\"\n >>> temp.units = \"K\"\n >>> times.units = \"hours since 0001-01-01 00:00:00.0\"\n >>> times.calendar = \"gregorian\"\n\nThe `netCDF4.Dataset.ncattrs` method of a `netCDF4.Dataset`, `netCDF4.Group` or\n`netCDF4.Variable` instance can be used to retrieve the names of all the netCDF\nattributes. This method is provided as a convenience, since using the\nbuilt-""in `dir` Python function will return a bunch of private methods\nand attributes that cannot (or should not) be modified by the user.\n\n :::python\n >>> for name in rootgrp.ncattrs():\n >>> print \"Global attr\", name, \"=\", getattr(rootgrp,name)\n Global attr description = bogus example script\n Global attr history = Created Mon Nov 7 10.30:56 2005\n Global attr source = netCDF4 python module tutorial\n\nThe `__dict__` attribute of a `netCDF4.Dataset`, `netCDF4.Group` or `netCDF4.Variable`\ninstance provides all the netCDF attribute name/value pairs in a python\ndictionary:\n\n :::python\n >>> print rootgrp.__dict__\n OrderedDict([(u\"description\", u\"bogus example script\"),\n (u\"history\", u\"Created Thu Mar 3 19:30:33 2011\"),\n (u\"source\", u\"netCDF4 python module tutorial\")])\n\nAttributes can be deleted from a netCDF `netCDF4.Dataset`, `netCDF4.Group` or\n`netCDF4.Variable` using the python `del` statement (i.e. `del grp.foo`\nremoves the attribute `foo` the the group `grp`).\n\n##
6) Writing data to and retrieving data from a netCDF variable.\n\nNow that you have a netCDF `netCDF4.Variable` instance, how do you put data\ninto it? You can just treat it like an array and assign data to a slice.\n\n :::python\n >>> import numpy\n >>> lats = numpy.arange(-90,91,2.5)\n >>> lons = numpy.arange(-180,180,2.5)\n >>> latitudes[:] = lats\n >>> longitudes[:] = lons\n >>> print \"latitudes =\\n\",latitudes[:]\n latitudes =\n [-90. -87.5 -85. -82.5 -80. -77.5 -75. -72.5 -70. -67.5 -65. -62.5\n -60. -57.5 -55. -52.5 -50. -47.5 -45. -42.5 -40. -37.5 -35. -32.5\n -30. -27.5 -25. -22.5 -20. -17.5 -15. -12.5 -10. -7.5 -5. -2.5\n 0. 2.5 5. 7.5 10. 12.5 15. 17.5 20. 22.5 25. 27.5\n 30. 32.5 35. 37.5 40. 42.5 45. 47.5 50. 52.5 55. 57.5\n 60. 62.5 65. 67.5 70. 72.5 75. 77.""5 80. 82.5 85. 87.5\n 90. ]\n\nUnlike NumPy's array objects, netCDF `netCDF4.Variable`\nobjects with unlimited dimensions will grow along those dimensions if you\nassign data outside the currently defined range of indices.\n\n :::python\n >>> # append along two unlimited dimensions by assigning to slice.\n >>> nlats = len(rootgrp.dimensions[\"lat\"])\n >>> nlons = len(rootgrp.dimensions[\"lon\"])\n >>> print \"temp shape before adding data = \",temp.shape\n temp shape before adding data = (0, 0, 73, 144)\n >>>\n >>> from numpy.random import uniform\n >>> temp[0:5,0:10,:,:] = uniform(size=(5,10,nlats,nlons))\n >>> print \"temp shape after adding data = \",temp.shape\n temp shape after adding data = (6, 10, 73, 144)\n >>>\n >>> # levels have grown, but no values yet assigned.\n >>> print \"levels shape after adding pressure data = \",levels.shape\n levels shape after adding pressure data = (10,)\n\nNote that the size of the levels variable grows when data is appended\nalong the `level` dimension of the variable `temp`, even though no\ndata has yet been assigned to levels.\n\n :::python\n >>> # now, assign data to levels dimension variable.\n >>> levels[:] = [1000.,850.,700.,500.,300.,250.,200.,150.,100.,50.]\n\nHowever, that there are some differences between NumPy and netCDF\nvariable slicing rules. Slices behave as usual, being specified as a\n`start:stop:step` triplet. Using a scalar integer index `i` takes the ith\nelement and reduces the rank of the output array by one. Boolean array and\ninteger sequence indexing behaves differently for netCDF variables\nthan for numpy arrays. Only 1-d boolean arrays and integer sequences are\nallowed, and these indices work independently along each dimension (similar\nto the way vector subscripts work in fortran). This means that\n\n :::python\n >>> temp[0, 0, [0,1,2,3], [0,1,2,3]]\n\nreturns an array of shape (4,4) when slicing a netCDF variable, but ""for a\nnumpy array it returns an array of shape (4,).\nSimilarly, a netCDF variable of shape `(2,3,4,5)` indexed\nwith `[0, array([True, False, True]), array([False, True, True, True]), :]`\nwould return a `(2, 3, 5)` array. In NumPy, this would raise an error since\nit would be equivalent to `[0, [0,1], [1,2,3], :]`. When slicing with integer\nsequences, the indices ***need not be sorted*** and ***may contain\nduplicates*** (both of these are new features in version 1.2.1).\nWhile this behaviour may cause some confusion for those used to NumPy's 'fancy indexing' rules,\nit provides a very powerful way to extract data from multidimensional netCDF\nvariables by using logical operations on the dimension arrays to create slices.\n\nFor example,\n\n :::python\n >>> tempdat = temp[::2, [1,3,6], lats>0, lons>0]\n\nwill extract time indices 0,2 and 4, pressure levels\n850, 500 and 200 hPa, all Northern Hemisphere latitudes and Eastern\nHemisphere longitudes, resulting in a numpy array of shape (3, 3, 36, 71).\n\n :::python\n >>> print \"shape of fancy temp slice = \",tempdat.shape\n shape of fancy temp slice = (3, 3, 36, 71)\n\n***Special note for scalar variables***: To extract data from a scalar variable\n`v` with no associated dimensions, use `np.asarray(v)` or `v[...]`. The result\nwill be a numpy scalar array.\n\n##
7) Dealing with time coordinates.\n\nTime coordinate values pose a special challenge to netCDF users. Most\nmetadata standards (such as CF) specify that time should be\nmeasure relative to a fixed date using a certain calendar, with units\nspecified like `hours since YY:MM:DD hh-mm-ss`. These units can be\nawkward to deal with, without a utility to convert the values to and\nfrom calendar dates. The function called `netCDF4.num2date` and `netCDF4.date2num` are\nprovided with this package to do just that. Here's an example of how they\ncan be used:\n\n :::python\n >>> # fill in times.\n >>> from datetime impo""rt datetime, timedelta\n >>> from netCDF4 import num2date, date2num\n >>> dates = [datetime(2001,3,1)+n*timedelta(hours=12) for n in range(temp.shape[0])]\n >>> times[:] = date2num(dates,units=times.units,calendar=times.calendar)\n >>> print \"time values (in units %s): \" % times.units+\"\\n\",times[:]\n time values (in units hours since January 1, 0001):\n [ 17533056. 17533068. 17533080. 17533092. 17533104.]\n >>> dates = num2date(times[:],units=times.units,calendar=times.calendar)\n >>> print \"dates corresponding to time values:\\n\",dates\n dates corresponding to time values:\n [2001-03-01 00:00:00 2001-03-01 12:00:00 2001-03-02 00:00:00\n 2001-03-02 12:00:00 2001-03-03 00:00:00]\n\n`netCDF4.num2date` converts numeric values of time in the specified `units`\nand `calendar` to datetime objects, and `netCDF4.date2num` does the reverse.\nAll the calendars currently defined in the\n[CF metadata convention](http://cfconventions.org) are supported.\nA function called `netCDF4.date2index` is also provided which returns the indices\nof a netCDF time variable corresponding to a sequence of datetime instances.\n\n\n##
8) Reading data from a multi-file netCDF dataset.\n\nIf you want to read data from a variable that spans multiple netCDF files,\nyou can use the `netCDF4.MFDataset` class to read the data as if it were\ncontained in a single file. Instead of using a single filename to create\na `netCDF4.Dataset` instance, create a `netCDF4.MFDataset` instance with either a list\nof filenames, or a string with a wildcard (which is then converted to\na sorted list of files using the python glob module).\nVariables in the list of files that share the same unlimited\ndimension are aggregated together, and can be sliced across multiple\nfiles. To illustrate this, let's first create a bunch of netCDF files with\nthe same variable (with the same unlimited dimension). The files\nmust in be in `NETCDF3_64BIT_OFFSET`, `NETCDF""3_64BIT_DATA`, `NETCDF3_CLASSIC` or\n`NETCDF4_CLASSIC` format (`NETCDF4` formatted multi-file\ndatasets are not supported).\n\n :::python\n >>> for nf in range(10):\n >>> f = Dataset(\"mftest%s.nc\" % nf,\"w\")\n >>> f.createDimension(\"x\",None)\n >>> x = f.createVariable(\"x\",\"i\",(\"x\",))\n >>> x[0:10] = numpy.arange(nf*10,10*(nf+1))\n >>> f.close()\n\nNow read all the files back in at once with `netCDF4.MFDataset`\n\n :::python\n >>> from netCDF4 import MFDataset\n >>> f = MFDataset(\"mftest*nc\")\n >>> print f.variables[\"x\"][:]\n [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24\n 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49\n 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74\n 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99]\n\nNote that `netCDF4.MFDataset` can only be used to read, not write, multi-file\ndatasets.\n\n##
9) Efficient compression of netCDF variables.\n\nData stored in netCDF 4 `netCDF4.Variable` objects can be compressed and\ndecompressed on the fly. The parameters for the compression are\ndetermined by the `zlib`, `complevel` and `shuffle` keyword arguments\nto the `netCDF4.Dataset.createVariable` method. To turn on\ncompression, set `zlib=True`. The `complevel` keyword regulates the\nspeed and efficiency of the compression (1 being fastest, but lowest\ncompression ratio, 9 being slowest but best compression ratio). The\ndefault value of `complevel` is 4. Setting `shuffle=False` will turn\noff the HDF5 shuffle filter, which de-interlaces a block of data before\ncompression by reordering the bytes. The shuffle filter can\nsignificantly improve compression ratios, and is on by default. Setting\n`fletcher32` keyword argument to\n`netCDF4.Dataset.createVariable` to `True` (it's `False` by\ndefault) enables the Fletcher32 checksum algorithm for erro""r detection.\nIt's also possible to set the HDF5 chunking parameters and endian-ness\nof the binary data stored in the HDF5 file with the `chunksizes`\nand `endian` keyword arguments to\n`netCDF4.Dataset.createVariable`. These keyword arguments only\nare relevant for `NETCDF4` and `NETCDF4_CLASSIC` files (where the\nunderlying file format is HDF5) and are silently ignored if the file\nformat is `NETCDF3_CLASSIC`, `NETCDF3_64BIT_OFFSET` or `NETCDF3_64BIT_DATA`.\n\nIf your data only has a certain number of digits of precision (say for\nexample, it is temperature data that was measured with a precision of\n0.1 degrees), you can dramatically improve zlib compression by\nquantizing (or truncating) the data using the `least_significant_digit`\nkeyword argument to `netCDF4.Dataset.createVariable`. The least\nsignificant digit is the power of ten of the smallest decimal place in\nthe data that is a reliable value. For example if the data has a\nprecision of 0.1, then setting `least_significant_digit=1` will cause\ndata the data to be quantized using `numpy.around(scale*data)/scale`, where\nscale = 2**bits, and bits is determined so that a precision of 0.1 is\nretained (in this case bits=4). Effectively, this makes the compression\n'lossy' instead of 'lossless', that is some precision in the data is\nsacrificed for the sake of disk space.\n\nIn our example, try replacing the line\n\n :::python\n >>> temp = rootgrp.createVariable(\"temp\",\"f4\",(\"time\",\"level\",\"lat\",\"lon\",))\n\nwith\n\n :::python\n >>> temp = dataset.createVariable(\"temp\",\"f4\",(\"time\",\"level\",\"lat\",\"lon\",),zlib=True)\n\nand then\n\n :::python\n >>> temp = dataset.createVariable(\"temp\",\"f4\",(\"time\",\"level\",\"lat\",\"lon\",),zlib=True,least_significant_digit=3)\n\nand see how much smaller the resulting files are.\n\n##
10) Beyond homogeneous arrays of a fixed type - compound data types.\n\nCompound data types map directly to numpy structured (""a.k.a 'record')\narrays. Structured arrays are akin to C structs, or derived types\nin Fortran. They allow for the construction of table-like structures\ncomposed of combinations of other data types, including other\ncompound types. Compound types might be useful for representing multiple\nparameter values at each point on a grid, or at each time and space\nlocation for scattered (point) data. You can then access all the\ninformation for a point by reading one variable, instead of reading\ndifferent parameters from different variables. Compound data types\nare created from the corresponding numpy data type using the\n`netCDF4.Dataset.createCompoundType` method of a `netCDF4.Dataset` or `netCDF4.Group` instance.\nSince there is no native complex data type in netcdf, compound types are handy\nfor storing numpy complex arrays. Here's an example:\n\n :::python\n >>> f = Dataset(\"complex.nc\",\"w\")\n >>> size = 3 # length of 1-d complex array\n >>> # create sample complex data.\n >>> datac = numpy.exp(1j*(1.+numpy.linspace(0, numpy.pi, size)))\n >>> # create complex128 compound data type.\n >>> complex128 = numpy.dtype([(\"real\",numpy.float64),(\"imag\",numpy.float64)])\n >>> complex128_t = f.createCompoundType(complex128,\"complex128\")\n >>> # create a variable with this data type, write some data to it.\n >>> f.createDimension(\"x_dim\",None)\n >>> v = f.createVariable(\"cmplx_var\",complex128_t,\"x_dim\")\n >>> data = numpy.empty(size,complex128) # numpy structured array\n >>> data[\"real\"] = datac.real; data[\"imag\"] = datac.imag\n >>> v[:] = data # write numpy structured array to netcdf compound var\n >>> # close and reopen the file, check the contents.\n >>> f.close(); f = Dataset(\"complex.nc\")\n >>> v = f.variables[\"cmplx_var\"]\n >>> datain = v[:] # read in all the data into a numpy structured array\n >>> # create an empty numpy complex array\n >>> datac2 = numpy.empty(datain.shape,numpy.comp""lex128)\n >>> # .. fill it with contents of structured array.\n >>> datac2.real = datain[\"real\"]; datac2.imag = datain[\"imag\"]\n >>> print datac.dtype,datac # original data\n complex128 [ 0.54030231+0.84147098j -0.84147098+0.54030231j -0.54030231-0.84147098j]\n >>>\n >>> print datac2.dtype,datac2 # data from file\n complex128 [ 0.54030231+0.84147098j -0.84147098+0.54030231j -0.54030231-0.84147098j]\n\nCompound types can be nested, but you must create the 'inner'\nones first. All of the compound types defined for a `netCDF4.Dataset` or `netCDF4.Group` are stored in a\nPython dictionary, just like variables and dimensions. As always, printing\nobjects gives useful summary information in an interactive session:\n\n :::python\n >>> print f\n \n root group (NETCDF4 file format):\n dimensions: x_dim\n variables: cmplx_var\n groups:\n \n >>> print f.variables[\"cmplx_var\"]\n compound cmplx_var(x_dim)\n compound data type: [(\"real\", \">> print f.cmptypes\n OrderedDict([(\"complex128\", )])\n >>> print f.cmptypes[\"complex128\"]\n : name = \"complex128\", numpy dtype = [(u\"real\",\"11) Variable-length (vlen) data types.\n\nNetCDF 4 has support for variable-length or \"ragged\" arrays. These are arrays\nof variable length sequences having the same type. To create a variable-length\ndata type, use the `netCDF4.Dataset.createVLType` method\nmethod of a `netCDF4.Dataset` or `netCDF4.Group` instance.\n\n :::python\n >>> f = Dataset(\"tst_vlen.nc\",\"w\")\n >>> vlen_t = f.createVLType(numpy.int32, \"phony_vlen\")\n\nThe numpy datatype of the variable-length sequences and the name of the""\nnew datatype must be specified. Any of the primitive datatypes can be\nused (signed and unsigned integers, 32 and 64 bit floats, and characters),\nbut compound data types cannot.\nA new variable can then be created using this datatype.\n\n :::python\n >>> x = f.createDimension(\"x\",3)\n >>> y = f.createDimension(\"y\",4)\n >>> vlvar = f.createVariable(\"phony_vlen_var\", vlen_t, (\"y\",\"x\"))\n\nSince there is no native vlen datatype in numpy, vlen arrays are represented\nin python as object arrays (arrays of dtype `object`). These are arrays whose\nelements are Python object pointers, and can contain any type of python object.\nFor this application, they must contain 1-D numpy arrays all of the same type\nbut of varying length.\nIn this case, they contain 1-D numpy `int32` arrays of random length between\n1 and 10.\n\n :::python\n >>> import random\n >>> data = numpy.empty(len(y)*len(x),object)\n >>> for n in range(len(y)*len(x)):\n >>> data[n] = numpy.arange(random.randint(1,10),dtype=\"int32\")+1\n >>> data = numpy.reshape(data,(len(y),len(x)))\n >>> vlvar[:] = data\n >>> print \"vlen variable =\\n\",vlvar[:]\n vlen variable =\n [[[ 1 2 3 4 5 6 7 8 9 10] [1 2 3 4 5] [1 2 3 4 5 6 7 8]]\n [[1 2 3 4 5 6 7] [1 2 3 4 5 6] [1 2 3 4 5]]\n [[1 2 3 4 5] [1 2 3 4] [1]]\n [[ 1 2 3 4 5 6 7 8 9 10] [ 1 2 3 4 5 6 7 8 9 10]\n [1 2 3 4 5 6 7 8]]]\n >>> print f\n \n root group (NETCDF4 file format):\n dimensions: x, y\n variables: phony_vlen_var\n groups:\n >>> print f.variables[\"phony_vlen_var\"]\n \n vlen phony_vlen_var(y, x)\n vlen data type: int32\n unlimited dimensions:\n current shape = (4, 3)\n >>> print f.VLtypes[\"phony_vlen\"]\n : name = \"phony_vlen\", numpy dtype = int32\n\nNumpy object arrays containing python strings can"" also be written as vlen\nvariables, For vlen strings, you don't need to create a vlen data type.\nInstead, simply use the python `str` builtin (or a numpy string datatype\nwith fixed length greater than 1) when calling the\n`netCDF4.Dataset.createVariable` method.\n\n :::python\n >>> z = f.createDimension(\"z\",10)\n >>> strvar = rootgrp.createVariable(\"strvar\", str, \"z\")\n\nIn this example, an object array is filled with random python strings with\nrandom lengths between 2 and 12 characters, and the data in the object\narray is assigned to the vlen string variable.\n\n :::python\n >>> chars = \"1234567890aabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\"\n >>> data = numpy.empty(10,\"O\")\n >>> for n in range(10):\n >>> stringlen = random.randint(2,12)\n >>> data[n] = \"\".join([random.choice(chars) for i in range(stringlen)])\n >>> strvar[:] = data\n >>> print \"variable-length string variable:\\n\",strvar[:]\n variable-length string variable:\n [aDy29jPt 5DS9X8 jd7aplD b8t4RM jHh8hq KtaPWF9cQj Q1hHN5WoXSiT MMxsVeq tdLUzvVTzj]\n >>> print f\n \n root group (NETCDF4 file format):\n dimensions: x, y, z\n variables: phony_vlen_var, strvar\n groups:\n >>> print f.variables[\"strvar\"]\n \n vlen strvar(z)\n vlen data type: \n unlimited dimensions:\n current size = (10,)\n\nIt is also possible to set contents of vlen string variables with numpy arrays\nof any string or unicode data type. Note, however, that accessing the contents\nof such variables will always return numpy arrays with dtype `object`.\n\n##
12) Enum data type.\n\nnetCDF4 has an enumerated data type, which is an integer datatype that is\nrestricted to certain named values. Since Enums don't map directly to\na numpy data type, they are read and written as integer arrays.\n\nHere's an example of usin""g an Enum type to hold cloud type data. \nThe base integer data type and a python dictionary describing the allowed\nvalues and their names are used to define an Enum data type using\n`netCDF4.Dataset.createEnumType`.\n\n :::python\n >>> nc = Dataset('clouds.nc','w')\n >>> # python dict with allowed values and their names.\n >>> enum_dict = {u'Altocumulus': 7, u'Missing': 255, \n >>> u'Stratus': 2, u'Clear': 0,\n >>> u'Nimbostratus': 6, u'Cumulus': 4, u'Altostratus': 5,\n >>> u'Cumulonimbus': 1, u'Stratocumulus': 3}\n >>> # create the Enum type called 'cloud_t'.\n >>> cloud_type = nc.createEnumType(numpy.uint8,'cloud_t',enum_dict)\n >>> print cloud_type\n : name = 'cloud_t',\n numpy dtype = uint8, fields/values ={u'Cumulus': 4,\n u'Altocumulus': 7, u'Missing': 255,\n u'Stratus': 2, u'Clear': 0,\n u'Cumulonimbus': 1, u'Stratocumulus': 3,\n u'Nimbostratus': 6, u'Altostratus': 5}\n\nA new variable can be created in the usual way using this data type.\nInteger data is written to the variable that represents the named\ncloud types in enum_dict. A `ValueError` will be raised if an attempt\nis made to write an integer value not associated with one of the\nspecified names.\n\n :::python\n >>> time = nc.createDimension('time',None)\n >>> # create a 1d variable of type 'cloud_type'.\n >>> # The fill_value is set to the 'Missing' named value.\n >>> cloud_var =\n >>> nc.createVariable('primary_cloud',cloud_type,'time',\n >>> fill_value=enum_dict['Missing'])\n >>> # write some data to the variable.\n >>> cloud_var[:] = [enum_dict['Clear'],enum_dict['Stratus'],\n >>> enum_dict['Cumulus'],enum_dict['Missing'],\n >>> enum_dict['Cumulonimbus']]\n >>> nc.close()\n >>> # reopen the file, read the data.\n >>> nc = Dataset('clouds.nc')\n >>> cloud_var = nc.variables['primary_cloud']\n >>> print cloud_var\n \n enum prima""ry_cloud(time)\n _FillValue: 255\n enum data type: uint8\n unlimited dimensions: time\n current shape = (5,)\n >>> print cloud_var.datatype.enum_dict\n {u'Altocumulus': 7, u'Missing': 255, u'Stratus': 2,\n u'Clear': 0, u'Nimbostratus': 6, u'Cumulus': 4,\n u'Altostratus': 5, u'Cumulonimbus': 1,\n u'Stratocumulus': 3}\n >>> print cloud_var[:]\n [0 2 4 -- 1]\n >>> nc.close()\n\nAll of the code in this tutorial is available in `examples/tutorial.py`,\nUnit tests are in the `test` directory.\n\n**contact**: Jeffrey Whitaker \n\n**copyright**: 2008 by Jeffrey Whitaker.\n\n**license**: Permission to use, copy, modify, and distribute this software and\nits documentation for any purpose and without fee is hereby granted,\nprovided that the above copyright notice appear in all copies and that\nboth the copyright notice and this permission notice appear in\nsupporting documentation.\nTHE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,\nINCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO\nEVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR\nCONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF\nUSE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n- - -\n"; +-static const char __pyx_k_Volumes_Drobo_python_netcdf4_py[] = "/Volumes/Drobo/python/netcdf4-python.git/netCDF4/_netCDF4.pyx"; + static const char __pyx_k_assign_vlen_method_only_for_use[] = "_assign_vlen method only for use with VLEN variables"; + static const char __pyx_k_cannot_set__FillValue_attribute[] = "cannot set _FillValue attribute for VLEN or compound variable"; + static const char __pyx_k_cannot_specify_chunksizes_for_a[] = "cannot specify chunksizes for a contiguous dataset"; +@@ -2452,6 +2280,7 @@ static PyObject *__pyx_n_s_UNDEFINED; + static PyObject *__pyx_n_s_UnicodeDecodeError; + static PyObject *__pyx_n_s_UnicodeError; + static PyObject *__pyx_kp_s_Unsupported_compound_type_elemen; ++static PyObject *__pyx_kp_s_Users_jswhit_python_netcdf4_pyt; + static PyObject *__pyx_n_s_V; + static PyObject *__pyx_kp_s_VLType_dtype; + static PyObject *__pyx_kp_s_VLType_is_not_picklable; +@@ -2483,7 +2312,6 @@ static PyObject *__pyx_n_s_Variable_set_auto_scale; + static PyObject *__pyx_kp_s_Variable_shape; + static PyObject *__pyx_kp_s_Variable_size; + static PyObject *__pyx_n_s_Variable_typecode; +-static PyObject *__pyx_kp_s_Volumes_Drobo_python_netcdf4_py; + static PyObject *__pyx_kp_s_WARNING_Backwards_incompatible; + static PyObject *__pyx_kp_s_WARNING_unsupported_Compound_typ; + static PyObject *__pyx_kp_s_WARNING_unsupported_Enum_type_sk; +@@ -3295,7 +3123,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_14chartostring(CYTHON_UNUSED PyObje + static PyObject *__pyx_pf_7netCDF4_8_netCDF4_16date2num(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_dates, PyObject *__pyx_v_units, PyObject *__pyx_v_calendar); /* proto */ + static PyObject *__pyx_pf_7netCDF4_8_netCDF4_18num2date(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_times, PyObject *__pyx_v_units, PyObject *__pyx_v_calendar); /* proto */ + static PyObject *__pyx_pf_7netCDF4_8_netCDF4_20date2index(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_dates, PyObject *__pyx_v_nctime, PyObject *__pyx_v_calendar, PyObject *__pyx_v_select); /* proto */ +-static PyObject *__pyx_pf_7netCDF4_8_netCDF4_25__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ ++static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset_14__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ + static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_files, PyObject *__pyx_v_check, PyObject *__pyx_v_aggdim, PyObject *__pyx_v_exclude); /* proto */ + static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset_2__setattr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_value); /* proto */ + static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset_4__getattribute__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ +@@ -3564,14 +3392,12 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_22genexpr(CYTHON_UNUSED PyObject *_ + __Pyx_RefNannySetupContext("genexpr", 0); + __pyx_cur_scope = (struct __pyx_obj_7netCDF4_8_netCDF4___pyx_scope_struct__genexpr *)__pyx_tp_new_7netCDF4_8_netCDF4___pyx_scope_struct__genexpr(__pyx_ptype_7netCDF4_8_netCDF4___pyx_scope_struct__genexpr, __pyx_empty_tuple, NULL); + if (unlikely(!__pyx_cur_scope)) { +- __pyx_cur_scope = ((struct __pyx_obj_7netCDF4_8_netCDF4___pyx_scope_struct__genexpr *)Py_None); +- __Pyx_INCREF(Py_None); +- __PYX_ERR(0, 1032, __pyx_L1_error) +- } else { +- __Pyx_GOTREF(__pyx_cur_scope); ++ __Pyx_RefNannyFinishContext(); ++ return NULL; + } ++ __Pyx_GOTREF(__pyx_cur_scope); + { +- __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7netCDF4_8_netCDF4_24generator, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_netCDF4__netCDF4); if (unlikely(!gen)) __PYX_ERR(0, 1032, __pyx_L1_error) ++ __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7netCDF4_8_netCDF4_24generator, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!gen)) __PYX_ERR(0, 1032, __pyx_L1_error) + __Pyx_DECREF(__pyx_cur_scope); + __Pyx_RefNannyFinishContext(); + return (PyObject *) gen; +@@ -3640,7 +3466,6 @@ static PyObject *__pyx_gb_7netCDF4_8_netCDF4_24generator(__pyx_CoroutineObject * + if (unlikely(PyDict_SetItem(__pyx_r, (PyObject*)__pyx_cur_scope->__pyx_v_v, (PyObject*)__pyx_cur_scope->__pyx_v_k))) __PYX_ERR(0, 1032, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); + + /* function exit code */ + goto __pyx_L0; +@@ -3935,7 +3760,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att_names(int __pyx_v_grpid, in + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; +- int __pyx_t_9; ++ Py_ssize_t __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + int __pyx_t_11; + __Pyx_RefNannySetupContext("_get_att_names", 0); +@@ -4213,7 +4038,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att_names(int __pyx_v_grpid, in + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = NULL; + __pyx_t_9 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -4223,42 +4048,20 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att_names(int __pyx_v_grpid, in + __pyx_t_9 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_4, __pyx_t_7}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1098, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_4, __pyx_t_7}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1098, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- { +- __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1098, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_10); +- if (__pyx_t_8) { +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_4); +- PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_4); +- __Pyx_GIVEREF(__pyx_t_7); +- PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_7); +- __pyx_t_4 = 0; +- __pyx_t_7 = 0; +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1098, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; ++ __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1098, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ if (__pyx_t_8) { ++ __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_4); ++ PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_4); ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_7); ++ __pyx_t_4 = 0; ++ __pyx_t_7 = 0; ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1098, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_attslist, __pyx_t_3); if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 1098, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +@@ -4331,22 +4134,22 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; +- PyObject *__pyx_t_8 = NULL; +- int __pyx_t_9; +- PyObject *__pyx_t_10 = NULL; +- size_t __pyx_t_11; ++ Py_ssize_t __pyx_t_8; ++ PyObject *__pyx_t_9 = NULL; ++ int __pyx_t_10; ++ PyObject *__pyx_t_11 = NULL; + size_t __pyx_t_12; +- PyObject *__pyx_t_13 = NULL; +- int __pyx_t_14; +- char const *__pyx_t_15; +- PyObject *__pyx_t_16 = NULL; ++ size_t __pyx_t_13; ++ PyObject *__pyx_t_14 = NULL; ++ int __pyx_t_15; ++ char const *__pyx_t_16; + PyObject *__pyx_t_17 = NULL; + PyObject *__pyx_t_18 = NULL; + PyObject *__pyx_t_19 = NULL; + PyObject *__pyx_t_20 = NULL; + PyObject *__pyx_t_21 = NULL; +- char const *__pyx_t_22; +- Py_ssize_t __pyx_t_23; ++ PyObject *__pyx_t_22 = NULL; ++ char const *__pyx_t_23; + PyObject *__pyx_t_24 = NULL; + PyObject *__pyx_t_25 = NULL; + PyObject *__pyx_t_26 = NULL; +@@ -4501,51 +4304,31 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + __pyx_t_5 = __Pyx_PyInt_FromSize_t(__pyx_v_att_len); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = NULL; +- __pyx_t_3 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { ++ __pyx_t_8 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); +- __pyx_t_3 = 1; ++ __pyx_t_8 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_5, __pyx_n_s_S1}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_3, 2+__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1117, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_5, __pyx_n_s_S1}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_3, 2+__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1117, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- } else +- #endif +- { +- __pyx_t_8 = PyTuple_New(2+__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1117, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- if (__pyx_t_7) { +- __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_5); +- PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_3, __pyx_t_5); +- __Pyx_INCREF(__pyx_n_s_S1); +- __Pyx_GIVEREF(__pyx_n_s_S1); +- PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_3, __pyx_n_s_S1); +- __pyx_t_5 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1117, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1117, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_9); ++ if (__pyx_t_7) { ++ __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_5); ++ PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_5); ++ __Pyx_INCREF(__pyx_n_s_S1); ++ __Pyx_GIVEREF(__pyx_n_s_S1); ++ PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_n_s_S1); ++ __pyx_t_5 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1117, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7netCDF4_8_netCDF4_ndarray))))) __PYX_ERR(0, 1117, __pyx_L1_error) + __pyx_v_value_arr = ((PyArrayObject *)__pyx_t_1); +@@ -4642,37 +4425,49 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + * # make sure _FillValue for character arrays is a byte on python 3 + * # (issue 271). + */ +- __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_v_name, __pyx_n_s_FillValue, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1122, __pyx_L1_error) +- if (__pyx_t_9) { ++ __pyx_t_10 = (__Pyx_PyString_Equals(__pyx_v_name, __pyx_n_s_FillValue, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 1122, __pyx_L1_error) ++ if (__pyx_t_10) { + } else { +- __pyx_t_4 = __pyx_t_9; ++ __pyx_t_4 = __pyx_t_10; + goto __pyx_L12_bool_binop_done; + } + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_python3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1122, __pyx_L1_error) ++ __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 1122, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- __pyx_t_4 = __pyx_t_9; ++ __pyx_t_4 = __pyx_t_10; + __pyx_L12_bool_binop_done:; + if (__pyx_t_4) { + + /* "netCDF4/_netCDF4.pyx":1125 + * # make sure _FillValue for character arrays is a byte on python 3 + * # (issue 271). +- * pstring = bytes(value_arr) # <<<<<<<<<<<<<< ++ * pstring = value_arr.tostring() # <<<<<<<<<<<<<< + * else: + * pstring =\ + */ +- __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1125, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_INCREF(((PyObject *)__pyx_v_value_arr)); +- __Pyx_GIVEREF(((PyObject *)__pyx_v_value_arr)); +- PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_value_arr)); +- __pyx_t_6 = __Pyx_PyObject_Call(((PyObject *)(&PyBytes_Type)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1125, __pyx_L1_error) ++ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_value_arr), __pyx_n_s_tostring); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- __pyx_v_pstring = __pyx_t_6; +- __pyx_t_6 = 0; ++ __pyx_t_9 = NULL; ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { ++ __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_6); ++ if (likely(__pyx_t_9)) { ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); ++ __Pyx_INCREF(__pyx_t_9); ++ __Pyx_INCREF(function); ++ __Pyx_DECREF_SET(__pyx_t_6, function); ++ } ++ } ++ if (__pyx_t_9) { ++ __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1125, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; ++ } else { ++ __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1125, __pyx_L1_error) ++ } ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; ++ __pyx_v_pstring = __pyx_t_1; ++ __pyx_t_1 = 0; + + /* "netCDF4/_netCDF4.pyx":1122 + * if ierr != NC_NOERR: +@@ -4692,90 +4487,68 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + * elif att_type == NC_STRING: + */ + /*else*/ { +- __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_value_arr), __pyx_n_s_tostring); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1128, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); ++ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_value_arr), __pyx_n_s_tostring); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1128, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_9); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { +- __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8); ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_9))) { ++ __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_9); + if (likely(__pyx_t_5)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_8, function); ++ __Pyx_DECREF_SET(__pyx_t_9, function); + } + } + if (__pyx_t_5) { +- __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1128, __pyx_L1_error) ++ __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1128, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else { +- __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1128, __pyx_L1_error) ++ __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1128, __pyx_L1_error) + } +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_decode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1128, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_default_encoding); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1128, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; ++ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_decode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1128, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_9); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; ++ __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_default_encoding); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1128, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_unicode_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1128, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = NULL; +- __pyx_t_3 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { +- __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8); ++ __pyx_t_8 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_9))) { ++ __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_9); + if (likely(__pyx_t_7)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_8, function); +- __pyx_t_3 = 1; ++ __Pyx_DECREF_SET(__pyx_t_9, function); ++ __pyx_t_8 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_1, __pyx_t_5}; +- __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_3, 2+__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1128, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_1, __pyx_t_5}; +- __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_3, 2+__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1128, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- } else +- #endif +- { +- __pyx_t_10 = PyTuple_New(2+__pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1128, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_10); +- if (__pyx_t_7) { +- __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7); __pyx_t_7 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_1); +- PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_3, __pyx_t_1); +- __Pyx_GIVEREF(__pyx_t_5); +- PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_3, __pyx_t_5); +- __pyx_t_1 = 0; +- __pyx_t_5 = 0; +- __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_10, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1128, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; ++ __pyx_t_11 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1128, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ if (__pyx_t_7) { ++ __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_7); __pyx_t_7 = NULL; + } +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_replace); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1128, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1128, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- __pyx_v_pstring = __pyx_t_6; ++ __Pyx_GIVEREF(__pyx_t_6); ++ PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_8, __pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_5); ++ PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_8, __pyx_t_5); + __pyx_t_6 = 0; ++ __pyx_t_5 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1128, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; ++ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_replace); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1128, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_9); ++ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1128, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; ++ __pyx_v_pstring = __pyx_t_1; ++ __pyx_t_1 = 0; + } + __pyx_L11:; + +@@ -4915,19 +4688,19 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + * result = [values[j].decode(default_encoding,unicode_error).replace('\x00','') + */ + __pyx_t_2 = ((char *)nc_strerror(__pyx_v_ierr)); +- __pyx_t_6 = __Pyx_decode_c_string(__pyx_t_2, 0, strlen(__pyx_t_2), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1138, __pyx_L16_error) +- __Pyx_GOTREF(__pyx_t_6); +- __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1138, __pyx_L16_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_INCREF(__pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_6); +- PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_AttributeError, __pyx_t_8, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1138, __pyx_L16_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_Raise(__pyx_t_6, 0, 0, 0); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; ++ __pyx_t_1 = __Pyx_decode_c_string(__pyx_t_2, 0, strlen(__pyx_t_2), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1138, __pyx_L16_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1138, __pyx_L16_error) ++ __Pyx_GOTREF(__pyx_t_9); ++ __Pyx_INCREF(__pyx_t_1); ++ __Pyx_GIVEREF(__pyx_t_1); ++ PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_1); ++ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_AttributeError, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1138, __pyx_L16_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; ++ __Pyx_Raise(__pyx_t_1, 0, 0, 0); ++ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(0, 1138, __pyx_L16_error) + + /* "netCDF4/_netCDF4.pyx":1137 +@@ -4955,8 +4728,8 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + * for j in range(att_len)] + * finally: + */ +- __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1140, __pyx_L23_error) +- __Pyx_GOTREF(__pyx_t_6); ++ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1140, __pyx_L23_error) ++ __Pyx_GOTREF(__pyx_t_1); + + /* "netCDF4/_netCDF4.pyx":1141 + * try: +@@ -4965,9 +4738,9 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + * finally: + * ierr = nc_free_string(att_len, values) # free memory in netcdf C lib + */ +- __pyx_t_11 = __pyx_v_att_len; +- for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { +- __pyx_v_j = __pyx_t_12; ++ __pyx_t_12 = __pyx_v_att_len; ++ for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) { ++ __pyx_v_j = __pyx_t_13; + + /* "netCDF4/_netCDF4.pyx":1140 + * raise AttributeError((nc_strerror(ierr)).decode('ascii')) +@@ -4976,75 +4749,53 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + * for j in range(att_len)] + * finally: + */ +- __pyx_t_10 = __Pyx_PyBytes_FromString((__pyx_v_values[__pyx_v_j])); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1140, __pyx_L23_error) +- __Pyx_GOTREF(__pyx_t_10); +- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_decode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1140, __pyx_L23_error) ++ __pyx_t_11 = __Pyx_PyBytes_FromString((__pyx_v_values[__pyx_v_j])); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1140, __pyx_L23_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_decode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1140, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_5); +- __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; +- __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s_default_encoding); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1140, __pyx_L23_error) +- __Pyx_GOTREF(__pyx_t_10); +- __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_unicode_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1140, __pyx_L23_error) +- __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_default_encoding); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1140, __pyx_L23_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_unicode_error); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1140, __pyx_L23_error) ++ __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = NULL; +- __pyx_t_3 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { ++ __pyx_t_8 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); +- __pyx_t_3 = 1; ++ __pyx_t_8 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_10, __pyx_t_1}; +- __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_3, 2+__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1140, __pyx_L23_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_10, __pyx_t_1}; +- __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_3, 2+__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1140, __pyx_L23_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } else +- #endif +- { +- __pyx_t_13 = PyTuple_New(2+__pyx_t_3); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1140, __pyx_L23_error) +- __Pyx_GOTREF(__pyx_t_13); +- if (__pyx_t_7) { +- __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_7); __pyx_t_7 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_10); +- PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_3, __pyx_t_10); +- __Pyx_GIVEREF(__pyx_t_1); +- PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_3, __pyx_t_1); +- __pyx_t_10 = 0; +- __pyx_t_1 = 0; +- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_13, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1140, __pyx_L23_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; ++ __pyx_t_14 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1140, __pyx_L23_error) ++ __Pyx_GOTREF(__pyx_t_14); ++ if (__pyx_t_7) { ++ __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7); __pyx_t_7 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_11); ++ PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_11); ++ __Pyx_GIVEREF(__pyx_t_6); ++ PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_6); ++ __pyx_t_11 = 0; ++ __pyx_t_6 = 0; ++ __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1140, __pyx_L23_error) ++ __Pyx_GOTREF(__pyx_t_9); ++ __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_replace); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1140, __pyx_L23_error) ++ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_replace); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1140, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_5); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1140, __pyx_L23_error) +- __Pyx_GOTREF(__pyx_t_8); ++ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; ++ __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1140, __pyx_L23_error) ++ __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- if (unlikely(__Pyx_ListComp_Append(__pyx_t_6, (PyObject*)__pyx_t_8))) __PYX_ERR(0, 1140, __pyx_L23_error) +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 1140, __pyx_L23_error) ++ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } +- __pyx_v_result = ((PyObject*)__pyx_t_6); +- __pyx_t_6 = 0; ++ __pyx_v_result = ((PyObject*)__pyx_t_1); ++ __pyx_t_1 = 0; + } + + /* "netCDF4/_netCDF4.pyx":1143 +@@ -5062,40 +4813,40 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __pyx_L23_error:; +- __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; ++ __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; + __Pyx_PyThreadState_assign + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21); +- if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18) < 0)) __Pyx_ErrFetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); +- __Pyx_XGOTREF(__pyx_t_16); ++ __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; ++ __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; ++ __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; ++ __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; ++ if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); ++ if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19) < 0)) __Pyx_ErrFetch(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19); + __Pyx_XGOTREF(__pyx_t_17); + __Pyx_XGOTREF(__pyx_t_18); + __Pyx_XGOTREF(__pyx_t_19); + __Pyx_XGOTREF(__pyx_t_20); + __Pyx_XGOTREF(__pyx_t_21); +- __pyx_t_3 = __pyx_lineno; __pyx_t_14 = __pyx_clineno; __pyx_t_15 = __pyx_filename; ++ __Pyx_XGOTREF(__pyx_t_22); ++ __pyx_t_3 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_16 = __pyx_filename; + { + __pyx_v_ierr = nc_free_string(__pyx_v_att_len, __pyx_v_values); + } + __Pyx_PyThreadState_assign + if (PY_MAJOR_VERSION >= 3) { +- __Pyx_XGIVEREF(__pyx_t_19); + __Pyx_XGIVEREF(__pyx_t_20); + __Pyx_XGIVEREF(__pyx_t_21); +- __Pyx_ExceptionReset(__pyx_t_19, __pyx_t_20, __pyx_t_21); ++ __Pyx_XGIVEREF(__pyx_t_22); ++ __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22); + } +- __Pyx_XGIVEREF(__pyx_t_16); + __Pyx_XGIVEREF(__pyx_t_17); + __Pyx_XGIVEREF(__pyx_t_18); +- __Pyx_ErrRestore(__pyx_t_16, __pyx_t_17, __pyx_t_18); +- __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; +- __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_14; __pyx_filename = __pyx_t_15; ++ __Pyx_XGIVEREF(__pyx_t_19); ++ __Pyx_ErrRestore(__pyx_t_17, __pyx_t_18, __pyx_t_19); ++ __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; ++ __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_15; __pyx_filename = __pyx_t_16; + goto __pyx_L16_error; + } + __pyx_L24:; +@@ -5117,40 +4868,40 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __pyx_L16_error:; +- __pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_17 = 0; __pyx_t_16 = 0; ++ __pyx_t_22 = 0; __pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_17 = 0; + __Pyx_PyThreadState_assign + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16); +- if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_21, &__pyx_t_20, &__pyx_t_19) < 0)) __Pyx_ErrFetch(&__pyx_t_21, &__pyx_t_20, &__pyx_t_19); ++ __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; ++ __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; ++ __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; ++ __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; ++ if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_19, &__pyx_t_18, &__pyx_t_17); ++ if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_22, &__pyx_t_21, &__pyx_t_20) < 0)) __Pyx_ErrFetch(&__pyx_t_22, &__pyx_t_21, &__pyx_t_20); ++ __Pyx_XGOTREF(__pyx_t_22); + __Pyx_XGOTREF(__pyx_t_21); + __Pyx_XGOTREF(__pyx_t_20); + __Pyx_XGOTREF(__pyx_t_19); + __Pyx_XGOTREF(__pyx_t_18); + __Pyx_XGOTREF(__pyx_t_17); +- __Pyx_XGOTREF(__pyx_t_16); +- __pyx_t_14 = __pyx_lineno; __pyx_t_3 = __pyx_clineno; __pyx_t_22 = __pyx_filename; ++ __pyx_t_15 = __pyx_lineno; __pyx_t_3 = __pyx_clineno; __pyx_t_23 = __pyx_filename; + { + PyMem_Free(__pyx_v_values); + } + __Pyx_PyThreadState_assign + if (PY_MAJOR_VERSION >= 3) { ++ __Pyx_XGIVEREF(__pyx_t_19); + __Pyx_XGIVEREF(__pyx_t_18); + __Pyx_XGIVEREF(__pyx_t_17); +- __Pyx_XGIVEREF(__pyx_t_16); +- __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_17, __pyx_t_16); ++ __Pyx_ExceptionReset(__pyx_t_19, __pyx_t_18, __pyx_t_17); + } ++ __Pyx_XGIVEREF(__pyx_t_22); + __Pyx_XGIVEREF(__pyx_t_21); + __Pyx_XGIVEREF(__pyx_t_20); +- __Pyx_XGIVEREF(__pyx_t_19); +- __Pyx_ErrRestore(__pyx_t_21, __pyx_t_20, __pyx_t_19); +- __pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_17 = 0; __pyx_t_16 = 0; +- __pyx_lineno = __pyx_t_14; __pyx_clineno = __pyx_t_3; __pyx_filename = __pyx_t_22; ++ __Pyx_ErrRestore(__pyx_t_22, __pyx_t_21, __pyx_t_20); ++ __pyx_t_22 = 0; __pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_17 = 0; ++ __pyx_lineno = __pyx_t_15; __pyx_clineno = __pyx_t_3; __pyx_filename = __pyx_t_23; + goto __pyx_L1_error; + } + __pyx_L17:; +@@ -5163,8 +4914,8 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + * return result[0] + * else: + */ +- __pyx_t_23 = PyList_GET_SIZE(__pyx_v_result); if (unlikely(__pyx_t_23 == -1)) __PYX_ERR(0, 1147, __pyx_L1_error) +- __pyx_t_4 = ((__pyx_t_23 == 1) != 0); ++ __pyx_t_8 = PyList_GET_SIZE(__pyx_v_result); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 1147, __pyx_L1_error) ++ __pyx_t_4 = ((__pyx_t_8 == 1) != 0); + if (__pyx_t_4) { + + /* "netCDF4/_netCDF4.pyx":1148 +@@ -5175,10 +4926,10 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + * return result + */ + __Pyx_XDECREF(__pyx_r); +- __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_result, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1148, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __pyx_r = __pyx_t_6; +- __pyx_t_6 = 0; ++ __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_result, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1148, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __pyx_r = __pyx_t_1; ++ __pyx_t_1 = 0; + goto __pyx_L0; + + /* "netCDF4/_netCDF4.pyx":1147 +@@ -5252,10 +5003,10 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign +- __Pyx_ExceptionSave(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); +- __Pyx_XGOTREF(__pyx_t_16); ++ __Pyx_ExceptionSave(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19); + __Pyx_XGOTREF(__pyx_t_17); + __Pyx_XGOTREF(__pyx_t_18); ++ __Pyx_XGOTREF(__pyx_t_19); + /*try:*/ { + + /* "netCDF4/_netCDF4.pyx":1156 +@@ -5265,13 +5016,13 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + * value_arr = numpy.empty(att_len,type_att) + * except KeyError: + */ +- __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_nctonptype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1156, __pyx_L33_error) +- __Pyx_GOTREF(__pyx_t_6); +- __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_att_type, nc_type, 1, __Pyx_PyInt_From_nc_type, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1156, __pyx_L33_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __pyx_v_type_att = __pyx_t_8; +- __pyx_t_8 = 0; ++ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_nctonptype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1156, __pyx_L33_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_att_type, nc_type, 1, __Pyx_PyInt_From_nc_type, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1156, __pyx_L33_error) ++ __Pyx_GOTREF(__pyx_t_9); ++ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; ++ __pyx_v_type_att = __pyx_t_9; ++ __pyx_t_9 = 0; + + /* "netCDF4/_netCDF4.pyx":1157 + * try: +@@ -5280,63 +5031,43 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + * except KeyError: + * # check if it's a compound + */ +- __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1157, __pyx_L33_error) +- __Pyx_GOTREF(__pyx_t_6); +- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1157, __pyx_L33_error) ++ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1157, __pyx_L33_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1157, __pyx_L33_error) + __Pyx_GOTREF(__pyx_t_5); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_att_len); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1157, __pyx_L33_error) +- __Pyx_GOTREF(__pyx_t_6); +- __pyx_t_13 = NULL; +- __pyx_t_3 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { +- __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_5); +- if (likely(__pyx_t_13)) { ++ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; ++ __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_att_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1157, __pyx_L33_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __pyx_t_14 = NULL; ++ __pyx_t_8 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) { ++ __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_5); ++ if (likely(__pyx_t_14)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +- __Pyx_INCREF(__pyx_t_13); ++ __Pyx_INCREF(__pyx_t_14); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); +- __pyx_t_3 = 1; ++ __pyx_t_8 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_t_6, __pyx_v_type_att}; +- __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_3, 2+__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1157, __pyx_L33_error) +- __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_t_6, __pyx_v_type_att}; +- __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_3, 2+__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1157, __pyx_L33_error) +- __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } else +- #endif +- { +- __pyx_t_1 = PyTuple_New(2+__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1157, __pyx_L33_error) +- __Pyx_GOTREF(__pyx_t_1); +- if (__pyx_t_13) { +- __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13); __pyx_t_13 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_6); +- PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_3, __pyx_t_6); +- __Pyx_INCREF(__pyx_v_type_att); +- __Pyx_GIVEREF(__pyx_v_type_att); +- PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_3, __pyx_v_type_att); +- __pyx_t_6 = 0; +- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1157, __pyx_L33_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; ++ __pyx_t_6 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1157, __pyx_L33_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ if (__pyx_t_14) { ++ __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_14); __pyx_t_14 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_1); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_8, __pyx_t_1); ++ __Pyx_INCREF(__pyx_v_type_att); ++ __Pyx_GIVEREF(__pyx_v_type_att); ++ PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_8, __pyx_v_type_att); ++ __pyx_t_1 = 0; ++ __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1157, __pyx_L33_error) ++ __Pyx_GOTREF(__pyx_t_9); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_7netCDF4_8_netCDF4_ndarray))))) __PYX_ERR(0, 1157, __pyx_L33_error) +- __pyx_v_value_arr = ((PyArrayObject *)__pyx_t_8); +- __pyx_t_8 = 0; ++ if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_7netCDF4_8_netCDF4_ndarray))))) __PYX_ERR(0, 1157, __pyx_L33_error) ++ __pyx_v_value_arr = ((PyArrayObject *)__pyx_t_9); ++ __pyx_t_9 = 0; + + /* "netCDF4/_netCDF4.pyx":1155 + * if att_type == NC_LONG: +@@ -5346,19 +5077,19 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + * value_arr = numpy.empty(att_len,type_att) + */ + } +- __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; ++ __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; + goto __pyx_L40_try_end; + __pyx_L33_error:; + __Pyx_PyThreadState_assign + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; +- __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; ++ __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; ++ __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + + /* "netCDF4/_netCDF4.pyx":1158 + * type_att = _nctonptype[att_type] # see if it is a primitive type +@@ -5370,10 +5101,10 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + __pyx_t_3 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); + if (__pyx_t_3) { + __Pyx_AddTraceback("netCDF4._netCDF4._get_att", __pyx_clineno, __pyx_lineno, __pyx_filename); +- if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_5, &__pyx_t_1) < 0) __PYX_ERR(0, 1158, __pyx_L35_except_error) +- __Pyx_GOTREF(__pyx_t_8); ++ if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_5, &__pyx_t_6) < 0) __PYX_ERR(0, 1158, __pyx_L35_except_error) ++ __Pyx_GOTREF(__pyx_t_9); + __Pyx_GOTREF(__pyx_t_5); +- __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_GOTREF(__pyx_t_6); + + /* "netCDF4/_netCDF4.pyx":1160 + * except KeyError: +@@ -5385,10 +5116,10 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign +- __Pyx_ExceptionSave(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21); +- __Pyx_XGOTREF(__pyx_t_19); ++ __Pyx_ExceptionSave(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); + __Pyx_XGOTREF(__pyx_t_20); + __Pyx_XGOTREF(__pyx_t_21); ++ __Pyx_XGOTREF(__pyx_t_22); + /*try:*/ { + + /* "netCDF4/_netCDF4.pyx":1161 +@@ -5398,10 +5129,10 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + * value_arr = numpy.empty(att_len,type_att) + * except: + */ +- __pyx_t_6 = __pyx_f_7netCDF4_8_netCDF4__read_compound(__pyx_v_grp, __pyx_v_att_type, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1161, __pyx_L43_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_XDECREF_SET(__pyx_v_type_att, __pyx_t_6); +- __pyx_t_6 = 0; ++ __pyx_t_1 = __pyx_f_7netCDF4_8_netCDF4__read_compound(__pyx_v_grp, __pyx_v_att_type, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1161, __pyx_L43_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_XDECREF_SET(__pyx_v_type_att, __pyx_t_1); ++ __pyx_t_1 = 0; + + /* "netCDF4/_netCDF4.pyx":1162 + * try: +@@ -5410,63 +5141,43 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + * except: + * # check if it's an enum + */ +- __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1162, __pyx_L43_error) +- __Pyx_GOTREF(__pyx_t_13); +- __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1162, __pyx_L43_error) +- __Pyx_GOTREF(__pyx_t_10); +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; +- __pyx_t_13 = __Pyx_PyInt_FromSize_t(__pyx_v_att_len); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1162, __pyx_L43_error) +- __Pyx_GOTREF(__pyx_t_13); ++ __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1162, __pyx_L43_error) ++ __Pyx_GOTREF(__pyx_t_14); ++ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_empty); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1162, __pyx_L43_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; ++ __pyx_t_14 = __Pyx_PyInt_FromSize_t(__pyx_v_att_len); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1162, __pyx_L43_error) ++ __Pyx_GOTREF(__pyx_t_14); + __pyx_t_7 = NULL; +- __pyx_t_3 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { +- __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_10); ++ __pyx_t_8 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_11))) { ++ __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_11); + if (likely(__pyx_t_7)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_10, function); +- __pyx_t_3 = 1; ++ __Pyx_DECREF_SET(__pyx_t_11, function); ++ __pyx_t_8 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_10)) { +- PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_13, __pyx_v_type_att}; +- __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_3, 2+__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1162, __pyx_L43_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { +- PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_13, __pyx_v_type_att}; +- __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_3, 2+__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1162, __pyx_L43_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; +- } else +- #endif +- { +- __pyx_t_24 = PyTuple_New(2+__pyx_t_3); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1162, __pyx_L43_error) +- __Pyx_GOTREF(__pyx_t_24); +- if (__pyx_t_7) { +- __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_24, 0, __pyx_t_7); __pyx_t_7 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_13); +- PyTuple_SET_ITEM(__pyx_t_24, 0+__pyx_t_3, __pyx_t_13); +- __Pyx_INCREF(__pyx_v_type_att); +- __Pyx_GIVEREF(__pyx_v_type_att); +- PyTuple_SET_ITEM(__pyx_t_24, 1+__pyx_t_3, __pyx_v_type_att); +- __pyx_t_13 = 0; +- __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_24, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1162, __pyx_L43_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; ++ __pyx_t_24 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1162, __pyx_L43_error) ++ __Pyx_GOTREF(__pyx_t_24); ++ if (__pyx_t_7) { ++ __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_24, 0, __pyx_t_7); __pyx_t_7 = NULL; + } +- __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; +- if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_7netCDF4_8_netCDF4_ndarray))))) __PYX_ERR(0, 1162, __pyx_L43_error) +- __Pyx_XDECREF_SET(__pyx_v_value_arr, ((PyArrayObject *)__pyx_t_6)); +- __pyx_t_6 = 0; ++ __Pyx_GIVEREF(__pyx_t_14); ++ PyTuple_SET_ITEM(__pyx_t_24, 0+__pyx_t_8, __pyx_t_14); ++ __Pyx_INCREF(__pyx_v_type_att); ++ __Pyx_GIVEREF(__pyx_v_type_att); ++ PyTuple_SET_ITEM(__pyx_t_24, 1+__pyx_t_8, __pyx_v_type_att); ++ __pyx_t_14 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_24, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1162, __pyx_L43_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7netCDF4_8_netCDF4_ndarray))))) __PYX_ERR(0, 1162, __pyx_L43_error) ++ __Pyx_XDECREF_SET(__pyx_v_value_arr, ((PyArrayObject *)__pyx_t_1)); ++ __pyx_t_1 = 0; + + /* "netCDF4/_netCDF4.pyx":1160 + * except KeyError: +@@ -5476,17 +5187,17 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + * value_arr = numpy.empty(att_len,type_att) + */ + } +- __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; + __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; ++ __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; + goto __pyx_L50_try_end; + __pyx_L43_error:; + __Pyx_PyThreadState_assign + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; ++ __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; +- __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; ++ __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "netCDF4/_netCDF4.pyx":1163 + * type_att = _read_compound(grp, att_type) +@@ -5497,9 +5208,9 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + */ + /*except:*/ { + __Pyx_AddTraceback("netCDF4._netCDF4._get_att", __pyx_clineno, __pyx_lineno, __pyx_filename); +- if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_10, &__pyx_t_24) < 0) __PYX_ERR(0, 1163, __pyx_L45_except_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_GOTREF(__pyx_t_10); ++ if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_11, &__pyx_t_24) < 0) __PYX_ERR(0, 1163, __pyx_L45_except_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_GOTREF(__pyx_t_11); + __Pyx_GOTREF(__pyx_t_24); + + /* "netCDF4/_netCDF4.pyx":1165 +@@ -5525,10 +5236,10 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + * value_arr = numpy.empty(att_len,type_att.dtype) + * except: + */ +- __pyx_t_13 = __pyx_f_7netCDF4_8_netCDF4__read_enum(__pyx_v_grp, __pyx_v_att_type, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1166, __pyx_L53_error) +- __Pyx_GOTREF(__pyx_t_13); +- __Pyx_XDECREF_SET(__pyx_v_type_att, __pyx_t_13); +- __pyx_t_13 = 0; ++ __pyx_t_14 = __pyx_f_7netCDF4_8_netCDF4__read_enum(__pyx_v_grp, __pyx_v_att_type, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1166, __pyx_L53_error) ++ __Pyx_GOTREF(__pyx_t_14); ++ __Pyx_XDECREF_SET(__pyx_v_type_att, __pyx_t_14); ++ __pyx_t_14 = 0; + + /* "netCDF4/_netCDF4.pyx":1167 + * try: +@@ -5547,57 +5258,35 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + __pyx_t_29 = __Pyx_PyObject_GetAttrStr(__pyx_v_type_att, __pyx_n_s_dtype); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 1167, __pyx_L53_error) + __Pyx_GOTREF(__pyx_t_29); + __pyx_t_30 = NULL; +- __pyx_t_3 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_28))) { ++ __pyx_t_8 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_28))) { + __pyx_t_30 = PyMethod_GET_SELF(__pyx_t_28); + if (likely(__pyx_t_30)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_28); + __Pyx_INCREF(__pyx_t_30); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_28, function); +- __pyx_t_3 = 1; ++ __pyx_t_8 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_28)) { +- PyObject *__pyx_temp[3] = {__pyx_t_30, __pyx_t_7, __pyx_t_29}; +- __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_28, __pyx_temp+1-__pyx_t_3, 2+__pyx_t_3); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1167, __pyx_L53_error) +- __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0; +- __Pyx_GOTREF(__pyx_t_13); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_28)) { +- PyObject *__pyx_temp[3] = {__pyx_t_30, __pyx_t_7, __pyx_t_29}; +- __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_28, __pyx_temp+1-__pyx_t_3, 2+__pyx_t_3); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1167, __pyx_L53_error) +- __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0; +- __Pyx_GOTREF(__pyx_t_13); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0; +- } else +- #endif +- { +- __pyx_t_31 = PyTuple_New(2+__pyx_t_3); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1167, __pyx_L53_error) +- __Pyx_GOTREF(__pyx_t_31); +- if (__pyx_t_30) { +- __Pyx_GIVEREF(__pyx_t_30); PyTuple_SET_ITEM(__pyx_t_31, 0, __pyx_t_30); __pyx_t_30 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_7); +- PyTuple_SET_ITEM(__pyx_t_31, 0+__pyx_t_3, __pyx_t_7); +- __Pyx_GIVEREF(__pyx_t_29); +- PyTuple_SET_ITEM(__pyx_t_31, 1+__pyx_t_3, __pyx_t_29); +- __pyx_t_7 = 0; +- __pyx_t_29 = 0; +- __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_28, __pyx_t_31, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1167, __pyx_L53_error) +- __Pyx_GOTREF(__pyx_t_13); +- __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; ++ __pyx_t_31 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1167, __pyx_L53_error) ++ __Pyx_GOTREF(__pyx_t_31); ++ if (__pyx_t_30) { ++ __Pyx_GIVEREF(__pyx_t_30); PyTuple_SET_ITEM(__pyx_t_31, 0, __pyx_t_30); __pyx_t_30 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_31, 0+__pyx_t_8, __pyx_t_7); ++ __Pyx_GIVEREF(__pyx_t_29); ++ PyTuple_SET_ITEM(__pyx_t_31, 1+__pyx_t_8, __pyx_t_29); ++ __pyx_t_7 = 0; ++ __pyx_t_29 = 0; ++ __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_28, __pyx_t_31, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1167, __pyx_L53_error) ++ __Pyx_GOTREF(__pyx_t_14); ++ __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; + __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0; +- if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_7netCDF4_8_netCDF4_ndarray))))) __PYX_ERR(0, 1167, __pyx_L53_error) +- __Pyx_XDECREF_SET(__pyx_v_value_arr, ((PyArrayObject *)__pyx_t_13)); +- __pyx_t_13 = 0; ++ if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_7netCDF4_8_netCDF4_ndarray))))) __PYX_ERR(0, 1167, __pyx_L53_error) ++ __Pyx_XDECREF_SET(__pyx_v_value_arr, ((PyArrayObject *)__pyx_t_14)); ++ __pyx_t_14 = 0; + + /* "netCDF4/_netCDF4.pyx":1165 + * except: +@@ -5618,7 +5307,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + __Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0; + __Pyx_XDECREF(__pyx_t_31); __pyx_t_31 = 0; + __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0; +- __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; ++ __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + + /* "netCDF4/_netCDF4.pyx":1168 + * type_att = _read_enum(grp, att_type) +@@ -5629,8 +5318,8 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + */ + /*except:*/ { + __Pyx_AddTraceback("netCDF4._netCDF4._get_att", __pyx_clineno, __pyx_lineno, __pyx_filename); +- if (__Pyx_GetException(&__pyx_t_13, &__pyx_t_28, &__pyx_t_31) < 0) __PYX_ERR(0, 1168, __pyx_L55_except_error) +- __Pyx_GOTREF(__pyx_t_13); ++ if (__Pyx_GetException(&__pyx_t_14, &__pyx_t_28, &__pyx_t_31) < 0) __PYX_ERR(0, 1168, __pyx_L55_except_error) ++ __Pyx_GOTREF(__pyx_t_14); + __Pyx_GOTREF(__pyx_t_28); + __Pyx_GOTREF(__pyx_t_31); + +@@ -5675,8 +5364,8 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + goto __pyx_L45_except_error; + __pyx_L60_try_end:; + } +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; ++ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; + goto __pyx_L44_exception_handled; + } +@@ -5690,22 +5379,22 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + * value_arr = numpy.empty(att_len,type_att) + */ + __Pyx_PyThreadState_assign +- __Pyx_XGIVEREF(__pyx_t_19); + __Pyx_XGIVEREF(__pyx_t_20); + __Pyx_XGIVEREF(__pyx_t_21); +- __Pyx_ExceptionReset(__pyx_t_19, __pyx_t_20, __pyx_t_21); ++ __Pyx_XGIVEREF(__pyx_t_22); ++ __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22); + goto __pyx_L35_except_error; + __pyx_L44_exception_handled:; + __Pyx_PyThreadState_assign +- __Pyx_XGIVEREF(__pyx_t_19); + __Pyx_XGIVEREF(__pyx_t_20); + __Pyx_XGIVEREF(__pyx_t_21); +- __Pyx_ExceptionReset(__pyx_t_19, __pyx_t_20, __pyx_t_21); ++ __Pyx_XGIVEREF(__pyx_t_22); ++ __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22); + __pyx_L50_try_end:; + } +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L34_exception_handled; + } + goto __pyx_L35_except_error; +@@ -5719,17 +5408,17 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + * value_arr = numpy.empty(att_len,type_att) + */ + __Pyx_PyThreadState_assign +- __Pyx_XGIVEREF(__pyx_t_16); + __Pyx_XGIVEREF(__pyx_t_17); + __Pyx_XGIVEREF(__pyx_t_18); +- __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); ++ __Pyx_XGIVEREF(__pyx_t_19); ++ __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19); + goto __pyx_L1_error; + __pyx_L34_exception_handled:; + __Pyx_PyThreadState_assign +- __Pyx_XGIVEREF(__pyx_t_16); + __Pyx_XGIVEREF(__pyx_t_17); + __Pyx_XGIVEREF(__pyx_t_18); +- __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); ++ __Pyx_XGIVEREF(__pyx_t_19); ++ __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19); + __pyx_L40_try_end:; + } + +@@ -5793,19 +5482,19 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + * # return a scalar for a scalar array + */ + __pyx_t_2 = ((char *)nc_strerror(__pyx_v_ierr)); +- __pyx_t_1 = __Pyx_decode_c_string(__pyx_t_2, 0, strlen(__pyx_t_2), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1173, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); ++ __pyx_t_6 = __Pyx_decode_c_string(__pyx_t_2, 0, strlen(__pyx_t_2), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1173, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); +- __Pyx_INCREF(__pyx_t_1); +- __Pyx_GIVEREF(__pyx_t_1); +- PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_AttributeError, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1173, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_INCREF(__pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_6); ++ PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; ++ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_AttributeError, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1173, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_Raise(__pyx_t_1, 0, 0, 0); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; ++ __Pyx_Raise(__pyx_t_6, 0, 0, 0); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __PYX_ERR(0, 1173, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":1172 +@@ -5824,10 +5513,10 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + * # return a scalar for a scalar array + * return value_arr.item() + */ +- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_value_arr), __pyx_n_s_shape); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1174, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_empty_tuple, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1174, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; ++ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_value_arr), __pyx_n_s_shape); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1174, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __pyx_t_5 = PyObject_RichCompare(__pyx_t_6, __pyx_empty_tuple, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1174, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1174, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__pyx_t_4) { +@@ -5840,26 +5529,26 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + * # return a scalar for a single element array + */ + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_value_arr), __pyx_n_s_item); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1176, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_8 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { +- __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1); +- if (likely(__pyx_t_8)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +- __Pyx_INCREF(__pyx_t_8); ++ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_value_arr), __pyx_n_s_item); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1176, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __pyx_t_9 = NULL; ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { ++ __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_6); ++ if (likely(__pyx_t_9)) { ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); ++ __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_1, function); ++ __Pyx_DECREF_SET(__pyx_t_6, function); + } + } +- if (__pyx_t_8) { +- __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1176, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ if (__pyx_t_9) { ++ __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1176, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } else { +- __pyx_t_5 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1176, __pyx_L1_error) ++ __pyx_t_5 = __Pyx_PyObject_CallNoArg(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1176, __pyx_L1_error) + } + __Pyx_GOTREF(__pyx_t_5); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; +@@ -5936,9 +5625,9 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_att(PyObject *__pyx_v_grp, int + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); +- __Pyx_XDECREF(__pyx_t_8); +- __Pyx_XDECREF(__pyx_t_10); +- __Pyx_XDECREF(__pyx_t_13); ++ __Pyx_XDECREF(__pyx_t_9); ++ __Pyx_XDECREF(__pyx_t_11); ++ __Pyx_XDECREF(__pyx_t_14); + __Pyx_XDECREF(__pyx_t_24); + __Pyx_XDECREF(__pyx_t_28); + __Pyx_XDECREF(__pyx_t_29); +@@ -6592,7 +6281,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__set_att(PyObject *__pyx_v_grp, int + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -6605,33 +6294,15 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__set_att(PyObject *__pyx_v_grp, int + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_value}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1253, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_value}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1253, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1253, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_5); +- __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; +- __Pyx_INCREF(__pyx_v_value); +- __Pyx_GIVEREF(__pyx_v_value); +- PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_value); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1253, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- } ++ __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1253, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_5); ++ __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; ++ __Pyx_INCREF(__pyx_v_value); ++ __Pyx_GIVEREF(__pyx_v_value); ++ PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_value); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1253, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7netCDF4_8_netCDF4_ndarray))))) __PYX_ERR(0, 1253, __pyx_L1_error) +@@ -6905,7 +6576,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__set_att(PyObject *__pyx_v_grp, int + if (likely(!__pyx_t_12)) { + if (likely(PyList_CheckExact(__pyx_t_4))) { + if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_5 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_11); __Pyx_INCREF(__pyx_t_5); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 1271, __pyx_L18_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1271, __pyx_L18_error) +@@ -6913,7 +6584,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__set_att(PyObject *__pyx_v_grp, int + #endif + } else { + if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_11); __Pyx_INCREF(__pyx_t_5); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 1271, __pyx_L18_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1271, __pyx_L18_error) +@@ -6971,7 +6642,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__set_att(PyObject *__pyx_v_grp, int + if (likely(!__pyx_t_12)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 1272, __pyx_L18_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1272, __pyx_L18_error) +@@ -6979,7 +6650,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__set_att(PyObject *__pyx_v_grp, int + #endif + } else { + if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 1272, __pyx_L18_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1272, __pyx_L18_error) +@@ -7176,7 +6847,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__set_att(PyObject *__pyx_v_grp, int + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_value_arr), __pyx_n_s_item); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -7220,7 +6891,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__set_att(PyObject *__pyx_v_grp, int + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_value_arr), __pyx_n_s_ravel); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -7250,7 +6921,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__set_att(PyObject *__pyx_v_grp, int + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_value_arr1, __pyx_n_s_tolist); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -7397,7 +7068,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__set_att(PyObject *__pyx_v_grp, int + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_to_ascii); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1296, __pyx_L33_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -7410,33 +7081,15 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__set_att(PyObject *__pyx_v_grp, int + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_dats); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1296, __pyx_L33_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_dats}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1296, __pyx_L33_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_dats}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1296, __pyx_L33_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1296, __pyx_L33_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); __pyx_t_5 = NULL; +- __Pyx_INCREF(__pyx_v_dats); +- __Pyx_GIVEREF(__pyx_v_dats); +- PyTuple_SET_ITEM(__pyx_t_3, 0+1, __pyx_v_dats); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1296, __pyx_L33_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } ++ __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1296, __pyx_L33_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); __pyx_t_5 = NULL; ++ __Pyx_INCREF(__pyx_v_dats); ++ __Pyx_GIVEREF(__pyx_v_dats); ++ PyTuple_SET_ITEM(__pyx_t_3, 0+1, __pyx_v_dats); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1296, __pyx_L33_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_dats_ascii = __pyx_t_1; +@@ -7655,7 +7308,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__set_att(PyObject *__pyx_v_grp, int + __pyx_t_3 = __pyx_f_7netCDF4_8_netCDF4__find_cmptype(__pyx_v_grp, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- __pyx_t_22 = __Pyx_PyInt_As_nc_type(__pyx_t_3); if (unlikely((__pyx_t_22 == ((nc_type)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1308, __pyx_L1_error) ++ __pyx_t_22 = __Pyx_PyInt_As_nc_type(__pyx_t_3); if (unlikely((__pyx_t_22 == (nc_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 1308, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_xtype = __pyx_t_22; + +@@ -7764,7 +7417,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__set_att(PyObject *__pyx_v_grp, int + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- __pyx_t_22 = __Pyx_PyInt_As_nc_type(__pyx_t_4); if (unlikely((__pyx_t_22 == ((nc_type)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1312, __pyx_L1_error) ++ __pyx_t_22 = __Pyx_PyInt_As_nc_type(__pyx_t_4); if (unlikely((__pyx_t_22 == (nc_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 1312, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_xtype = __pyx_t_22; + +@@ -7914,12 +7567,13 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; +- int __pyx_t_9; ++ Py_ssize_t __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; +- PyObject *__pyx_t_14 = NULL; ++ int __pyx_t_14; ++ PyObject *__pyx_t_15 = NULL; + __Pyx_RefNannySetupContext("_get_types", 0); + + /* "netCDF4/_netCDF4.pyx":1326 +@@ -8141,7 +7795,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1339, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -8171,7 +7825,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1340, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -8201,7 +7855,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -8362,7 +8016,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = NULL; + __pyx_t_9 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -8372,42 +8026,20 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + __pyx_t_9 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1351, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1351, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- { +- __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1351, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_10); +- if (__pyx_t_8) { +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_5); +- PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_5); +- __Pyx_GIVEREF(__pyx_t_7); +- PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_7); +- __pyx_t_5 = 0; +- __pyx_t_7 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1351, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; ++ __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1351, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ if (__pyx_t_8) { ++ __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_5); ++ PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_5); ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_7); ++ __pyx_t_5 = 0; ++ __pyx_t_7 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1351, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_1); + __pyx_t_1 = 0; +@@ -8468,8 +8100,8 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + * msg='WARNING: unsupported Compound type, skipping...' + * warnings.warn(msg) + */ +- __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); +- if (__pyx_t_9) { ++ __pyx_t_14 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); ++ if (__pyx_t_14) { + __Pyx_AddTraceback("netCDF4._netCDF4._get_types", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_10) < 0) __PYX_ERR(0, 1356, __pyx_L23_except_error) + __Pyx_GOTREF(__pyx_t_1); +@@ -8499,7 +8131,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); +@@ -8512,33 +8144,15 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_msg); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1358, __pyx_L23_except_error) + __Pyx_GOTREF(__pyx_t_7); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_msg}; +- __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1358, __pyx_L23_except_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_msg}; +- __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1358, __pyx_L23_except_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- { +- __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1358, __pyx_L23_except_error) +- __Pyx_GOTREF(__pyx_t_14); +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_5); __pyx_t_5 = NULL; +- __Pyx_INCREF(__pyx_v_msg); +- __Pyx_GIVEREF(__pyx_v_msg); +- PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_v_msg); +- __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_14, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1358, __pyx_L23_except_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; +- } ++ __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1358, __pyx_L23_except_error) ++ __Pyx_GOTREF(__pyx_t_15); ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_5); __pyx_t_5 = NULL; ++ __Pyx_INCREF(__pyx_v_msg); ++ __Pyx_GIVEREF(__pyx_v_msg); ++ PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_v_msg); ++ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_15, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1358, __pyx_L23_except_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +@@ -8628,7 +8242,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = NULL; + __pyx_t_9 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -8638,42 +8252,20 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + __pyx_t_9 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_6, __pyx_t_7}; +- __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1362, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_10); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_6, __pyx_t_7}; +- __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1362, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_10); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- { +- __pyx_t_14 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1362, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_14); +- if (__pyx_t_8) { +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_8); __pyx_t_8 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_6); +- PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_9, __pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_7); +- PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_9, __pyx_t_7); +- __pyx_t_6 = 0; +- __pyx_t_7 = 0; +- __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_14, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1362, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_10); +- __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; ++ __pyx_t_15 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1362, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_15); ++ if (__pyx_t_8) { ++ __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_8); __pyx_t_8 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_6); ++ PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_9, __pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_9, __pyx_t_7); ++ __pyx_t_6 = 0; ++ __pyx_t_7 = 0; ++ __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_15, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1362, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_10); + __pyx_t_10 = 0; +@@ -8724,7 +8316,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; ++ __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + +@@ -8735,13 +8327,13 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + * msg='WARNING: unsupported VLEN type, skipping...' + * warnings.warn(msg) + */ +- __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); +- if (__pyx_t_9) { ++ __pyx_t_14 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); ++ if (__pyx_t_14) { + __Pyx_AddTraceback("netCDF4._netCDF4._get_types", __pyx_clineno, __pyx_lineno, __pyx_filename); +- if (__Pyx_GetException(&__pyx_t_10, &__pyx_t_1, &__pyx_t_14) < 0) __PYX_ERR(0, 1367, __pyx_L33_except_error) ++ if (__Pyx_GetException(&__pyx_t_10, &__pyx_t_1, &__pyx_t_15) < 0) __PYX_ERR(0, 1367, __pyx_L33_except_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_GOTREF(__pyx_t_1); +- __Pyx_GOTREF(__pyx_t_14); ++ __Pyx_GOTREF(__pyx_t_15); + + /* "netCDF4/_netCDF4.pyx":1368 + * vltype = _read_vlen(group, xtype) +@@ -8766,7 +8358,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); +@@ -8779,33 +8371,15 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_msg); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1369, __pyx_L33_except_error) + __Pyx_GOTREF(__pyx_t_7); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_msg}; +- __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1369, __pyx_L33_except_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_msg}; +- __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1369, __pyx_L33_except_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- { +- __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1369, __pyx_L33_except_error) +- __Pyx_GOTREF(__pyx_t_5); +- __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = NULL; +- __Pyx_INCREF(__pyx_v_msg); +- __Pyx_GIVEREF(__pyx_v_msg); +- PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_msg); +- __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_5, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1369, __pyx_L33_except_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- } ++ __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1369, __pyx_L33_except_error) ++ __Pyx_GOTREF(__pyx_t_5); ++ __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = NULL; ++ __Pyx_INCREF(__pyx_v_msg); ++ __Pyx_GIVEREF(__pyx_v_msg); ++ PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_msg); ++ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_5, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1369, __pyx_L33_except_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +@@ -8821,7 +8395,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + __pyx_L40_except_continue:; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; ++ __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + goto __pyx_L37_try_continue; + } + goto __pyx_L33_except_error; +@@ -8895,7 +8469,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = NULL; + __pyx_t_9 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_10))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_10); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); +@@ -8905,45 +8479,23 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + __pyx_t_9 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_10)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_1, __pyx_t_7}; +- __pyx_t_14 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1373, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_14); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_1, __pyx_t_7}; +- __pyx_t_14 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1373, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_14); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- { +- __pyx_t_5 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1373, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_5); +- if (__pyx_t_8) { +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_8); __pyx_t_8 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_1); +- PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_9, __pyx_t_1); +- __Pyx_GIVEREF(__pyx_t_7); +- PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_9, __pyx_t_7); +- __pyx_t_1 = 0; +- __pyx_t_7 = 0; +- __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_5, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1373, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_14); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; ++ __pyx_t_5 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1373, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_5); ++ if (__pyx_t_8) { ++ __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_8); __pyx_t_8 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_1); ++ PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_9, __pyx_t_1); ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_9, __pyx_t_7); ++ __pyx_t_1 = 0; ++ __pyx_t_7 = 0; ++ __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_5, NULL); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1373, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_15); ++ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; +- __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_14); +- __pyx_t_14 = 0; ++ __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_15); ++ __pyx_t_15 = 0; + + /* "netCDF4/_netCDF4.pyx":1376 + * # read the Enum type info from the file, +@@ -8968,10 +8520,10 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + * except KeyError: + * msg='WARNING: unsupported Enum type, skipping...' + */ +- __pyx_t_14 = __pyx_f_7netCDF4_8_netCDF4__read_enum(__pyx_v_group, __pyx_v_xtype, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1377, __pyx_L41_error) +- __Pyx_GOTREF(__pyx_t_14); +- __Pyx_XDECREF_SET(__pyx_v_enumtype, __pyx_t_14); +- __pyx_t_14 = 0; ++ __pyx_t_15 = __pyx_f_7netCDF4_8_netCDF4__read_enum(__pyx_v_group, __pyx_v_xtype, NULL); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1377, __pyx_L41_error) ++ __Pyx_GOTREF(__pyx_t_15); ++ __Pyx_XDECREF_SET(__pyx_v_enumtype, __pyx_t_15); ++ __pyx_t_15 = 0; + + /* "netCDF4/_netCDF4.pyx":1376 + * # read the Enum type info from the file, +@@ -8993,7 +8545,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; +- __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; ++ __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + + /* "netCDF4/_netCDF4.pyx":1378 + * try: +@@ -9002,11 +8554,11 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + * msg='WARNING: unsupported Enum type, skipping...' + * warnings.warn(msg) + */ +- __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); +- if (__pyx_t_9) { ++ __pyx_t_14 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); ++ if (__pyx_t_14) { + __Pyx_AddTraceback("netCDF4._netCDF4._get_types", __pyx_clineno, __pyx_lineno, __pyx_filename); +- if (__Pyx_GetException(&__pyx_t_14, &__pyx_t_10, &__pyx_t_5) < 0) __PYX_ERR(0, 1378, __pyx_L43_except_error) +- __Pyx_GOTREF(__pyx_t_14); ++ if (__Pyx_GetException(&__pyx_t_15, &__pyx_t_10, &__pyx_t_5) < 0) __PYX_ERR(0, 1378, __pyx_L43_except_error) ++ __Pyx_GOTREF(__pyx_t_15); + __Pyx_GOTREF(__pyx_t_10); + __Pyx_GOTREF(__pyx_t_5); + +@@ -9033,7 +8585,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); +@@ -9046,33 +8598,15 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_msg); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1380, __pyx_L43_except_error) + __Pyx_GOTREF(__pyx_t_7); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_msg}; +- __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1380, __pyx_L43_except_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_msg}; +- __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1380, __pyx_L43_except_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1380, __pyx_L43_except_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __pyx_t_1 = NULL; +- __Pyx_INCREF(__pyx_v_msg); +- __Pyx_GIVEREF(__pyx_v_msg); +- PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_msg); +- __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1380, __pyx_L43_except_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } ++ __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1380, __pyx_L43_except_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __pyx_t_1 = NULL; ++ __Pyx_INCREF(__pyx_v_msg); ++ __Pyx_GIVEREF(__pyx_v_msg); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_msg); ++ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1380, __pyx_L43_except_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +@@ -9086,7 +8620,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + */ + goto __pyx_L50_except_continue; + __pyx_L50_except_continue:; +- __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; ++ __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + goto __pyx_L47_try_continue; +@@ -9196,7 +8730,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_types(PyObject *__pyx_v_group) + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_10); +- __Pyx_XDECREF(__pyx_t_14); ++ __Pyx_XDECREF(__pyx_t_15); + __Pyx_AddTraceback("netCDF4._netCDF4._get_types", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; +@@ -9240,7 +8774,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_dims(PyObject *__pyx_v_group) { + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; +- int __pyx_t_9; ++ Py_ssize_t __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + __Pyx_RefNannySetupContext("_get_dims", 0); + +@@ -9351,7 +8885,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_dims(PyObject *__pyx_v_group) { + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -9632,7 +9166,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_dims(PyObject *__pyx_v_group) { + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = NULL; + __pyx_t_9 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -9642,42 +9176,20 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_dims(PyObject *__pyx_v_group) { + __pyx_t_9 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1415, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1415, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- { +- __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1415, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_10); +- if (__pyx_t_8) { +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_5); +- PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_5); +- __Pyx_GIVEREF(__pyx_t_7); +- PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_7); +- __pyx_t_5 = 0; +- __pyx_t_7 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1415, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; ++ __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1415, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ if (__pyx_t_8) { ++ __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_5); ++ PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_5); ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_7); ++ __pyx_t_5 = 0; ++ __pyx_t_7 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1415, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_1); + __pyx_t_1 = 0; +@@ -9794,7 +9306,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_grps(PyObject *__pyx_v_group) { + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; +- int __pyx_t_9; ++ Py_ssize_t __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + __Pyx_RefNannySetupContext("_get_grps", 0); + +@@ -9905,7 +9417,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_grps(PyObject *__pyx_v_group) { + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1433, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -10140,7 +9652,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_grps(PyObject *__pyx_v_group) { + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = NULL; + __pyx_t_9 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -10150,42 +9662,20 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_grps(PyObject *__pyx_v_group) { + __pyx_t_9 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1445, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1445, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- { +- __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1445, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_10); +- if (__pyx_t_8) { +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_5); +- PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_5); +- __Pyx_GIVEREF(__pyx_t_7); +- PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_7); +- __pyx_t_5 = 0; +- __pyx_t_7 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1445, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; ++ __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1445, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ if (__pyx_t_8) { ++ __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_5); ++ PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_5); ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_7); ++ __pyx_t_5 = 0; ++ __pyx_t_7 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1445, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_1); + __pyx_t_1 = 0; +@@ -10318,23 +9808,23 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; +- int __pyx_t_9; ++ Py_ssize_t __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_t_14; +- PyObject *__pyx_t_15 = NULL; ++ int __pyx_t_15; + PyObject *__pyx_t_16 = NULL; + PyObject *__pyx_t_17 = NULL; +- struct __pyx_opt_args_7netCDF4_8_netCDF4__read_compound __pyx_t_18; +- PyObject *__pyx_t_19 = NULL; ++ PyObject *__pyx_t_18 = NULL; ++ struct __pyx_opt_args_7netCDF4_8_netCDF4__read_compound __pyx_t_19; + PyObject *__pyx_t_20 = NULL; + PyObject *__pyx_t_21 = NULL; + PyObject *__pyx_t_22 = NULL; +- struct __pyx_opt_args_7netCDF4_8_netCDF4__read_vlen __pyx_t_23; +- struct __pyx_opt_args_7netCDF4_8_netCDF4__read_enum __pyx_t_24; +- Py_ssize_t __pyx_t_25; ++ PyObject *__pyx_t_23 = NULL; ++ struct __pyx_opt_args_7netCDF4_8_netCDF4__read_vlen __pyx_t_24; ++ struct __pyx_opt_args_7netCDF4_8_netCDF4__read_enum __pyx_t_25; + PyObject *(*__pyx_t_26)(PyObject *); + PyObject *(*__pyx_t_27)(PyObject *); + int __pyx_t_28; +@@ -10447,7 +9937,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -10737,7 +10227,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = NULL; + __pyx_t_9 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -10747,42 +10237,20 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + __pyx_t_9 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1486, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1486, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- { +- __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1486, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_10); +- if (__pyx_t_8) { +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_5); +- PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_5); +- __Pyx_GIVEREF(__pyx_t_7); +- PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_7); +- __pyx_t_5 = 0; +- __pyx_t_7 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1486, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; ++ __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1486, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ if (__pyx_t_8) { ++ __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_5); ++ PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_5); ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_7); ++ __pyx_t_5 = 0; ++ __pyx_t_7 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1486, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_1); + __pyx_t_1 = 0; +@@ -11134,8 +10602,8 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + * if xtype == NC_STRING: + * datatype = str + */ +- __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); +- if (__pyx_t_9) { ++ __pyx_t_15 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); ++ if (__pyx_t_15) { + __Pyx_AddTraceback("netCDF4._netCDF4._get_vars", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_1, &__pyx_t_10) < 0) __PYX_ERR(0, 1508, __pyx_L38_except_error) + __Pyx_GOTREF(__pyx_t_6); +@@ -11235,10 +10703,10 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign +- __Pyx_ExceptionSave(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); +- __Pyx_XGOTREF(__pyx_t_15); ++ __Pyx_ExceptionSave(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); + __Pyx_XGOTREF(__pyx_t_16); + __Pyx_XGOTREF(__pyx_t_17); ++ __Pyx_XGOTREF(__pyx_t_18); + /*try:*/ { + + /* "netCDF4/_netCDF4.pyx":1518 +@@ -11248,9 +10716,9 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + * except KeyError: + * msg="WARNING: variable '%s' has unsupported compound datatype, skipping .." % name + */ +- __pyx_t_18.__pyx_n = 1; +- __pyx_t_18.endian = __pyx_v_endianness; +- __pyx_t_7 = __pyx_f_7netCDF4_8_netCDF4__read_compound(__pyx_v_group, __pyx_v_xtype, &__pyx_t_18); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1518, __pyx_L53_error) ++ __pyx_t_19.__pyx_n = 1; ++ __pyx_t_19.endian = __pyx_v_endianness; ++ __pyx_t_7 = __pyx_f_7netCDF4_8_netCDF4__read_compound(__pyx_v_group, __pyx_v_xtype, &__pyx_t_19); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1518, __pyx_L53_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_XDECREF_SET(__pyx_v_datatype, __pyx_t_7); + __pyx_t_7 = 0; +@@ -11263,9 +10731,9 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + * except KeyError: + */ + } +- __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; ++ __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + goto __pyx_L60_try_end; + __pyx_L53_error:; + __Pyx_PyThreadState_assign +@@ -11280,8 +10748,8 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + * msg="WARNING: variable '%s' has unsupported compound datatype, skipping .." % name + * warnings.warn(msg) + */ +- __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); +- if (__pyx_t_9) { ++ __pyx_t_15 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); ++ if (__pyx_t_15) { + __Pyx_AddTraceback("netCDF4._netCDF4._get_vars", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_5, &__pyx_t_8) < 0) __PYX_ERR(0, 1519, __pyx_L55_except_error) + __Pyx_GOTREF(__pyx_t_7); +@@ -11295,10 +10763,10 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + * warnings.warn(msg) + * continue + */ +- __pyx_t_19 = __Pyx_PyString_Format(__pyx_kp_s_WARNING_variable_s_has_unsupport, __pyx_v_name); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1520, __pyx_L55_except_error) +- __Pyx_GOTREF(__pyx_t_19); +- __Pyx_XDECREF_SET(__pyx_v_msg, ((PyObject*)__pyx_t_19)); +- __pyx_t_19 = 0; ++ __pyx_t_20 = __Pyx_PyString_Format(__pyx_kp_s_WARNING_variable_s_has_unsupport, __pyx_v_name); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1520, __pyx_L55_except_error) ++ __Pyx_GOTREF(__pyx_t_20); ++ __Pyx_XDECREF_SET(__pyx_v_msg, ((PyObject*)__pyx_t_20)); ++ __pyx_t_20 = 0; + + /* "netCDF4/_netCDF4.pyx":1521 + * except KeyError: +@@ -11307,55 +10775,37 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + * continue + * elif classp == NC_VLEN: # a compound type + */ +- __pyx_t_20 = __Pyx_GetModuleGlobalName(__pyx_n_s_warnings); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1521, __pyx_L55_except_error) +- __Pyx_GOTREF(__pyx_t_20); +- __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_20, __pyx_n_s_warn); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1521, __pyx_L55_except_error) ++ __pyx_t_21 = __Pyx_GetModuleGlobalName(__pyx_n_s_warnings); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1521, __pyx_L55_except_error) + __Pyx_GOTREF(__pyx_t_21); +- __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; +- __pyx_t_20 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) { +- __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_21); +- if (likely(__pyx_t_20)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); +- __Pyx_INCREF(__pyx_t_20); ++ __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_warn); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1521, __pyx_L55_except_error) ++ __Pyx_GOTREF(__pyx_t_22); ++ __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; ++ __pyx_t_21 = NULL; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_22))) { ++ __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_22); ++ if (likely(__pyx_t_21)) { ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22); ++ __Pyx_INCREF(__pyx_t_21); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_21, function); ++ __Pyx_DECREF_SET(__pyx_t_22, function); + } + } +- if (!__pyx_t_20) { +- __pyx_t_19 = __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_v_msg); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1521, __pyx_L55_except_error) +- __Pyx_GOTREF(__pyx_t_19); ++ if (!__pyx_t_21) { ++ __pyx_t_20 = __Pyx_PyObject_CallOneArg(__pyx_t_22, __pyx_v_msg); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1521, __pyx_L55_except_error) ++ __Pyx_GOTREF(__pyx_t_20); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_21)) { +- PyObject *__pyx_temp[2] = {__pyx_t_20, __pyx_v_msg}; +- __pyx_t_19 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1521, __pyx_L55_except_error) +- __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; +- __Pyx_GOTREF(__pyx_t_19); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) { +- PyObject *__pyx_temp[2] = {__pyx_t_20, __pyx_v_msg}; +- __pyx_t_19 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1521, __pyx_L55_except_error) +- __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; +- __Pyx_GOTREF(__pyx_t_19); +- } else +- #endif +- { +- __pyx_t_22 = PyTuple_New(1+1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1521, __pyx_L55_except_error) +- __Pyx_GOTREF(__pyx_t_22); +- __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_20); __pyx_t_20 = NULL; +- __Pyx_INCREF(__pyx_v_msg); +- __Pyx_GIVEREF(__pyx_v_msg); +- PyTuple_SET_ITEM(__pyx_t_22, 0+1, __pyx_v_msg); +- __pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_22, NULL); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1521, __pyx_L55_except_error) +- __Pyx_GOTREF(__pyx_t_19); +- __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; +- } ++ __pyx_t_23 = PyTuple_New(1+1); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1521, __pyx_L55_except_error) ++ __Pyx_GOTREF(__pyx_t_23); ++ __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_t_21); __pyx_t_21 = NULL; ++ __Pyx_INCREF(__pyx_v_msg); ++ __Pyx_GIVEREF(__pyx_v_msg); ++ PyTuple_SET_ITEM(__pyx_t_23, 0+1, __pyx_v_msg); ++ __pyx_t_20 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_23, NULL); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1521, __pyx_L55_except_error) ++ __Pyx_GOTREF(__pyx_t_20); ++ __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; + } +- __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; +- __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; ++ __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; ++ __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; + + /* "netCDF4/_netCDF4.pyx":1522 + * msg="WARNING: variable '%s' has unsupported compound datatype, skipping .." % name +@@ -11382,17 +10832,17 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + * except KeyError: + */ + __Pyx_PyThreadState_assign +- __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_XGIVEREF(__pyx_t_16); + __Pyx_XGIVEREF(__pyx_t_17); +- __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17); ++ __Pyx_XGIVEREF(__pyx_t_18); ++ __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); + goto __pyx_L38_except_error; + __pyx_L59_try_continue:; + __Pyx_PyThreadState_assign +- __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_XGIVEREF(__pyx_t_16); + __Pyx_XGIVEREF(__pyx_t_17); +- __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17); ++ __Pyx_XGIVEREF(__pyx_t_18); ++ __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); + goto __pyx_L46_except_continue; + __pyx_L60_try_end:; + } +@@ -11425,10 +10875,10 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign +- __Pyx_ExceptionSave(&__pyx_t_17, &__pyx_t_16, &__pyx_t_15); ++ __Pyx_ExceptionSave(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16); ++ __Pyx_XGOTREF(__pyx_t_18); + __Pyx_XGOTREF(__pyx_t_17); + __Pyx_XGOTREF(__pyx_t_16); +- __Pyx_XGOTREF(__pyx_t_15); + /*try:*/ { + + /* "netCDF4/_netCDF4.pyx":1526 +@@ -11438,9 +10888,9 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + * except KeyError: + * msg="WARNING: variable '%s' has unsupported VLEN datatype, skipping .." % name + */ +- __pyx_t_23.__pyx_n = 1; +- __pyx_t_23.endian = __pyx_v_endianness; +- __pyx_t_8 = __pyx_f_7netCDF4_8_netCDF4__read_vlen(__pyx_v_group, __pyx_v_xtype, &__pyx_t_23); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1526, __pyx_L63_error) ++ __pyx_t_24.__pyx_n = 1; ++ __pyx_t_24.endian = __pyx_v_endianness; ++ __pyx_t_8 = __pyx_f_7netCDF4_8_netCDF4__read_vlen(__pyx_v_group, __pyx_v_xtype, &__pyx_t_24); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1526, __pyx_L63_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_XDECREF_SET(__pyx_v_datatype, __pyx_t_8); + __pyx_t_8 = 0; +@@ -11453,16 +10903,16 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + * except KeyError: + */ + } ++ __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; + __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; +- __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + goto __pyx_L70_try_end; + __pyx_L63_error:; + __Pyx_PyThreadState_assign +- __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; +- __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; + __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; +- __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; ++ __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; ++ __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; ++ __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +@@ -11474,8 +10924,8 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + * msg="WARNING: variable '%s' has unsupported VLEN datatype, skipping .." % name + * warnings.warn(msg) + */ +- __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); +- if (__pyx_t_9) { ++ __pyx_t_15 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); ++ if (__pyx_t_15) { + __Pyx_AddTraceback("netCDF4._netCDF4._get_vars", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_5, &__pyx_t_7) < 0) __PYX_ERR(0, 1527, __pyx_L65_except_error) + __Pyx_GOTREF(__pyx_t_8); +@@ -11489,10 +10939,10 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + * warnings.warn(msg) + * continue + */ +- __pyx_t_19 = __Pyx_PyString_Format(__pyx_kp_s_WARNING_variable_s_has_unsupport_2, __pyx_v_name); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1528, __pyx_L65_except_error) +- __Pyx_GOTREF(__pyx_t_19); +- __Pyx_XDECREF_SET(__pyx_v_msg, ((PyObject*)__pyx_t_19)); +- __pyx_t_19 = 0; ++ __pyx_t_20 = __Pyx_PyString_Format(__pyx_kp_s_WARNING_variable_s_has_unsupport_2, __pyx_v_name); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1528, __pyx_L65_except_error) ++ __Pyx_GOTREF(__pyx_t_20); ++ __Pyx_XDECREF_SET(__pyx_v_msg, ((PyObject*)__pyx_t_20)); ++ __pyx_t_20 = 0; + + /* "netCDF4/_netCDF4.pyx":1529 + * except KeyError: +@@ -11501,55 +10951,37 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + * continue + * elif classp == NC_ENUM: + */ +- __pyx_t_21 = __Pyx_GetModuleGlobalName(__pyx_n_s_warnings); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1529, __pyx_L65_except_error) +- __Pyx_GOTREF(__pyx_t_21); +- __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_warn); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1529, __pyx_L65_except_error) ++ __pyx_t_22 = __Pyx_GetModuleGlobalName(__pyx_n_s_warnings); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1529, __pyx_L65_except_error) + __Pyx_GOTREF(__pyx_t_22); +- __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; +- __pyx_t_21 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_22))) { +- __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_22); +- if (likely(__pyx_t_21)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22); +- __Pyx_INCREF(__pyx_t_21); ++ __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_warn); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1529, __pyx_L65_except_error) ++ __Pyx_GOTREF(__pyx_t_23); ++ __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; ++ __pyx_t_22 = NULL; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_23))) { ++ __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_23); ++ if (likely(__pyx_t_22)) { ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_23); ++ __Pyx_INCREF(__pyx_t_22); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_22, function); ++ __Pyx_DECREF_SET(__pyx_t_23, function); + } + } +- if (!__pyx_t_21) { +- __pyx_t_19 = __Pyx_PyObject_CallOneArg(__pyx_t_22, __pyx_v_msg); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1529, __pyx_L65_except_error) +- __Pyx_GOTREF(__pyx_t_19); ++ if (!__pyx_t_22) { ++ __pyx_t_20 = __Pyx_PyObject_CallOneArg(__pyx_t_23, __pyx_v_msg); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1529, __pyx_L65_except_error) ++ __Pyx_GOTREF(__pyx_t_20); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_22)) { +- PyObject *__pyx_temp[2] = {__pyx_t_21, __pyx_v_msg}; +- __pyx_t_19 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1529, __pyx_L65_except_error) +- __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; +- __Pyx_GOTREF(__pyx_t_19); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) { +- PyObject *__pyx_temp[2] = {__pyx_t_21, __pyx_v_msg}; +- __pyx_t_19 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1529, __pyx_L65_except_error) +- __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; +- __Pyx_GOTREF(__pyx_t_19); +- } else +- #endif +- { +- __pyx_t_20 = PyTuple_New(1+1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1529, __pyx_L65_except_error) +- __Pyx_GOTREF(__pyx_t_20); +- __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_21); __pyx_t_21 = NULL; +- __Pyx_INCREF(__pyx_v_msg); +- __Pyx_GIVEREF(__pyx_v_msg); +- PyTuple_SET_ITEM(__pyx_t_20, 0+1, __pyx_v_msg); +- __pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_20, NULL); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1529, __pyx_L65_except_error) +- __Pyx_GOTREF(__pyx_t_19); +- __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; +- } ++ __pyx_t_21 = PyTuple_New(1+1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1529, __pyx_L65_except_error) ++ __Pyx_GOTREF(__pyx_t_21); ++ __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_22); __pyx_t_22 = NULL; ++ __Pyx_INCREF(__pyx_v_msg); ++ __Pyx_GIVEREF(__pyx_v_msg); ++ PyTuple_SET_ITEM(__pyx_t_21, 0+1, __pyx_v_msg); ++ __pyx_t_20 = __Pyx_PyObject_Call(__pyx_t_23, __pyx_t_21, NULL); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1529, __pyx_L65_except_error) ++ __Pyx_GOTREF(__pyx_t_20); ++ __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; + } +- __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; +- __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; ++ __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; ++ __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; + + /* "netCDF4/_netCDF4.pyx":1530 + * msg="WARNING: variable '%s' has unsupported VLEN datatype, skipping .." % name +@@ -11576,17 +11008,17 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + * except KeyError: + */ + __Pyx_PyThreadState_assign ++ __Pyx_XGIVEREF(__pyx_t_18); + __Pyx_XGIVEREF(__pyx_t_17); + __Pyx_XGIVEREF(__pyx_t_16); +- __Pyx_XGIVEREF(__pyx_t_15); +- __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_16, __pyx_t_15); ++ __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_17, __pyx_t_16); + goto __pyx_L38_except_error; + __pyx_L69_try_continue:; + __Pyx_PyThreadState_assign ++ __Pyx_XGIVEREF(__pyx_t_18); + __Pyx_XGIVEREF(__pyx_t_17); + __Pyx_XGIVEREF(__pyx_t_16); +- __Pyx_XGIVEREF(__pyx_t_15); +- __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_16, __pyx_t_15); ++ __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_17, __pyx_t_16); + goto __pyx_L46_except_continue; + __pyx_L70_try_end:; + } +@@ -11619,10 +11051,10 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign +- __Pyx_ExceptionSave(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); +- __Pyx_XGOTREF(__pyx_t_15); ++ __Pyx_ExceptionSave(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); + __Pyx_XGOTREF(__pyx_t_16); + __Pyx_XGOTREF(__pyx_t_17); ++ __Pyx_XGOTREF(__pyx_t_18); + /*try:*/ { + + /* "netCDF4/_netCDF4.pyx":1534 +@@ -11632,9 +11064,9 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + * except KeyError: + * msg="WARNING: variable '%s' has unsupported Enum datatype, skipping .." % name + */ +- __pyx_t_24.__pyx_n = 1; +- __pyx_t_24.endian = __pyx_v_endianness; +- __pyx_t_7 = __pyx_f_7netCDF4_8_netCDF4__read_enum(__pyx_v_group, __pyx_v_xtype, &__pyx_t_24); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1534, __pyx_L73_error) ++ __pyx_t_25.__pyx_n = 1; ++ __pyx_t_25.endian = __pyx_v_endianness; ++ __pyx_t_7 = __pyx_f_7netCDF4_8_netCDF4__read_enum(__pyx_v_group, __pyx_v_xtype, &__pyx_t_25); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1534, __pyx_L73_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_XDECREF_SET(__pyx_v_datatype, __pyx_t_7); + __pyx_t_7 = 0; +@@ -11647,16 +11079,16 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + * except KeyError: + */ + } +- __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; ++ __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + goto __pyx_L80_try_end; + __pyx_L73_error:; + __Pyx_PyThreadState_assign ++ __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; + __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; ++ __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; + __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; +- __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; +- __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +@@ -11668,8 +11100,8 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + * msg="WARNING: variable '%s' has unsupported Enum datatype, skipping .." % name + * warnings.warn(msg) + */ +- __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); +- if (__pyx_t_9) { ++ __pyx_t_15 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); ++ if (__pyx_t_15) { + __Pyx_AddTraceback("netCDF4._netCDF4._get_vars", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_5, &__pyx_t_8) < 0) __PYX_ERR(0, 1535, __pyx_L75_except_error) + __Pyx_GOTREF(__pyx_t_7); +@@ -11683,10 +11115,10 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + * warnings.warn(msg) + * continue + */ +- __pyx_t_19 = __Pyx_PyString_Format(__pyx_kp_s_WARNING_variable_s_has_unsupport_3, __pyx_v_name); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1536, __pyx_L75_except_error) +- __Pyx_GOTREF(__pyx_t_19); +- __Pyx_XDECREF_SET(__pyx_v_msg, ((PyObject*)__pyx_t_19)); +- __pyx_t_19 = 0; ++ __pyx_t_20 = __Pyx_PyString_Format(__pyx_kp_s_WARNING_variable_s_has_unsupport_3, __pyx_v_name); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1536, __pyx_L75_except_error) ++ __Pyx_GOTREF(__pyx_t_20); ++ __Pyx_XDECREF_SET(__pyx_v_msg, ((PyObject*)__pyx_t_20)); ++ __pyx_t_20 = 0; + + /* "netCDF4/_netCDF4.pyx":1537 + * except KeyError: +@@ -11695,55 +11127,37 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + * continue + * else: + */ +- __pyx_t_22 = __Pyx_GetModuleGlobalName(__pyx_n_s_warnings); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1537, __pyx_L75_except_error) +- __Pyx_GOTREF(__pyx_t_22); +- __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_warn); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1537, __pyx_L75_except_error) +- __Pyx_GOTREF(__pyx_t_20); +- __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; +- __pyx_t_22 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_20))) { +- __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_20); +- if (likely(__pyx_t_22)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20); +- __Pyx_INCREF(__pyx_t_22); ++ __pyx_t_23 = __Pyx_GetModuleGlobalName(__pyx_n_s_warnings); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1537, __pyx_L75_except_error) ++ __Pyx_GOTREF(__pyx_t_23); ++ __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_23, __pyx_n_s_warn); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1537, __pyx_L75_except_error) ++ __Pyx_GOTREF(__pyx_t_21); ++ __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; ++ __pyx_t_23 = NULL; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_21))) { ++ __pyx_t_23 = PyMethod_GET_SELF(__pyx_t_21); ++ if (likely(__pyx_t_23)) { ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); ++ __Pyx_INCREF(__pyx_t_23); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_20, function); ++ __Pyx_DECREF_SET(__pyx_t_21, function); + } + } +- if (!__pyx_t_22) { +- __pyx_t_19 = __Pyx_PyObject_CallOneArg(__pyx_t_20, __pyx_v_msg); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1537, __pyx_L75_except_error) +- __Pyx_GOTREF(__pyx_t_19); ++ if (!__pyx_t_23) { ++ __pyx_t_20 = __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_v_msg); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1537, __pyx_L75_except_error) ++ __Pyx_GOTREF(__pyx_t_20); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_20)) { +- PyObject *__pyx_temp[2] = {__pyx_t_22, __pyx_v_msg}; +- __pyx_t_19 = __Pyx_PyFunction_FastCall(__pyx_t_20, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1537, __pyx_L75_except_error) +- __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; +- __Pyx_GOTREF(__pyx_t_19); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_20)) { +- PyObject *__pyx_temp[2] = {__pyx_t_22, __pyx_v_msg}; +- __pyx_t_19 = __Pyx_PyCFunction_FastCall(__pyx_t_20, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1537, __pyx_L75_except_error) +- __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; +- __Pyx_GOTREF(__pyx_t_19); +- } else +- #endif +- { +- __pyx_t_21 = PyTuple_New(1+1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1537, __pyx_L75_except_error) +- __Pyx_GOTREF(__pyx_t_21); +- __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_22); __pyx_t_22 = NULL; +- __Pyx_INCREF(__pyx_v_msg); +- __Pyx_GIVEREF(__pyx_v_msg); +- PyTuple_SET_ITEM(__pyx_t_21, 0+1, __pyx_v_msg); +- __pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_20, __pyx_t_21, NULL); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1537, __pyx_L75_except_error) +- __Pyx_GOTREF(__pyx_t_19); +- __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; +- } ++ __pyx_t_22 = PyTuple_New(1+1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1537, __pyx_L75_except_error) ++ __Pyx_GOTREF(__pyx_t_22); ++ __Pyx_GIVEREF(__pyx_t_23); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_23); __pyx_t_23 = NULL; ++ __Pyx_INCREF(__pyx_v_msg); ++ __Pyx_GIVEREF(__pyx_v_msg); ++ PyTuple_SET_ITEM(__pyx_t_22, 0+1, __pyx_v_msg); ++ __pyx_t_20 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_22, NULL); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1537, __pyx_L75_except_error) ++ __Pyx_GOTREF(__pyx_t_20); ++ __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; + } ++ __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; + __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; +- __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + + /* "netCDF4/_netCDF4.pyx":1538 + * msg="WARNING: variable '%s' has unsupported Enum datatype, skipping .." % name +@@ -11770,17 +11184,17 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + * except KeyError: + */ + __Pyx_PyThreadState_assign +- __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_XGIVEREF(__pyx_t_16); + __Pyx_XGIVEREF(__pyx_t_17); +- __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17); ++ __Pyx_XGIVEREF(__pyx_t_18); ++ __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); + goto __pyx_L38_except_error; + __pyx_L79_try_continue:; + __Pyx_PyThreadState_assign +- __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_XGIVEREF(__pyx_t_16); + __Pyx_XGIVEREF(__pyx_t_17); +- __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17); ++ __Pyx_XGIVEREF(__pyx_t_18); ++ __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); + goto __pyx_L46_except_continue; + __pyx_L80_try_end:; + } +@@ -11820,7 +11234,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); +@@ -11833,33 +11247,15 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_msg); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1541, __pyx_L38_except_error) + __Pyx_GOTREF(__pyx_t_8); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_msg}; +- __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1541, __pyx_L38_except_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_8); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_msg}; +- __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1541, __pyx_L38_except_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_8); +- } else +- #endif +- { +- __pyx_t_19 = PyTuple_New(1+1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1541, __pyx_L38_except_error) +- __Pyx_GOTREF(__pyx_t_19); +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_5); __pyx_t_5 = NULL; +- __Pyx_INCREF(__pyx_v_msg); +- __Pyx_GIVEREF(__pyx_v_msg); +- PyTuple_SET_ITEM(__pyx_t_19, 0+1, __pyx_v_msg); +- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_19, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1541, __pyx_L38_except_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; +- } ++ __pyx_t_20 = PyTuple_New(1+1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1541, __pyx_L38_except_error) ++ __Pyx_GOTREF(__pyx_t_20); ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_5); __pyx_t_5 = NULL; ++ __Pyx_INCREF(__pyx_v_msg); ++ __Pyx_GIVEREF(__pyx_v_msg); ++ PyTuple_SET_ITEM(__pyx_t_20, 0+1, __pyx_v_msg); ++ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_20, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1541, __pyx_L38_except_error) ++ __Pyx_GOTREF(__pyx_t_8); ++ __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +@@ -12114,8 +11510,8 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + * grp = group + * found = False + */ +- __pyx_t_9 = __pyx_v_numdims; +- for (__pyx_v_nn = 0; __pyx_v_nn < __pyx_t_9; __pyx_v_nn++) { ++ __pyx_t_15 = __pyx_v_numdims; ++ for (__pyx_v_nn = 0; __pyx_v_nn < __pyx_t_15; __pyx_v_nn++) { + + /* "netCDF4/_netCDF4.pyx":1561 + * dimensions = [] +@@ -12160,7 +11556,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -12178,10 +11574,10 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) { +- __pyx_t_6 = __pyx_t_10; __Pyx_INCREF(__pyx_t_6); __pyx_t_25 = 0; ++ __pyx_t_6 = __pyx_t_10; __Pyx_INCREF(__pyx_t_6); __pyx_t_9 = 0; + __pyx_t_26 = NULL; + } else { +- __pyx_t_25 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1564, __pyx_L1_error) ++ __pyx_t_9 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_26 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 1564, __pyx_L1_error) + } +@@ -12189,19 +11585,19 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + for (;;) { + if (likely(!__pyx_t_26)) { + if (likely(PyList_CheckExact(__pyx_t_6))) { +- if (__pyx_t_25 >= PyList_GET_SIZE(__pyx_t_6)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_10 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_25); __Pyx_INCREF(__pyx_t_10); __pyx_t_25++; if (unlikely(0 < 0)) __PYX_ERR(0, 1564, __pyx_L1_error) ++ if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_6)) break; ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_10 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_10); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1564, __pyx_L1_error) + #else +- __pyx_t_10 = PySequence_ITEM(__pyx_t_6, __pyx_t_25); __pyx_t_25++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1564, __pyx_L1_error) ++ __pyx_t_10 = PySequence_ITEM(__pyx_t_6, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + #endif + } else { +- if (__pyx_t_25 >= PyTuple_GET_SIZE(__pyx_t_6)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_25); __Pyx_INCREF(__pyx_t_10); __pyx_t_25++; if (unlikely(0 < 0)) __PYX_ERR(0, 1564, __pyx_L1_error) ++ if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_6)) break; ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_10); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1564, __pyx_L1_error) + #else +- __pyx_t_10 = PySequence_ITEM(__pyx_t_6, __pyx_t_25); __pyx_t_25++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1564, __pyx_L1_error) ++ __pyx_t_10 = PySequence_ITEM(__pyx_t_6, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + #endif + } +@@ -12219,7 +11615,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + } + if ((likely(PyTuple_CheckExact(__pyx_t_10))) || (PyList_CheckExact(__pyx_t_10))) { + PyObject* sequence = __pyx_t_10; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -12229,7 +11625,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 1564, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); +@@ -12555,10 +11951,10 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__get_vars(PyObject *__pyx_v_group) { + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_10); +- __Pyx_XDECREF(__pyx_t_19); + __Pyx_XDECREF(__pyx_t_20); + __Pyx_XDECREF(__pyx_t_21); + __Pyx_XDECREF(__pyx_t_22); ++ __Pyx_XDECREF(__pyx_t_23); + __Pyx_AddTraceback("netCDF4._netCDF4._get_vars", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; +@@ -13741,7 +13137,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_7Dataset___init__(struct __pyx_obj_7netCD + __Pyx_GOTREF(__pyx_t_6); + if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) { + PyObject* sequence = __pyx_t_6; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -13751,7 +13147,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_7Dataset___init__(struct __pyx_obj_7netCD + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 1865, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); +@@ -13888,7 +13284,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_7Dataset___init__(struct __pyx_obj_7netCD + __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1874, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); +@@ -14084,7 +13480,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_4__exit__(struct __pyx_obj + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_close); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1880, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -14180,7 +13576,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_6__getitem__(struct __pyx_ + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -14193,33 +13589,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_6__getitem__(struct __pyx_ + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_elem); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_elem}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1885, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_elem}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1885, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1885, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; +- __Pyx_INCREF(__pyx_v_elem); +- __Pyx_GIVEREF(__pyx_v_elem); +- PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_elem); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1885, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } ++ __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1885, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; ++ __Pyx_INCREF(__pyx_v_elem); ++ __Pyx_GIVEREF(__pyx_v_elem); ++ PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_elem); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1885, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF_SET(__pyx_v_elem, __pyx_t_1); +@@ -14238,7 +13616,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_6__getitem__(struct __pyx_ + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -14251,38 +13629,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_6__getitem__(struct __pyx_ + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_elem); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1887, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_elem}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1887, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_elem}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1887, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1887, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL; +- __Pyx_INCREF(__pyx_v_elem); +- __Pyx_GIVEREF(__pyx_v_elem); +- PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_v_elem); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1887, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } ++ __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1887, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL; ++ __Pyx_INCREF(__pyx_v_elem); ++ __Pyx_GIVEREF(__pyx_v_elem); ++ PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_v_elem); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1887, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -14292,7 +13652,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_6__getitem__(struct __pyx_ + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 1887, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); +@@ -14379,7 +13739,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_6__getitem__(struct __pyx_ + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1891, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1891, __pyx_L1_error) +@@ -14387,7 +13747,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_6__getitem__(struct __pyx_ + #endif + } else { + if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1891, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1891, __pyx_L1_error) +@@ -14714,7 +14074,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_10__repr__(struct __pyx_ob + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1935, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -14767,7 +14127,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_10__repr__(struct __pyx_ob + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_default_encoding); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1937, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -14781,35 +14141,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_10__repr__(struct __pyx_ob + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1937, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1937, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1937, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; +- __Pyx_GIVEREF(__pyx_t_4); +- PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_4); +- __pyx_t_4 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1937, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } ++ __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1937, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; ++ __Pyx_GIVEREF(__pyx_t_4); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_4); ++ __pyx_t_4 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1937, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_1; +@@ -14925,7 +14265,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_12__unicode__(struct __pyx + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->dimensions, __pyx_n_s_keys); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -14955,7 +14295,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_12__unicode__(struct __pyx + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 1942, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1942, __pyx_L1_error) +@@ -14963,7 +14303,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_12__unicode__(struct __pyx + #endif + } else { + if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 1942, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1942, __pyx_L1_error) +@@ -14995,7 +14335,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_12__unicode__(struct __pyx + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_tostr); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1941, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -15008,33 +14348,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_12__unicode__(struct __pyx + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_dimname); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1941, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_dimname}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1941, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_dimname}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1941, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1941, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL; +- __Pyx_INCREF(__pyx_v_dimname); +- __Pyx_GIVEREF(__pyx_v_dimname); +- PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_v_dimname); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1941, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- } ++ __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1941, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_8); ++ __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL; ++ __Pyx_INCREF(__pyx_v_dimname); ++ __Pyx_GIVEREF(__pyx_v_dimname); ++ PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_v_dimname); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1941, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = PyObject_GetItem(__pyx_v_self->dimensions, __pyx_v_dimname); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1941, __pyx_L1_error) +@@ -15096,7 +14418,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_12__unicode__(struct __pyx + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->variables, __pyx_n_s_keys); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1949, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_8 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -15126,7 +14448,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_12__unicode__(struct __pyx + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_4))) { + if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_2 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 1949, __pyx_L1_error) + #else + __pyx_t_2 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1949, __pyx_L1_error) +@@ -15134,7 +14456,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_12__unicode__(struct __pyx + #endif + } else { + if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 1949, __pyx_L1_error) + #else + __pyx_t_2 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1949, __pyx_L1_error) +@@ -15171,7 +14493,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_12__unicode__(struct __pyx + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); +@@ -15185,35 +14507,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_12__unicode__(struct __pyx + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_7}; +- __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1944, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_7}; +- __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1944, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- { +- __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1944, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_10); +- __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_1); __pyx_t_1 = NULL; +- __Pyx_GIVEREF(__pyx_t_7); +- PyTuple_SET_ITEM(__pyx_t_10, 0+1, __pyx_t_7); +- __pyx_t_7 = 0; +- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1944, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; +- } ++ __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1944, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_1); __pyx_t_1 = NULL; ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_10, 0+1, __pyx_t_7); ++ __pyx_t_7 = 0; ++ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1944, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = PyNumber_Add(__pyx_t_2, __pyx_kp_s_4m); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1944, __pyx_L1_error) +@@ -15222,7 +14524,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_12__unicode__(struct __pyx + __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s_tostr); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1944, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_7 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_10))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_10); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); +@@ -15235,33 +14537,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_12__unicode__(struct __pyx + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_varname); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1944, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_10)) { +- PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_varname}; +- __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1944, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { +- PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_varname}; +- __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1944, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- } else +- #endif +- { +- __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1944, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7); __pyx_t_7 = NULL; +- __Pyx_INCREF(__pyx_v_varname); +- __Pyx_GIVEREF(__pyx_v_varname); +- PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_varname); +- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1944, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } ++ __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1944, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7); __pyx_t_7 = NULL; ++ __Pyx_INCREF(__pyx_v_varname); ++ __Pyx_GIVEREF(__pyx_v_varname); ++ PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_varname); ++ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1944, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = PyNumber_Add(__pyx_t_8, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1944, __pyx_L1_error) +@@ -15287,7 +14571,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_12__unicode__(struct __pyx + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); +@@ -15301,35 +14585,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_12__unicode__(struct __pyx + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_10); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_7}; +- __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1945, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_10); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_7}; +- __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1945, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_10); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- { +- __pyx_t_11 = PyTuple_New(1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1945, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_1); __pyx_t_1 = NULL; +- __Pyx_GIVEREF(__pyx_t_7); +- PyTuple_SET_ITEM(__pyx_t_11, 0+1, __pyx_t_7); +- __pyx_t_7 = 0; +- __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_11, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1945, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_10); +- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; +- } ++ __pyx_t_11 = PyTuple_New(1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1945, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_1); __pyx_t_1 = NULL; ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_11, 0+1, __pyx_t_7); ++ __pyx_t_7 = 0; ++ __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_11, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1945, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + +@@ -15438,7 +14702,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_12__unicode__(struct __pyx + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->groups, __pyx_n_s_keys); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1950, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_10 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_10)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); +@@ -15468,7 +14732,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_12__unicode__(struct __pyx + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_8))) { + if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_8)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_3 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 1950, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1950, __pyx_L1_error) +@@ -15476,7 +14740,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_12__unicode__(struct __pyx + #endif + } else { + if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_8)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 1950, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1950, __pyx_L1_error) +@@ -15500,7 +14764,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_12__unicode__(struct __pyx + __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s_tostr); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1950, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_10))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_10); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); +@@ -15513,33 +14777,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_12__unicode__(struct __pyx + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_grpname); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1950, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_10)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_grpname}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1950, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_grpname}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1950, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- { +- __pyx_t_11 = PyTuple_New(1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1950, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_2); __pyx_t_2 = NULL; +- __Pyx_INCREF(__pyx_v_grpname); +- __Pyx_GIVEREF(__pyx_v_grpname); +- PyTuple_SET_ITEM(__pyx_t_11, 0+1, __pyx_v_grpname); +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1950, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; +- } ++ __pyx_t_11 = PyTuple_New(1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1950, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_2); __pyx_t_2 = NULL; ++ __Pyx_INCREF(__pyx_v_grpname); ++ __Pyx_GIVEREF(__pyx_v_grpname); ++ PyTuple_SET_ITEM(__pyx_t_11, 0+1, __pyx_v_grpname); ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1950, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + } + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 1950, __pyx_L1_error) +@@ -15636,7 +14882,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_12__unicode__(struct __pyx + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_ncattrs); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1957, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_10 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_10)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -15666,7 +14912,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_12__unicode__(struct __pyx + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_8 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 1957, __pyx_L1_error) + #else + __pyx_t_8 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1957, __pyx_L1_error) +@@ -15674,7 +14920,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_12__unicode__(struct __pyx + #endif + } else { + if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 1957, __pyx_L1_error) + #else + __pyx_t_8 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1957, __pyx_L1_error) +@@ -15706,7 +14952,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_12__unicode__(struct __pyx + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getncattr); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1956, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_11 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_10))) { + __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10); + if (likely(__pyx_t_11)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); +@@ -15719,33 +14965,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_12__unicode__(struct __pyx + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1956, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_10)) { +- PyObject *__pyx_temp[2] = {__pyx_t_11, __pyx_v_name}; +- __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1956, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; +- __Pyx_GOTREF(__pyx_t_8); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { +- PyObject *__pyx_temp[2] = {__pyx_t_11, __pyx_v_name}; +- __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1956, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; +- __Pyx_GOTREF(__pyx_t_8); +- } else +- #endif +- { +- __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1956, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_11); __pyx_t_11 = NULL; +- __Pyx_INCREF(__pyx_v_name); +- __Pyx_GIVEREF(__pyx_v_name); +- PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_v_name); +- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_2, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1956, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } ++ __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1956, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_11); __pyx_t_11 = NULL; ++ __Pyx_INCREF(__pyx_v_name); ++ __Pyx_GIVEREF(__pyx_v_name); ++ PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_v_name); ++ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_2, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1956, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_8); ++ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1956, __pyx_L1_error) +@@ -16853,7 +16081,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_34renameDimension(struct _ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_redef); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2068, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -16999,7 +16227,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_34renameDimension(struct _ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_enddef); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2074, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -17071,7 +16299,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_34renameDimension(struct _ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->dimensions, __pyx_n_s_pop); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2078, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -17084,33 +16312,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_34renameDimension(struct _ + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_oldname); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2078, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_oldname}; +- __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2078, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_5); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_oldname}; +- __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2078, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_5); +- } else +- #endif +- { +- __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2078, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_10); +- __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_1); __pyx_t_1 = NULL; +- __Pyx_INCREF(__pyx_v_oldname); +- __Pyx_GIVEREF(__pyx_v_oldname); +- PyTuple_SET_ITEM(__pyx_t_10, 0+1, __pyx_v_oldname); +- __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_10, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2078, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_5); +- __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; +- } ++ __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2078, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_1); __pyx_t_1 = NULL; ++ __Pyx_INCREF(__pyx_v_oldname); ++ __Pyx_GIVEREF(__pyx_v_oldname); ++ PyTuple_SET_ITEM(__pyx_t_10, 0+1, __pyx_v_oldname); ++ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_10, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2078, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_5); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +@@ -17798,7 +17008,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_42createVariable(struct __ + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -17811,33 +17021,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_42createVariable(struct __ + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_varname); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_varname}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2255, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_varname}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2255, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2255, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; +- __Pyx_INCREF(__pyx_v_varname); +- __Pyx_GIVEREF(__pyx_v_varname); +- PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_varname); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2255, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } ++ __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2255, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; ++ __Pyx_INCREF(__pyx_v_varname); ++ __Pyx_GIVEREF(__pyx_v_varname); ++ PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_varname); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2255, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF_SET(__pyx_v_varname, __pyx_t_1); +@@ -17856,7 +17048,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_42createVariable(struct __ + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -17869,38 +17061,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_42createVariable(struct __ + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_varname); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_varname}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2256, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_varname}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2256, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2256, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL; +- __Pyx_INCREF(__pyx_v_varname); +- __Pyx_GIVEREF(__pyx_v_varname); +- PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_v_varname); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2256, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } ++ __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2256, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL; ++ __Pyx_INCREF(__pyx_v_varname); ++ __Pyx_GIVEREF(__pyx_v_varname); ++ PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_v_varname); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2256, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -17910,7 +17084,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_42createVariable(struct __ + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 2256, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); +@@ -17995,7 +17169,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_42createVariable(struct __ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_createGroup); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2261, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -18008,33 +17182,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_42createVariable(struct __ + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_dirname); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2261, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_dirname}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2261, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_dirname}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2261, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2261, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL; +- __Pyx_INCREF(__pyx_v_dirname); +- __Pyx_GIVEREF(__pyx_v_dirname); +- PyTuple_SET_ITEM(__pyx_t_3, 0+1, __pyx_v_dirname); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2261, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } ++ __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2261, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL; ++ __Pyx_INCREF(__pyx_v_dirname); ++ __Pyx_GIVEREF(__pyx_v_dirname); ++ PyTuple_SET_ITEM(__pyx_t_3, 0+1, __pyx_v_dirname); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2261, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_group = __pyx_t_1; +@@ -18385,7 +17541,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_44renameVariable(struct __ + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_redef); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -18430,7 +17586,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_44renameVariable(struct __ + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_enddef); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -18502,7 +17658,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_44renameVariable(struct __ + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->variables, __pyx_n_s_pop); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -18515,33 +17671,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_44renameVariable(struct __ + __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_oldname); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_oldname}; +- __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2288, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_oldname}; +- __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2288, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- { +- __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2288, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4); __pyx_t_4 = NULL; +- __Pyx_INCREF(__pyx_v_oldname); +- __Pyx_GIVEREF(__pyx_v_oldname); +- PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_v_oldname); +- __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2288, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- } ++ __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2288, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_8); ++ __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4); __pyx_t_4 = NULL; ++ __Pyx_INCREF(__pyx_v_oldname); ++ __Pyx_GIVEREF(__pyx_v_oldname); ++ PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_v_oldname); ++ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2288, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +@@ -18634,7 +17772,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_46createGroup(struct __pyx + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -18647,33 +17785,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_46createGroup(struct __pyx + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_groupname); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_groupname}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2308, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_groupname}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2308, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2308, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; +- __Pyx_INCREF(__pyx_v_groupname); +- __Pyx_GIVEREF(__pyx_v_groupname); +- PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_groupname); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2308, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } ++ __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2308, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; ++ __Pyx_INCREF(__pyx_v_groupname); ++ __Pyx_GIVEREF(__pyx_v_groupname); ++ PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_groupname); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2308, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF_SET(__pyx_v_groupname, __pyx_t_1); +@@ -18723,7 +17843,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_46createGroup(struct __pyx + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 2313, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2313, __pyx_L1_error) +@@ -18731,7 +17851,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_46createGroup(struct __pyx + #endif + } else { + if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 2313, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2313, __pyx_L1_error) +@@ -19026,7 +18146,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_50setncattr(struct __pyx_o + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_redef); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -19069,7 +18189,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_50setncattr(struct __pyx_o + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_enddef); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -19334,7 +18454,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_54setncatts(struct __pyx_o + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_redef); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2363, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -19364,7 +18484,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_54setncatts(struct __pyx_o + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_attdict, __pyx_n_s_items); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2364, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -19394,7 +18514,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_54setncatts(struct __pyx_o + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 2364, __pyx_L1_error) + #else + __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2364, __pyx_L1_error) +@@ -19402,7 +18522,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_54setncatts(struct __pyx_o + #endif + } else { + if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 2364, __pyx_L1_error) + #else + __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2364, __pyx_L1_error) +@@ -19423,7 +18543,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_54setncatts(struct __pyx_o + } + if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { + PyObject* sequence = __pyx_t_2; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -19433,7 +18553,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_54setncatts(struct __pyx_o + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 2364, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); +@@ -19509,7 +18629,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_54setncatts(struct __pyx_o + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_enddef); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2366, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -19673,7 +18793,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_7Dataset_58__delattr__(struct __pyx_obj_7 + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_delncattr); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -19686,33 +18806,15 @@ static int __pyx_pf_7netCDF4_8_netCDF4_7Dataset_58__delattr__(struct __pyx_obj_7 + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_name}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2380, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_name}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2380, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2380, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; +- __Pyx_INCREF(__pyx_v_name); +- __Pyx_GIVEREF(__pyx_v_name); +- PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_name); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2380, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } ++ __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2380, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; ++ __Pyx_INCREF(__pyx_v_name); ++ __Pyx_GIVEREF(__pyx_v_name); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_name); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2380, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +@@ -19873,7 +18975,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_60delncattr(struct __pyx_o + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_redef); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -19914,7 +19016,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_60delncattr(struct __pyx_o + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_enddef); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -20029,7 +19131,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_7Dataset_62__setattr__(struct __pyx_obj_7 + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; +- int __pyx_t_6; ++ Py_ssize_t __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + __Pyx_RefNannySetupContext("__setattr__", 0); + +@@ -20058,7 +19160,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_7Dataset_62__setattr__(struct __pyx_obj_7 + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + __pyx_t_6 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -20068,38 +19170,20 @@ static int __pyx_pf_7netCDF4_8_netCDF4_7Dataset_62__setattr__(struct __pyx_obj_7 + __pyx_t_6 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_name, __pyx_v_value}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2406, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_name, __pyx_v_value}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2406, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2406, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- if (__pyx_t_5) { +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; +- } +- __Pyx_INCREF(__pyx_v_name); +- __Pyx_GIVEREF(__pyx_v_name); +- PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_name); +- __Pyx_INCREF(__pyx_v_value); +- __Pyx_GIVEREF(__pyx_v_value); +- PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_value); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2406, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; ++ __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2406, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ if (__pyx_t_5) { ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; + } ++ __Pyx_INCREF(__pyx_v_name); ++ __Pyx_GIVEREF(__pyx_v_name); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_name); ++ __Pyx_INCREF(__pyx_v_value); ++ __Pyx_GIVEREF(__pyx_v_value); ++ PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_value); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2406, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + +@@ -20276,8 +19360,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_64__getattr__(struct __pyx + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; +- int __pyx_t_11; +- PyObject *__pyx_t_12 = NULL; ++ PyObject *__pyx_t_11 = NULL; + __Pyx_RefNannySetupContext("__getattr__", 0); + __Pyx_INCREF(__pyx_v_name); + +@@ -20331,7 +19414,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_64__getattr__(struct __pyx + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_ncattrs); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -20382,7 +19465,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_64__getattr__(struct __pyx + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2422, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2422, __pyx_L1_error) +@@ -20390,7 +19473,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_64__getattr__(struct __pyx + #endif + } else { + if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2422, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2422, __pyx_L1_error) +@@ -20447,52 +19530,34 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_64__getattr__(struct __pyx + __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_zip); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_10 = NULL; +- __pyx_t_11 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { ++ __pyx_t_6 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_9))) { + __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9); + if (likely(__pyx_t_10)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); + __Pyx_INCREF(__pyx_t_10); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_9, function); +- __pyx_t_11 = 1; ++ __pyx_t_6 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_9)) { +- PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_v_names, __pyx_v_values}; +- __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2424, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; +- __Pyx_GOTREF(__pyx_t_5); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { +- PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_v_names, __pyx_v_values}; +- __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2424, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; +- __Pyx_GOTREF(__pyx_t_5); +- } else +- #endif +- { +- __pyx_t_12 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2424, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- if (__pyx_t_10) { +- __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_10); __pyx_t_10 = NULL; +- } +- __Pyx_INCREF(__pyx_v_names); +- __Pyx_GIVEREF(__pyx_v_names); +- PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_11, __pyx_v_names); +- __Pyx_INCREF(__pyx_v_values); +- __Pyx_GIVEREF(__pyx_v_values); +- PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_11, __pyx_v_values); +- __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_12, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2424, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_5); +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- } ++ __pyx_t_11 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2424, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ if (__pyx_t_10) { ++ __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10); __pyx_t_10 = NULL; ++ } ++ __Pyx_INCREF(__pyx_v_names); ++ __Pyx_GIVEREF(__pyx_v_names); ++ PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_6, __pyx_v_names); ++ __Pyx_INCREF(__pyx_v_values); ++ __Pyx_GIVEREF(__pyx_v_values); ++ PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_6, __pyx_v_values); ++ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2424, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_5); ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -20506,35 +19571,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_64__getattr__(struct __pyx + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_t_5}; +- __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2424, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_t_5}; +- __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2424, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- } else +- #endif +- { +- __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2424, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_9); __pyx_t_9 = NULL; +- __Pyx_GIVEREF(__pyx_t_5); +- PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_t_5); +- __pyx_t_5 = 0; +- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_12, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2424, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- } ++ __pyx_t_11 = PyTuple_New(1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2424, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; ++ __Pyx_GIVEREF(__pyx_t_5); ++ PyTuple_SET_ITEM(__pyx_t_11, 0+1, __pyx_t_5); ++ __pyx_t_5 = 0; ++ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2424, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_2; +@@ -20622,47 +19667,29 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_64__getattr__(struct __pyx + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getncattr); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __pyx_t_12 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { +- __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_2); +- if (likely(__pyx_t_12)) { ++ __pyx_t_11 = NULL; ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { ++ __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_2); ++ if (likely(__pyx_t_11)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +- __Pyx_INCREF(__pyx_t_12); ++ __Pyx_INCREF(__pyx_t_11); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } +- if (!__pyx_t_12) { ++ if (!__pyx_t_11) { + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[2] = {__pyx_t_12, __pyx_v_name}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2430, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[2] = {__pyx_t_12, __pyx_v_name}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2430, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- { +- __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2430, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_5); +- __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_12); __pyx_t_12 = NULL; +- __Pyx_INCREF(__pyx_v_name); +- __Pyx_GIVEREF(__pyx_v_name); +- PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_name); +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2430, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- } ++ __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2430, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_5); ++ __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_11); __pyx_t_11 = NULL; ++ __Pyx_INCREF(__pyx_v_name); ++ __Pyx_GIVEREF(__pyx_v_name); ++ PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_name); ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2430, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_3; +@@ -20685,7 +19712,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_64__getattr__(struct __pyx + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); +- __Pyx_XDECREF(__pyx_t_12); ++ __Pyx_XDECREF(__pyx_t_11); + __Pyx_AddTraceback("netCDF4._netCDF4.Dataset.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; +@@ -21103,7 +20130,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_70set_auto_maskandscale(st + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v__vars, __pyx_n_s_values); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -21133,7 +20160,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_70set_auto_maskandscale(st + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_4))) { + if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2493, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2493, __pyx_L1_error) +@@ -21141,7 +20168,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_70set_auto_maskandscale(st + #endif + } else { + if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2493, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2493, __pyx_L1_error) +@@ -21173,7 +20200,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_70set_auto_maskandscale(st + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_set_auto_maskandscale); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_8 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -21186,33 +20213,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_70set_auto_maskandscale(st + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_v_value}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2494, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_v_value}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2494, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2494, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; +- __Pyx_INCREF(__pyx_v_value); +- __Pyx_GIVEREF(__pyx_v_value); +- PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_v_value); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2494, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +- } ++ __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2494, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_9); ++ __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; ++ __Pyx_INCREF(__pyx_v_value); ++ __Pyx_GIVEREF(__pyx_v_value); ++ PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_v_value); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2494, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +@@ -21237,7 +20246,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_70set_auto_maskandscale(st + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_walk_grps); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -21250,33 +20259,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_70set_auto_maskandscale(st + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_1, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, ((PyObject *)__pyx_v_self)}; +- __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2496, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, ((PyObject *)__pyx_v_self)}; +- __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2496, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- { +- __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2496, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5); __pyx_t_5 = NULL; +- __Pyx_INCREF(((PyObject *)__pyx_v_self)); +- __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); +- PyTuple_SET_ITEM(__pyx_t_9, 0+1, ((PyObject *)__pyx_v_self)); +- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2496, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +- } ++ __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2496, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_9); ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5); __pyx_t_5 = NULL; ++ __Pyx_INCREF(((PyObject *)__pyx_v_self)); ++ __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); ++ PyTuple_SET_ITEM(__pyx_t_9, 0+1, ((PyObject *)__pyx_v_self)); ++ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2496, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { +@@ -21292,7 +20283,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_70set_auto_maskandscale(st + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2496, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2496, __pyx_L1_error) +@@ -21300,7 +20291,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_70set_auto_maskandscale(st + #endif + } else { + if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2496, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2496, __pyx_L1_error) +@@ -21341,7 +20332,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_70set_auto_maskandscale(st + if (likely(!__pyx_t_11)) { + if (likely(PyList_CheckExact(__pyx_t_4))) { + if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_9 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_9); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2497, __pyx_L1_error) + #else + __pyx_t_9 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2497, __pyx_L1_error) +@@ -21349,7 +20340,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_70set_auto_maskandscale(st + #endif + } else { + if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_9); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2497, __pyx_L1_error) + #else + __pyx_t_9 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2497, __pyx_L1_error) +@@ -21384,7 +20375,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_70set_auto_maskandscale(st + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); +@@ -21414,7 +20405,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_70set_auto_maskandscale(st + if (likely(!__pyx_t_13)) { + if (likely(PyList_CheckExact(__pyx_t_8))) { + if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_8)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_9 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_12); __Pyx_INCREF(__pyx_t_9); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 2498, __pyx_L1_error) + #else + __pyx_t_9 = PySequence_ITEM(__pyx_t_8, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2498, __pyx_L1_error) +@@ -21422,7 +20413,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_70set_auto_maskandscale(st + #endif + } else { + if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_8)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_12); __Pyx_INCREF(__pyx_t_9); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 2498, __pyx_L1_error) + #else + __pyx_t_9 = PySequence_ITEM(__pyx_t_8, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2498, __pyx_L1_error) +@@ -21454,7 +20445,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_70set_auto_maskandscale(st + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_set_auto_maskandscale); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_14 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_14)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -21467,33 +20458,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_70set_auto_maskandscale(st + __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_14, __pyx_v_value}; +- __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2499, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; +- __Pyx_GOTREF(__pyx_t_9); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_14, __pyx_v_value}; +- __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2499, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; +- __Pyx_GOTREF(__pyx_t_9); +- } else +- #endif +- { +- __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2499, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_15); +- __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL; +- __Pyx_INCREF(__pyx_v_value); +- __Pyx_GIVEREF(__pyx_v_value); +- PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_v_value); +- __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_15, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2499, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); +- __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; +- } ++ __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2499, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_15); ++ __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL; ++ __Pyx_INCREF(__pyx_v_value); ++ __Pyx_GIVEREF(__pyx_v_value); ++ PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_v_value); ++ __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_15, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2499, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_9); ++ __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +@@ -21612,7 +20585,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_72set_auto_mask(struct __p + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->variables, __pyx_n_s_values); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2516, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -21642,7 +20615,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_72set_auto_mask(struct __p + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 2516, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2516, __pyx_L1_error) +@@ -21650,7 +20623,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_72set_auto_mask(struct __p + #endif + } else { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 2516, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2516, __pyx_L1_error) +@@ -21682,7 +20655,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_72set_auto_mask(struct __p + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_set_auto_mask); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -21695,33 +20668,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_72set_auto_mask(struct __p + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_value}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2517, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_value}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2517, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2517, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; +- __Pyx_INCREF(__pyx_v_value); +- __Pyx_GIVEREF(__pyx_v_value); +- PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_value); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2517, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } ++ __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2517, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; ++ __Pyx_INCREF(__pyx_v_value); ++ __Pyx_GIVEREF(__pyx_v_value); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_value); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2517, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +@@ -21746,7 +20701,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_72set_auto_mask(struct __p + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_walk_grps); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -21759,33 +20714,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_72set_auto_mask(struct __p + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, ((PyObject *)__pyx_v_self)}; +- __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2519, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, ((PyObject *)__pyx_v_self)}; +- __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2519, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- } else +- #endif +- { +- __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2519, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3); __pyx_t_3 = NULL; +- __Pyx_INCREF(((PyObject *)__pyx_v_self)); +- __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); +- PyTuple_SET_ITEM(__pyx_t_7, 0+1, ((PyObject *)__pyx_v_self)); +- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2519, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } ++ __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2519, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3); __pyx_t_3 = NULL; ++ __Pyx_INCREF(((PyObject *)__pyx_v_self)); ++ __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+1, ((PyObject *)__pyx_v_self)); ++ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2519, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { +@@ -21801,7 +20738,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_72set_auto_mask(struct __p + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 2519, __pyx_L1_error) + #else + __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2519, __pyx_L1_error) +@@ -21809,7 +20746,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_72set_auto_mask(struct __p + #endif + } else { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 2519, __pyx_L1_error) + #else + __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2519, __pyx_L1_error) +@@ -21850,7 +20787,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_72set_auto_mask(struct __p + if (likely(!__pyx_t_9)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_7 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_7); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 2520, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_2, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2520, __pyx_L1_error) +@@ -21858,7 +20795,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_72set_auto_mask(struct __p + #endif + } else { + if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_7); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 2520, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_2, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2520, __pyx_L1_error) +@@ -21893,7 +20830,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_72set_auto_mask(struct __p + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -21923,7 +20860,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_72set_auto_mask(struct __p + if (likely(!__pyx_t_11)) { + if (likely(PyList_CheckExact(__pyx_t_6))) { + if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_6)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_7 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_10); __Pyx_INCREF(__pyx_t_7); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2521, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2521, __pyx_L1_error) +@@ -21931,7 +20868,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_72set_auto_mask(struct __p + #endif + } else { + if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_6)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_10); __Pyx_INCREF(__pyx_t_7); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2521, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2521, __pyx_L1_error) +@@ -21963,7 +20900,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_72set_auto_mask(struct __p + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_set_auto_mask); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2522, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_12 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_12)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -21976,33 +20913,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_72set_auto_mask(struct __p + __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2522, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_12, __pyx_v_value}; +- __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2522, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_12, __pyx_v_value}; +- __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2522, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- { +- __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2522, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_13); +- __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __pyx_t_12 = NULL; +- __Pyx_INCREF(__pyx_v_value); +- __Pyx_GIVEREF(__pyx_v_value); +- PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_v_value); +- __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_13, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2522, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; +- } ++ __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2522, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_13); ++ __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __pyx_t_12 = NULL; ++ __Pyx_INCREF(__pyx_v_value); ++ __Pyx_GIVEREF(__pyx_v_value); ++ PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_v_value); ++ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_13, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2522, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +@@ -22151,7 +21070,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_74set_auto_scale(struct __ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v__vars, __pyx_n_s_values); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -22181,7 +21100,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_74set_auto_scale(struct __ + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_4))) { + if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2542, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2542, __pyx_L1_error) +@@ -22189,7 +21108,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_74set_auto_scale(struct __ + #endif + } else { + if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2542, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2542, __pyx_L1_error) +@@ -22221,7 +21140,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_74set_auto_scale(struct __ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_set_auto_scale); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_8 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -22234,33 +21153,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_74set_auto_scale(struct __ + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_v_value}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2543, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_v_value}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2543, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2543, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; +- __Pyx_INCREF(__pyx_v_value); +- __Pyx_GIVEREF(__pyx_v_value); +- PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_v_value); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2543, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +- } ++ __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2543, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_9); ++ __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; ++ __Pyx_INCREF(__pyx_v_value); ++ __Pyx_GIVEREF(__pyx_v_value); ++ PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_v_value); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2543, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +@@ -22285,7 +21186,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_74set_auto_scale(struct __ + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_walk_grps); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -22298,33 +21199,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_74set_auto_scale(struct __ + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_1, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, ((PyObject *)__pyx_v_self)}; +- __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2545, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, ((PyObject *)__pyx_v_self)}; +- __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2545, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- { +- __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2545, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5); __pyx_t_5 = NULL; +- __Pyx_INCREF(((PyObject *)__pyx_v_self)); +- __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); +- PyTuple_SET_ITEM(__pyx_t_9, 0+1, ((PyObject *)__pyx_v_self)); +- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2545, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +- } ++ __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2545, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_9); ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5); __pyx_t_5 = NULL; ++ __Pyx_INCREF(((PyObject *)__pyx_v_self)); ++ __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); ++ PyTuple_SET_ITEM(__pyx_t_9, 0+1, ((PyObject *)__pyx_v_self)); ++ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2545, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { +@@ -22340,7 +21223,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_74set_auto_scale(struct __ + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2545, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2545, __pyx_L1_error) +@@ -22348,7 +21231,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_74set_auto_scale(struct __ + #endif + } else { + if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2545, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2545, __pyx_L1_error) +@@ -22389,7 +21272,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_74set_auto_scale(struct __ + if (likely(!__pyx_t_11)) { + if (likely(PyList_CheckExact(__pyx_t_4))) { + if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_9 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_9); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2546, __pyx_L1_error) + #else + __pyx_t_9 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2546, __pyx_L1_error) +@@ -22397,7 +21280,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_74set_auto_scale(struct __ + #endif + } else { + if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_9); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2546, __pyx_L1_error) + #else + __pyx_t_9 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2546, __pyx_L1_error) +@@ -22432,7 +21315,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_74set_auto_scale(struct __ + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); +@@ -22462,7 +21345,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_74set_auto_scale(struct __ + if (likely(!__pyx_t_13)) { + if (likely(PyList_CheckExact(__pyx_t_8))) { + if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_8)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_9 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_12); __Pyx_INCREF(__pyx_t_9); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 2547, __pyx_L1_error) + #else + __pyx_t_9 = PySequence_ITEM(__pyx_t_8, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2547, __pyx_L1_error) +@@ -22470,7 +21353,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_74set_auto_scale(struct __ + #endif + } else { + if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_8)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_12); __Pyx_INCREF(__pyx_t_9); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 2547, __pyx_L1_error) + #else + __pyx_t_9 = PySequence_ITEM(__pyx_t_8, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2547, __pyx_L1_error) +@@ -22502,7 +21385,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_74set_auto_scale(struct __ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_set_auto_scale); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_14 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_14)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -22515,33 +21398,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_74set_auto_scale(struct __ + __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_14, __pyx_v_value}; +- __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2548, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; +- __Pyx_GOTREF(__pyx_t_9); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_14, __pyx_v_value}; +- __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2548, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; +- __Pyx_GOTREF(__pyx_t_9); +- } else +- #endif +- { +- __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2548, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_15); +- __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL; +- __Pyx_INCREF(__pyx_v_value); +- __Pyx_GIVEREF(__pyx_v_value); +- PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_v_value); +- __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_15, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2548, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); +- __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; +- } ++ __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2548, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_15); ++ __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL; ++ __Pyx_INCREF(__pyx_v_value); ++ __Pyx_GIVEREF(__pyx_v_value); ++ PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_v_value); ++ __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_15, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2548, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_9); ++ __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +@@ -22733,7 +21598,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_76get_variables_by_attribu + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 2585, __pyx_L1_error) + #else + __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2585, __pyx_L1_error) +@@ -22741,7 +21606,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_76get_variables_by_attribu + #endif + } else { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 2585, __pyx_L1_error) + #else + __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2585, __pyx_L1_error) +@@ -22797,7 +21662,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_76get_variables_by_attribu + if (likely(!__pyx_t_9)) { + if (likely(PyList_CheckExact(__pyx_t_7))) { + if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_7)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_6 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_6); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 2587, __pyx_L1_error) + #else + __pyx_t_6 = PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2587, __pyx_L1_error) +@@ -22805,7 +21670,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_76get_variables_by_attribu + #endif + } else { + if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_7)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_6); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 2587, __pyx_L1_error) + #else + __pyx_t_6 = PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2587, __pyx_L1_error) +@@ -22826,7 +21691,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_76get_variables_by_attribu + } + if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) { + PyObject* sequence = __pyx_t_6; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -22836,7 +21701,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_76get_variables_by_attribu + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 2587, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_10 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_11 = PyTuple_GET_ITEM(sequence, 1); +@@ -22901,7 +21766,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_76get_variables_by_attribu + __Pyx_GOTREF(__pyx_t_11); + __Pyx_INCREF(__pyx_v_v); + __pyx_t_10 = __pyx_v_v; __pyx_t_12 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_10))) { + __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_10); + if (likely(__pyx_t_12)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); +@@ -22915,35 +21780,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_7Dataset_76get_variables_by_attribu + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_GOTREF(__pyx_t_6); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_10)) { +- PyObject *__pyx_temp[2] = {__pyx_t_12, __pyx_t_11}; +- __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2589, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { +- PyObject *__pyx_temp[2] = {__pyx_t_12, __pyx_t_11}; +- __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2589, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; +- } else +- #endif +- { +- __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2589, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_14); +- __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_12); __pyx_t_12 = NULL; +- __Pyx_GIVEREF(__pyx_t_11); +- PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_11); +- __pyx_t_11 = 0; +- __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_14, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2589, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; +- } ++ __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2589, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_14); ++ __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_12); __pyx_t_12 = NULL; ++ __Pyx_GIVEREF(__pyx_t_11); ++ PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_11); ++ __pyx_t_11 = 0; ++ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_14, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2589, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + } + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF_SET(__pyx_v_has_value_flag, __pyx_t_6); +@@ -24543,12 +23388,13 @@ static int __pyx_pf_7netCDF4_8_netCDF4_5Group___init__(struct __pyx_obj_7netCDF4 + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; +- int __pyx_t_5; ++ Py_ssize_t __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + int __pyx_t_7; + int __pyx_t_8; +- PyObject *(*__pyx_t_9)(PyObject *); +- char *__pyx_t_10; ++ int __pyx_t_9; ++ PyObject *(*__pyx_t_10)(PyObject *); ++ char *__pyx_t_11; + __Pyx_RefNannySetupContext("__init__", 0); + + /* "netCDF4/_netCDF4.pyx":2640 +@@ -24610,7 +23456,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_5Group___init__(struct __pyx_obj_7netCDF4 + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = NULL; + __pyx_t_5 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -24620,40 +23466,20 @@ static int __pyx_pf_7netCDF4_8_netCDF4_5Group___init__(struct __pyx_obj_7netCDF4 + __pyx_t_5 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_2, __pyx_v_name}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2645, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_2, __pyx_v_name}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2645, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2645, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- if (__pyx_t_4) { +- __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_2); +- PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_2); +- __Pyx_INCREF(__pyx_v_name); +- __Pyx_GIVEREF(__pyx_v_name); +- PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_name); +- __pyx_t_2 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2645, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; ++ __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2645, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ if (__pyx_t_4) { ++ __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_2); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_2); ++ __Pyx_INCREF(__pyx_v_name); ++ __Pyx_GIVEREF(__pyx_v_name); ++ PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_name); ++ __pyx_t_2 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2645, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GIVEREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_v_self->__pyx_base.path); +@@ -24709,9 +23535,9 @@ static int __pyx_pf_7netCDF4_8_netCDF4_5Group___init__(struct __pyx_obj_7netCDF4 + */ + __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_n_s_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2651, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2651, __pyx_L1_error) ++ __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2651, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- __pyx_v_self->__pyx_base._grpid = __pyx_t_5; ++ __pyx_v_self->__pyx_base._grpid = __pyx_t_9; + + /* "netCDF4/_netCDF4.pyx":2653 + * self._grpid = kwargs['id'] +@@ -24724,7 +23550,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_5Group___init__(struct __pyx_obj_7netCDF4 + __Pyx_GOTREF(__pyx_t_1); + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -24734,7 +23560,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_5Group___init__(struct __pyx_obj_7netCDF4 + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 2653, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); +@@ -24761,20 +23587,20 @@ static int __pyx_pf_7netCDF4_8_netCDF4_5Group___init__(struct __pyx_obj_7netCDF4 + __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- __pyx_t_9 = Py_TYPE(__pyx_t_4)->tp_iternext; +- index = 0; __pyx_t_3 = __pyx_t_9(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L4_unpacking_failed; ++ __pyx_t_10 = Py_TYPE(__pyx_t_4)->tp_iternext; ++ index = 0; __pyx_t_3 = __pyx_t_10(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L4_unpacking_failed; + __Pyx_GOTREF(__pyx_t_3); +- index = 1; __pyx_t_6 = __pyx_t_9(__pyx_t_4); if (unlikely(!__pyx_t_6)) goto __pyx_L4_unpacking_failed; ++ index = 1; __pyx_t_6 = __pyx_t_10(__pyx_t_4); if (unlikely(!__pyx_t_6)) goto __pyx_L4_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); +- index = 2; __pyx_t_2 = __pyx_t_9(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L4_unpacking_failed; ++ index = 2; __pyx_t_2 = __pyx_t_10(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L4_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); +- if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_4), 3) < 0) __PYX_ERR(0, 2653, __pyx_L1_error) +- __pyx_t_9 = NULL; ++ if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_4), 3) < 0) __PYX_ERR(0, 2653, __pyx_L1_error) ++ __pyx_t_10 = NULL; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + goto __pyx_L5_unpacking_done; + __pyx_L4_unpacking_failed:; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- __pyx_t_9 = NULL; ++ __pyx_t_10 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(0, 2653, __pyx_L1_error) + __pyx_L5_unpacking_done:; +@@ -24870,8 +23696,8 @@ static int __pyx_pf_7netCDF4_8_netCDF4_5Group___init__(struct __pyx_obj_7netCDF4 + * ierr = nc_def_grp(parent._grpid, groupname, &self._grpid) + * if ierr != NC_NOERR: + */ +- __pyx_t_10 = __Pyx_PyObject_AsString(__pyx_v_bytestr); if (unlikely((!__pyx_t_10) && PyErr_Occurred())) __PYX_ERR(0, 2662, __pyx_L1_error) +- __pyx_v_groupname = __pyx_t_10; ++ __pyx_t_11 = __Pyx_PyObject_AsString(__pyx_v_bytestr); if (unlikely((!__pyx_t_11) && PyErr_Occurred())) __PYX_ERR(0, 2662, __pyx_L1_error) ++ __pyx_v_groupname = __pyx_t_11; + + /* "netCDF4/_netCDF4.pyx":2663 + * bytestr = _strencode(name) +@@ -24882,9 +23708,9 @@ static int __pyx_pf_7netCDF4_8_netCDF4_5Group___init__(struct __pyx_obj_7netCDF4 + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_grpid); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2663, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2663, __pyx_L1_error) ++ __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2663, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- __pyx_v_ierr = nc_def_grp(__pyx_t_5, __pyx_v_groupname, (&__pyx_v_self->__pyx_base._grpid)); ++ __pyx_v_ierr = nc_def_grp(__pyx_t_9, __pyx_v_groupname, (&__pyx_v_self->__pyx_base._grpid)); + + /* "netCDF4/_netCDF4.pyx":2664 + * groupname = bytestr +@@ -24903,8 +23729,8 @@ static int __pyx_pf_7netCDF4_8_netCDF4_5Group___init__(struct __pyx_obj_7netCDF4 + * self.cmptypes = OrderedDict() + * self.vltypes = OrderedDict() + */ +- __pyx_t_10 = ((char *)nc_strerror(__pyx_v_ierr)); +- __pyx_t_1 = __Pyx_decode_c_string(__pyx_t_10, 0, strlen(__pyx_t_10), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2665, __pyx_L1_error) ++ __pyx_t_11 = ((char *)nc_strerror(__pyx_v_ierr)); ++ __pyx_t_1 = __Pyx_decode_c_string(__pyx_t_11, 0, strlen(__pyx_t_11), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2665, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2665, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +@@ -24938,7 +23764,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_5Group___init__(struct __pyx_obj_7netCDF4 + __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2666, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -24971,7 +23797,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_5Group___init__(struct __pyx_obj_7netCDF4 + __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2667, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -25004,7 +23830,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_5Group___init__(struct __pyx_obj_7netCDF4 + __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2668, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -25037,7 +23863,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_5Group___init__(struct __pyx_obj_7netCDF4 + __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -25070,7 +23896,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_5Group___init__(struct __pyx_obj_7netCDF4 + __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2670, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -25103,7 +23929,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_5Group___init__(struct __pyx_obj_7netCDF4 + __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2671, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -25245,7 +24071,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_5Group_4_getname(struct __pyx_obj_7 + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; +- int __pyx_t_8; ++ Py_ssize_t __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + __Pyx_RefNannySetupContext("_getname", 0); + +@@ -25352,7 +24178,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_5Group_4_getname(struct __pyx_obj_7 + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = NULL; + __pyx_t_8 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -25362,42 +24188,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_5Group_4_getname(struct __pyx_obj_7 + __pyx_t_8 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_4, __pyx_t_6}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2689, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_4, __pyx_t_6}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2689, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } else +- #endif +- { +- __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2689, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); +- if (__pyx_t_7) { +- __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_4); +- PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_4); +- __Pyx_GIVEREF(__pyx_t_6); +- PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_6); +- __pyx_t_4 = 0; +- __pyx_t_6 = 0; +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2689, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; ++ __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2689, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_9); ++ if (__pyx_t_7) { ++ __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_4); ++ PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_4); ++ __Pyx_GIVEREF(__pyx_t_6); ++ PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_6); ++ __pyx_t_4 = 0; ++ __pyx_t_6 = 0; ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2689, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; +@@ -25467,7 +24271,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_5Group_4name___get__(struct __pyx_o + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getname); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2694, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -25710,7 +24514,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_9Dimension___init__(struct __pyx_obj_7net + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -25723,33 +24527,15 @@ static int __pyx_pf_7netCDF4_8_netCDF4_9Dimension___init__(struct __pyx_obj_7net + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_grp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2747, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_grp}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2747, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_grp}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2747, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2747, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; +- __Pyx_INCREF(__pyx_v_grp); +- __Pyx_GIVEREF(__pyx_v_grp); +- PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_grp); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2747, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } ++ __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2747, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; ++ __Pyx_INCREF(__pyx_v_grp); ++ __Pyx_GIVEREF(__pyx_v_grp); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_grp); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2747, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GIVEREF(__pyx_t_1); +@@ -25927,7 +24713,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_9Dimension___init__(struct __pyx_obj_7net + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_grp, __pyx_n_s_redef); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2761, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -25971,7 +24757,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_9Dimension___init__(struct __pyx_obj_7net + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_grp, __pyx_n_s_enddef); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2763, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -26094,7 +24880,8 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9Dimension_2_getname(struct __pyx_o + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; +- PyObject *__pyx_t_9 = NULL; ++ Py_ssize_t __pyx_t_9; ++ PyObject *__pyx_t_10 = NULL; + __Pyx_RefNannySetupContext("_getname", 0); + + /* "netCDF4/_netCDF4.pyx":2771 +@@ -26212,53 +24999,31 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9Dimension_2_getname(struct __pyx_o + __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_unicode_error); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = NULL; +- __pyx_t_2 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ __pyx_t_9 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); +- __pyx_t_2 = 1; ++ __pyx_t_9 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2776, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2776, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- { +- __pyx_t_9 = PyTuple_New(2+__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2776, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); +- if (__pyx_t_8) { +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_5); +- PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_2, __pyx_t_5); +- __Pyx_GIVEREF(__pyx_t_7); +- PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_2, __pyx_t_7); +- __pyx_t_5 = 0; +- __pyx_t_7 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2776, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; ++ __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2776, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ if (__pyx_t_8) { ++ __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_5); ++ PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_5); ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_7); ++ __pyx_t_5 = 0; ++ __pyx_t_7 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2776, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; +@@ -26279,7 +25044,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9Dimension_2_getname(struct __pyx_o + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); +- __Pyx_XDECREF(__pyx_t_9); ++ __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("netCDF4._netCDF4.Dimension._getname", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; +@@ -26328,7 +25093,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9Dimension_4name___get__(struct __p + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getname); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2781, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -26602,7 +25367,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9Dimension_4__repr__(struct __pyx_o + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2794, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -26655,7 +25420,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9Dimension_4__repr__(struct __pyx_o + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_default_encoding); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2796, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -26669,35 +25434,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9Dimension_4__repr__(struct __pyx_o + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2796, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2796, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2796, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; +- __Pyx_GIVEREF(__pyx_t_4); +- PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_4); +- __pyx_t_4 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2796, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } ++ __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2796, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; ++ __Pyx_GIVEREF(__pyx_t_4); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_4); ++ __pyx_t_4 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2796, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_1; +@@ -26808,7 +25553,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9Dimension_6__unicode__(struct __py + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_isunlimited); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2801, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -28401,7 +27146,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -28414,33 +27159,15 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_grp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3069, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_grp}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3069, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_grp}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3069, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- { +- __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3069, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; +- __Pyx_INCREF(__pyx_v_grp); +- __Pyx_GIVEREF(__pyx_v_grp); +- PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_grp); +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3069, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } ++ __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3069, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; ++ __Pyx_INCREF(__pyx_v_grp); ++ __Pyx_GIVEREF(__pyx_v_grp); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_grp); ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3069, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GIVEREF(__pyx_t_3); +@@ -28581,7 +27308,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); +@@ -28594,33 +27321,15 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_datatype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3078, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_datatype}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3078, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_datatype}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3078, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- { +- __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3078, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_5); +- __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = NULL; +- __Pyx_INCREF(__pyx_v_datatype); +- __Pyx_GIVEREF(__pyx_v_datatype); +- PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_datatype); +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3078, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- } ++ __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3078, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_5); ++ __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = NULL; ++ __Pyx_INCREF(__pyx_v_datatype); ++ __Pyx_GIVEREF(__pyx_v_datatype); ++ PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_datatype); ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3078, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF_SET(__pyx_v_datatype, __pyx_t_3); +@@ -28873,7 +27582,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -28886,33 +27595,15 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_msg); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3099, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_msg}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3099, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_msg}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3099, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3099, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL; +- __Pyx_INCREF(__pyx_v_msg); +- __Pyx_GIVEREF(__pyx_v_msg); +- PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_msg); +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3099, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } ++ __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3099, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL; ++ __Pyx_INCREF(__pyx_v_msg); ++ __Pyx_GIVEREF(__pyx_v_msg); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_msg); ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3099, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +@@ -29240,7 +27931,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_datatype, __pyx_n_s_nc_type); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); +- __pyx_t_9 = __Pyx_PyInt_As_nc_type(__pyx_t_5); if (unlikely((__pyx_t_9 == ((nc_type)-1)) && PyErr_Occurred())) __PYX_ERR(0, 3125, __pyx_L1_error) ++ __pyx_t_9 = __Pyx_PyInt_As_nc_type(__pyx_t_5); if (unlikely((__pyx_t_9 == (nc_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 3125, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_xtype = __pyx_t_9; + +@@ -29320,7 +28011,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __pyx_t_9 = __Pyx_PyInt_As_nc_type(__pyx_t_3); if (unlikely((__pyx_t_9 == ((nc_type)-1)) && PyErr_Occurred())) __PYX_ERR(0, 3132, __pyx_L1_error) ++ __pyx_t_9 = __Pyx_PyInt_As_nc_type(__pyx_t_3); if (unlikely((__pyx_t_9 == (nc_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 3132, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_xtype = __pyx_t_9; + +@@ -29512,49 +28203,31 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_find_dim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = NULL; +- __pyx_t_12 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { ++ __pyx_t_11 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); +- __pyx_t_12 = 1; ++ __pyx_t_11 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_grp, __pyx_v_dimname}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3151, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_grp, __pyx_v_dimname}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3151, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- { +- __pyx_t_7 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3151, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- if (__pyx_t_5) { +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; +- } +- __Pyx_INCREF(__pyx_v_grp); +- __Pyx_GIVEREF(__pyx_v_grp); +- PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_12, __pyx_v_grp); +- __Pyx_INCREF(__pyx_v_dimname); +- __Pyx_GIVEREF(__pyx_v_dimname); +- PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_12, __pyx_v_dimname); +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3151, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; ++ __pyx_t_7 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3151, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ if (__pyx_t_5) { ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; + } ++ __Pyx_INCREF(__pyx_v_grp); ++ __Pyx_GIVEREF(__pyx_v_grp); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_11, __pyx_v_grp); ++ __Pyx_INCREF(__pyx_v_dimname); ++ __Pyx_GIVEREF(__pyx_v_dimname); ++ PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_11, __pyx_v_dimname); ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3151, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF_SET(__pyx_v_dim, __pyx_t_3); + __pyx_t_3 = 0; +@@ -29658,7 +28331,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_grp, __pyx_n_s_redef); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -29910,7 +28583,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_grp, __pyx_n_s_enddef); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -30078,7 +28751,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_grp, __pyx_n_s_enddef); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3201, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -30191,7 +28864,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_grp, __pyx_n_s_enddef); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -30394,7 +29067,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_grp, __pyx_n_s_enddef); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -30469,7 +29142,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); +@@ -30643,7 +29316,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_grp, __pyx_n_s_enddef); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); +@@ -30832,7 +29505,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_grp, __pyx_n_s_enddef); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3246, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); +@@ -31046,7 +29719,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_grp, __pyx_n_s_enddef); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3265, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -31140,49 +29813,31 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = NULL; +- __pyx_t_4 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { ++ __pyx_t_15 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); +- __pyx_t_4 = 1; ++ __pyx_t_15 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_fill_value, __pyx_v_self->dtype}; +- __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3272, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_fill_value, __pyx_v_self->dtype}; +- __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3272, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- { +- __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3272, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_5); +- if (__pyx_t_6) { +- __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = NULL; +- } +- __Pyx_INCREF(__pyx_v_fill_value); +- __Pyx_GIVEREF(__pyx_v_fill_value); +- PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_fill_value); +- __Pyx_INCREF(__pyx_v_self->dtype); +- __Pyx_GIVEREF(__pyx_v_self->dtype); +- PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_self->dtype); +- __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3272, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; ++ __pyx_t_5 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3272, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_5); ++ if (__pyx_t_6) { ++ __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = NULL; + } ++ __Pyx_INCREF(__pyx_v_fill_value); ++ __Pyx_GIVEREF(__pyx_v_fill_value); ++ PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_15, __pyx_v_fill_value); ++ __Pyx_INCREF(__pyx_v_self->dtype); ++ __Pyx_GIVEREF(__pyx_v_self->dtype); ++ PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_15, __pyx_v_self->dtype); ++ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3272, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_fillval = __pyx_t_7; + __pyx_t_7 = 0; +@@ -31316,7 +29971,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_grp, __pyx_n_s_enddef); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); +@@ -31366,7 +30021,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + if (likely(!__pyx_t_17)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_3)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_7 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_15); __Pyx_INCREF(__pyx_t_7); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3284, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_3, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3284, __pyx_L1_error) +@@ -31374,7 +30029,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + #endif + } else { + if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_3)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_15); __Pyx_INCREF(__pyx_t_7); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3284, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_3, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3284, __pyx_L1_error) +@@ -31406,49 +30061,31 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_find_dim); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; +- __pyx_t_4 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { ++ __pyx_t_11 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); +- __pyx_t_4 = 1; ++ __pyx_t_11 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_self->_grp, __pyx_v_dimname}; +- __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3286, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_self->_grp, __pyx_v_dimname}; +- __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3286, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- { +- __pyx_t_18 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3286, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_18); +- if (__pyx_t_6) { +- __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL; +- } +- __Pyx_INCREF(__pyx_v_self->_grp); +- __Pyx_GIVEREF(__pyx_v_self->_grp); +- PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_4, __pyx_v_self->_grp); +- __Pyx_INCREF(__pyx_v_dimname); +- __Pyx_GIVEREF(__pyx_v_dimname); +- PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_4, __pyx_v_dimname); +- __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_18, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3286, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; ++ __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3286, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_18); ++ if (__pyx_t_6) { ++ __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL; + } ++ __Pyx_INCREF(__pyx_v_self->_grp); ++ __Pyx_GIVEREF(__pyx_v_self->_grp); ++ PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_v_self->_grp); ++ __Pyx_INCREF(__pyx_v_dimname); ++ __Pyx_GIVEREF(__pyx_v_dimname); ++ PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_v_dimname); ++ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_18, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3286, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF_SET(__pyx_v_dim, __pyx_t_7); + __pyx_t_7 = 0; +@@ -31463,7 +30100,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_dim, __pyx_n_s_isunlimited); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_18 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_18)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -31644,7 +30281,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable___init__(struct __pyx_obj_7netC + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_ncattrs); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); +@@ -31839,7 +30476,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_4__repr__(struct __pyx_ob + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -31892,7 +30529,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_4__repr__(struct __pyx_ob + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_default_encoding); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3312, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -31906,35 +30543,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_4__repr__(struct __pyx_ob + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3312, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3312, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3312, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; +- __Pyx_GIVEREF(__pyx_t_4); +- PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_4); +- __pyx_t_4 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3312, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } ++ __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3312, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; ++ __Pyx_GIVEREF(__pyx_t_4); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_4); ++ __pyx_t_4 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3312, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_1; +@@ -32011,11 +30628,12 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_6__unicode__(struct __pyx + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + int __pyx_t_11; +- int __pyx_t_12; ++ Py_ssize_t __pyx_t_12; + char *__pyx_t_13; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; ++ int __pyx_t_17; + __Pyx_RefNannySetupContext("__unicode__", 0); + + /* "netCDF4/_netCDF4.pyx":3316 +@@ -32097,7 +30715,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_6__unicode__(struct __pyx + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_5))) { + if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3319, __pyx_L1_error) + #else + __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3319, __pyx_L1_error) +@@ -32105,7 +30723,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_6__unicode__(struct __pyx + #endif + } else { + if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3319, __pyx_L1_error) + #else + __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3319, __pyx_L1_error) +@@ -32129,7 +30747,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_6__unicode__(struct __pyx + __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_tostr); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); +@@ -32142,33 +30760,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_6__unicode__(struct __pyx + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_dimname); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_v_dimname}; +- __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3319, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_v_dimname}; +- __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3319, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- } else +- #endif +- { +- __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3319, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_10); +- __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_9); __pyx_t_9 = NULL; +- __Pyx_INCREF(__pyx_v_dimname); +- __Pyx_GIVEREF(__pyx_v_dimname); +- PyTuple_SET_ITEM(__pyx_t_10, 0+1, __pyx_v_dimname); +- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3319, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; +- } ++ __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3319, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_9); __pyx_t_9 = NULL; ++ __Pyx_INCREF(__pyx_v_dimname); ++ __Pyx_GIVEREF(__pyx_v_dimname); ++ PyTuple_SET_ITEM(__pyx_t_10, 0+1, __pyx_v_dimname); ++ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3319, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_2))) __PYX_ERR(0, 3319, __pyx_L1_error) +@@ -32201,7 +30801,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_6__unicode__(struct __pyx + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_ncattrs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_8 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -32231,7 +30831,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_6__unicode__(struct __pyx + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3321, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3321, __pyx_L1_error) +@@ -32239,7 +30839,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_6__unicode__(struct __pyx + #endif + } else { + if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3321, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3321, __pyx_L1_error) +@@ -32271,7 +30871,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_6__unicode__(struct __pyx + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getncattr); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3320, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_10 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_10)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); +@@ -32284,33 +30884,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_6__unicode__(struct __pyx + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3320, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[2] = {__pyx_t_10, __pyx_v_name}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3320, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[2] = {__pyx_t_10, __pyx_v_name}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3320, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3320, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); +- __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_10); __pyx_t_10 = NULL; +- __Pyx_INCREF(__pyx_v_name); +- __Pyx_GIVEREF(__pyx_v_name); +- PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_v_name); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3320, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +- } ++ __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3320, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_9); ++ __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_10); __pyx_t_10 = NULL; ++ __Pyx_INCREF(__pyx_v_name); ++ __Pyx_GIVEREF(__pyx_v_name); ++ PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_v_name); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3320, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3320, __pyx_L1_error) +@@ -32680,7 +31262,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_6__unicode__(struct __pyx + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3342, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3342, __pyx_L1_error) +@@ -32688,7 +31270,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_6__unicode__(struct __pyx + #endif + } else { + if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3342, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3342, __pyx_L1_error) +@@ -32721,7 +31303,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_6__unicode__(struct __pyx + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = NULL; + __pyx_t_12 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -32731,38 +31313,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_6__unicode__(struct __pyx + __pyx_t_12 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_self->_grp, __pyx_v_dimname}; +- __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3343, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_5); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_self->_grp, __pyx_v_dimname}; +- __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3343, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_5); +- } else +- #endif +- { +- __pyx_t_9 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3343, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); +- if (__pyx_t_8) { +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; +- } +- __Pyx_INCREF(__pyx_v_self->_grp); +- __Pyx_GIVEREF(__pyx_v_self->_grp); +- PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_12, __pyx_v_self->_grp); +- __Pyx_INCREF(__pyx_v_dimname); +- __Pyx_GIVEREF(__pyx_v_dimname); +- PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_12, __pyx_v_dimname); +- __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3343, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_5); +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; ++ __pyx_t_9 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3343, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_9); ++ if (__pyx_t_8) { ++ __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; + } ++ __Pyx_INCREF(__pyx_v_self->_grp); ++ __Pyx_GIVEREF(__pyx_v_self->_grp); ++ PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_12, __pyx_v_self->_grp); ++ __Pyx_INCREF(__pyx_v_dimname); ++ __Pyx_GIVEREF(__pyx_v_dimname); ++ PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_12, __pyx_v_dimname); ++ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3343, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_5); ++ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF_SET(__pyx_v_dim, __pyx_t_5); + __pyx_t_5 = 0; +@@ -32777,7 +31341,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_6__unicode__(struct __pyx + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dim, __pyx_n_s_isunlimited); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_9 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -33050,8 +31614,8 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_6__unicode__(struct __pyx + * fillval = default_fillvals[self.dtype.str[1:]] + * if self.dtype.str[1:] in ['u1','i1']: + */ +- __pyx_t_12 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError); +- if (__pyx_t_12) { ++ __pyx_t_17 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError); ++ if (__pyx_t_17) { + __Pyx_AddTraceback("netCDF4._netCDF4.Variable.__unicode__", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_5, &__pyx_t_1) < 0) __PYX_ERR(0, 3358, __pyx_L22_except_error) + __Pyx_GOTREF(__pyx_t_2); +@@ -33296,7 +31860,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_8_getdims(struct __pyx_ob + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; +- int __pyx_t_9; ++ Py_ssize_t __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + __Pyx_RefNannySetupContext("_getdims", 0); + +@@ -33599,7 +32163,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_8_getdims(struct __pyx_ob + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = NULL; + __pyx_t_9 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -33609,42 +32173,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_8_getdims(struct __pyx_ob + __pyx_t_9 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_4, __pyx_t_7}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3394, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_4, __pyx_t_7}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3394, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- { +- __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3394, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_10); +- if (__pyx_t_8) { +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_4); +- PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_4); +- __Pyx_GIVEREF(__pyx_t_7); +- PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_7); +- __pyx_t_4 = 0; +- __pyx_t_7 = 0; +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3394, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; ++ __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3394, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ if (__pyx_t_8) { ++ __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_4); ++ PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_4); ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_7); ++ __pyx_t_4 = 0; ++ __pyx_t_7 = 0; ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3394, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_3); + __pyx_t_3 = 0; +@@ -33750,7 +32292,8 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_10_getname(struct __pyx_o + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; +- PyObject *__pyx_t_9 = NULL; ++ Py_ssize_t __pyx_t_9; ++ PyObject *__pyx_t_10 = NULL; + __Pyx_RefNannySetupContext("_getname", 0); + + /* "netCDF4/_netCDF4.pyx":3403 +@@ -33868,53 +32411,31 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_10_getname(struct __pyx_o + __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_unicode_error); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = NULL; +- __pyx_t_2 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ __pyx_t_9 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); +- __pyx_t_2 = 1; ++ __pyx_t_9 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3408, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3408, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- { +- __pyx_t_9 = PyTuple_New(2+__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3408, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); +- if (__pyx_t_8) { +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_5); +- PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_2, __pyx_t_5); +- __Pyx_GIVEREF(__pyx_t_7); +- PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_2, __pyx_t_7); +- __pyx_t_5 = 0; +- __pyx_t_7 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3408, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; ++ __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3408, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ if (__pyx_t_8) { ++ __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_5); ++ PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_5); ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_7); ++ __pyx_t_5 = 0; ++ __pyx_t_7 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3408, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; +@@ -33935,7 +32456,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_10_getname(struct __pyx_o + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); +- __Pyx_XDECREF(__pyx_t_9); ++ __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("netCDF4._netCDF4.Variable._getname", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; +@@ -33984,7 +32505,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_4name___get__(struct __py + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getname); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -34287,9 +32808,8 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_5shape___get__(struct __p + Py_ssize_t __pyx_t_4; + PyObject *(*__pyx_t_5)(PyObject *); + PyObject *__pyx_t_6 = NULL; +- int __pyx_t_7; ++ Py_ssize_t __pyx_t_7; + PyObject *__pyx_t_8 = NULL; +- Py_ssize_t __pyx_t_9; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "netCDF4/_netCDF4.pyx":3434 +@@ -34312,7 +32832,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_5shape___get__(struct __p + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getdims); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -34342,7 +32862,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_5shape___get__(struct __p + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 3435, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3435, __pyx_L1_error) +@@ -34350,7 +32870,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_5shape___get__(struct __p + #endif + } else { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 3435, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3435, __pyx_L1_error) +@@ -34383,7 +32903,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_5shape___get__(struct __p + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = NULL; + __pyx_t_7 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -34393,38 +32913,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_5shape___get__(struct __p + __pyx_t_7 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_self->_grp, __pyx_v_dimname}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3437, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_self->_grp, __pyx_v_dimname}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3437, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3437, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- if (__pyx_t_6) { +- __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; +- } +- __Pyx_INCREF(__pyx_v_self->_grp); +- __Pyx_GIVEREF(__pyx_v_self->_grp); +- PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_self->_grp); +- __Pyx_INCREF(__pyx_v_dimname); +- __Pyx_GIVEREF(__pyx_v_dimname); +- PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_dimname); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3437, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3437, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_8); ++ if (__pyx_t_6) { ++ __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; + } ++ __Pyx_INCREF(__pyx_v_self->_grp); ++ __Pyx_GIVEREF(__pyx_v_self->_grp); ++ PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_self->_grp); ++ __Pyx_INCREF(__pyx_v_dimname); ++ __Pyx_GIVEREF(__pyx_v_dimname); ++ PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_dimname); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3437, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF_SET(__pyx_v_dim, __pyx_t_1); + __pyx_t_1 = 0; +@@ -34436,8 +32938,8 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_5shape___get__(struct __p + * return shape + * def __set__(self,value): + */ +- __pyx_t_9 = PyObject_Length(__pyx_v_dim); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 3438, __pyx_L1_error) +- __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3438, __pyx_L1_error) ++ __pyx_t_7 = PyObject_Length(__pyx_v_dim); if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 3438, __pyx_L1_error) ++ __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); +@@ -34602,7 +33104,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_4size___get__(struct __py + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_shape); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3446, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -34616,35 +33118,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_4size___get__(struct __py + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_2}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3446, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_2}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3446, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } else +- #endif +- { +- __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3446, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_5); +- __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = NULL; +- __Pyx_GIVEREF(__pyx_t_2); +- PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_2); +- __pyx_t_2 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3446, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- } ++ __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3446, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_5); ++ __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = NULL; ++ __Pyx_GIVEREF(__pyx_t_2); ++ PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_2); ++ __pyx_t_2 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3446, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_1; +@@ -34714,7 +33196,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_10dimensions___get__(stru + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getdims); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3451, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -35019,7 +33501,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_16setncattr(struct __pyx_ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_grp, __pyx_n_s_redef); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -35068,7 +33550,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_16setncattr(struct __pyx_ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_grp, __pyx_n_s_enddef); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -35342,7 +33824,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_20setncatts(struct __pyx_ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_grp, __pyx_n_s_redef); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3504, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -35372,7 +33854,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_20setncatts(struct __pyx_ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_attdict, __pyx_n_s_items); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -35402,7 +33884,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_20setncatts(struct __pyx_ + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 3505, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3505, __pyx_L1_error) +@@ -35410,7 +33892,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_20setncatts(struct __pyx_ + #endif + } else { + if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 3505, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3505, __pyx_L1_error) +@@ -35431,7 +33913,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_20setncatts(struct __pyx_ + } + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -35441,7 +33923,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_20setncatts(struct __pyx_ + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 3505, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); +@@ -35523,7 +34005,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_20setncatts(struct __pyx_ + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_grp, __pyx_n_s_enddef); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); +@@ -35708,7 +34190,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_24delncattr(struct __pyx_ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_grp, __pyx_n_s_redef); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3528, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -35752,7 +34234,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_24delncattr(struct __pyx_ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_grp, __pyx_n_s_enddef); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3530, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -37054,7 +35536,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_34set_var_chunk_cache(str + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_var_chunk_cache); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3633, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -37073,7 +35555,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_34set_var_chunk_cache(str + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -37083,7 +35565,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_34set_var_chunk_cache(str + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 3633, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); +@@ -37402,7 +35884,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_36__delattr__(struct __pyx_obj_ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_delncattr); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -37415,33 +35897,15 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_36__delattr__(struct __pyx_obj_ + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_name}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3654, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_name}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3654, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3654, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; +- __Pyx_INCREF(__pyx_v_name); +- __Pyx_GIVEREF(__pyx_v_name); +- PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_name); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3654, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } ++ __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3654, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; ++ __Pyx_INCREF(__pyx_v_name); ++ __Pyx_GIVEREF(__pyx_v_name); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_name); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3654, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +@@ -37564,7 +36028,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_38__setattr__(struct __pyx_obj_ + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; +- int __pyx_t_7; ++ Py_ssize_t __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + __Pyx_RefNannySetupContext("__setattr__", 0); + __Pyx_INCREF(__pyx_v_value); +@@ -37689,7 +36153,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_38__setattr__(struct __pyx_obj_ + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = NULL; + __pyx_t_7 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -37699,38 +36163,20 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_38__setattr__(struct __pyx_obj_ + __pyx_t_7 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_value, __pyx_v_self->dtype}; +- __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3679, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_value, __pyx_v_self->dtype}; +- __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3679, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- { +- __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3679, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- if (__pyx_t_1) { +- __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1); __pyx_t_1 = NULL; +- } +- __Pyx_INCREF(__pyx_v_value); +- __Pyx_GIVEREF(__pyx_v_value); +- PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_value); +- __Pyx_INCREF(__pyx_v_self->dtype); +- __Pyx_GIVEREF(__pyx_v_self->dtype); +- PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_self->dtype); +- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3679, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3679, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_8); ++ if (__pyx_t_1) { ++ __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1); __pyx_t_1 = NULL; + } ++ __Pyx_INCREF(__pyx_v_value); ++ __Pyx_GIVEREF(__pyx_v_value); ++ PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_value); ++ __Pyx_INCREF(__pyx_v_self->dtype); ++ __Pyx_GIVEREF(__pyx_v_self->dtype); ++ PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_self->dtype); ++ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3679, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_4); + __pyx_t_4 = 0; +@@ -37779,7 +36225,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_38__setattr__(struct __pyx_obj_ + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = NULL; + __pyx_t_7 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -37789,38 +36235,20 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_38__setattr__(struct __pyx_obj_ + __pyx_t_7 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_name, __pyx_v_value}; +- __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3681, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_name, __pyx_v_value}; +- __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3681, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- { +- __pyx_t_1 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3681, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- if (__pyx_t_8) { +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8); __pyx_t_8 = NULL; +- } +- __Pyx_INCREF(__pyx_v_name); +- __Pyx_GIVEREF(__pyx_v_name); +- PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_7, __pyx_v_name); +- __Pyx_INCREF(__pyx_v_value); +- __Pyx_GIVEREF(__pyx_v_value); +- PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_7, __pyx_v_value); +- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3681, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; ++ __pyx_t_1 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3681, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ if (__pyx_t_8) { ++ __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8); __pyx_t_8 = NULL; + } ++ __Pyx_INCREF(__pyx_v_name); ++ __Pyx_GIVEREF(__pyx_v_name); ++ PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_7, __pyx_v_name); ++ __Pyx_INCREF(__pyx_v_value); ++ __Pyx_GIVEREF(__pyx_v_value); ++ PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_7, __pyx_v_value); ++ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3681, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + +@@ -37999,8 +36427,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_40__getattr__(struct __py + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; +- int __pyx_t_11; +- PyObject *__pyx_t_12 = NULL; ++ PyObject *__pyx_t_11 = NULL; + __Pyx_RefNannySetupContext("__getattr__", 0); + __Pyx_INCREF(__pyx_v_name); + +@@ -38054,7 +36481,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_40__getattr__(struct __py + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_ncattrs); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3695, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -38105,7 +36532,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_40__getattr__(struct __py + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3697, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3697, __pyx_L1_error) +@@ -38113,7 +36540,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_40__getattr__(struct __py + #endif + } else { + if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3697, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3697, __pyx_L1_error) +@@ -38173,52 +36600,34 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_40__getattr__(struct __py + __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_zip); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3699, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_10 = NULL; +- __pyx_t_11 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { ++ __pyx_t_6 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_9))) { + __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9); + if (likely(__pyx_t_10)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); + __Pyx_INCREF(__pyx_t_10); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_9, function); +- __pyx_t_11 = 1; ++ __pyx_t_6 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_9)) { +- PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_v_names, __pyx_v_values}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3699, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { +- PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_v_names, __pyx_v_values}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3699, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- { +- __pyx_t_12 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3699, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- if (__pyx_t_10) { +- __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_10); __pyx_t_10 = NULL; +- } +- __Pyx_INCREF(__pyx_v_names); +- __Pyx_GIVEREF(__pyx_v_names); +- PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_11, __pyx_v_names); +- __Pyx_INCREF(__pyx_v_values); +- __Pyx_GIVEREF(__pyx_v_values); +- PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_11, __pyx_v_values); +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_12, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3699, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- } ++ __pyx_t_11 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3699, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ if (__pyx_t_10) { ++ __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10); __pyx_t_10 = NULL; ++ } ++ __Pyx_INCREF(__pyx_v_names); ++ __Pyx_GIVEREF(__pyx_v_names); ++ PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_6, __pyx_v_names); ++ __Pyx_INCREF(__pyx_v_values); ++ __Pyx_GIVEREF(__pyx_v_values); ++ PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_6, __pyx_v_values); ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3699, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -38232,35 +36641,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_40__getattr__(struct __py + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_t_3}; +- __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3699, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_t_3}; +- __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3699, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } else +- #endif +- { +- __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3699, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_9); __pyx_t_9 = NULL; +- __Pyx_GIVEREF(__pyx_t_3); +- PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_t_3); +- __pyx_t_3 = 0; +- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_12, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3699, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- } ++ __pyx_t_11 = PyTuple_New(1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3699, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; ++ __Pyx_GIVEREF(__pyx_t_3); ++ PyTuple_SET_ITEM(__pyx_t_11, 0+1, __pyx_t_3); ++ __pyx_t_3 = 0; ++ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3699, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_r = __pyx_t_2; +@@ -38348,47 +36737,29 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_40__getattr__(struct __py + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getncattr); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __pyx_t_12 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { +- __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_2); +- if (likely(__pyx_t_12)) { ++ __pyx_t_11 = NULL; ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { ++ __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_2); ++ if (likely(__pyx_t_11)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +- __Pyx_INCREF(__pyx_t_12); ++ __Pyx_INCREF(__pyx_t_11); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } +- if (!__pyx_t_12) { ++ if (!__pyx_t_11) { + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[2] = {__pyx_t_12, __pyx_v_name}; +- __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3705, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_GOTREF(__pyx_t_5); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[2] = {__pyx_t_12, __pyx_v_name}; +- __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3705, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_GOTREF(__pyx_t_5); +- } else +- #endif +- { +- __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3705, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_12); __pyx_t_12 = NULL; +- __Pyx_INCREF(__pyx_v_name); +- __Pyx_GIVEREF(__pyx_v_name); +- PyTuple_SET_ITEM(__pyx_t_3, 0+1, __pyx_v_name); +- __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3705, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_5); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } ++ __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3705, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_11); __pyx_t_11 = NULL; ++ __Pyx_INCREF(__pyx_v_name); ++ __Pyx_GIVEREF(__pyx_v_name); ++ PyTuple_SET_ITEM(__pyx_t_3, 0+1, __pyx_v_name); ++ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3705, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_5); ++ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_5; +@@ -38411,7 +36782,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_40__getattr__(struct __py + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); +- __Pyx_XDECREF(__pyx_t_12); ++ __Pyx_XDECREF(__pyx_t_11); + __Pyx_AddTraceback("netCDF4._netCDF4.Variable.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; +@@ -38665,21 +37036,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; +- int __pyx_t_5; ++ Py_ssize_t __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_t_9; +- Py_ssize_t __pyx_t_10; +- PyObject *(*__pyx_t_11)(PyObject *); +- int __pyx_t_12; +- PyObject *__pyx_t_13 = NULL; ++ PyObject *(*__pyx_t_10)(PyObject *); ++ int __pyx_t_11; ++ PyObject *__pyx_t_12 = NULL; ++ Py_ssize_t __pyx_t_13; + int __pyx_t_14; +- Py_ssize_t __pyx_t_15; ++ PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; + PyObject *__pyx_t_17 = NULL; +- PyObject *__pyx_t_18 = NULL; +- double __pyx_t_19; ++ double __pyx_t_18; + __Pyx_RefNannySetupContext("__getitem__", 0); + + /* "netCDF4/_netCDF4.pyx":3729 +@@ -38695,7 +37065,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; + __pyx_t_5 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -38705,44 +37075,24 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + __pyx_t_5 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_elem, __pyx_t_3}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3729, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_elem, __pyx_t_3}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3729, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3729, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- if (__pyx_t_4) { +- __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; +- } +- __Pyx_INCREF(__pyx_v_elem); +- __Pyx_GIVEREF(__pyx_v_elem); +- PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_elem); +- __Pyx_GIVEREF(__pyx_t_3); +- PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_3); +- __pyx_t_3 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3729, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; ++ __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3729, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ if (__pyx_t_4) { ++ __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; + } ++ __Pyx_INCREF(__pyx_v_elem); ++ __Pyx_GIVEREF(__pyx_v_elem); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_elem); ++ __Pyx_GIVEREF(__pyx_t_3); ++ PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_3); ++ __pyx_t_3 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3729, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -38752,7 +37102,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 3729, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); +@@ -38822,7 +37172,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_out_array_shape); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3730, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -38835,33 +37185,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3730, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_count}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3730, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_count}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3730, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3730, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL; +- __Pyx_INCREF(__pyx_v_count); +- __Pyx_GIVEREF(__pyx_v_count); +- PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_count); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3730, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } ++ __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3730, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL; ++ __Pyx_INCREF(__pyx_v_count); ++ __Pyx_GIVEREF(__pyx_v_count); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_count); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3730, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_datashape = __pyx_t_1; +@@ -38982,35 +37314,35 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { +- __pyx_t_1 = __pyx_t_4; __Pyx_INCREF(__pyx_t_1); __pyx_t_10 = 0; +- __pyx_t_11 = NULL; ++ __pyx_t_1 = __pyx_t_4; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; ++ __pyx_t_10 = NULL; + } else { +- __pyx_t_10 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3741, __pyx_L1_error) ++ __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_11 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3741, __pyx_L1_error) ++ __pyx_t_10 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3741, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + for (;;) { +- if (likely(!__pyx_t_11)) { ++ if (likely(!__pyx_t_10)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { +- if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 3741, __pyx_L1_error) ++ if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 3741, __pyx_L1_error) + #else +- __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3741, __pyx_L1_error) ++ __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } else { +- if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 3741, __pyx_L1_error) ++ if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break; ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 3741, __pyx_L1_error) + #else +- __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3741, __pyx_L1_error) ++ __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } + } else { +- __pyx_t_4 = __pyx_t_11(__pyx_t_1); ++ __pyx_t_4 = __pyx_t_10(__pyx_t_1); + if (unlikely(!__pyx_t_4)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { +@@ -39040,11 +37372,11 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + */ + __pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_v_n, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3742, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); +- __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 3742, __pyx_L1_error) ++ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3742, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- if (__pyx_t_12) { ++ if (__pyx_t_11) { + } else { +- __pyx_t_9 = __pyx_t_12; ++ __pyx_t_9 = __pyx_t_11; + goto __pyx_L9_bool_binop_done; + } + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3742, __pyx_L1_error) +@@ -39062,7 +37394,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -39085,9 +37417,9 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + __pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_t_6, __pyx_int_neg_1, -1L, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3742, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 3742, __pyx_L1_error) ++ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3742, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- __pyx_t_9 = __pyx_t_12; ++ __pyx_t_9 = __pyx_t_11; + __pyx_L9_bool_binop_done:; + if (__pyx_t_9) { + +@@ -39150,7 +37482,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4); + __pyx_t_4 = 0; + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -39164,35 +37496,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_3); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_6}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3746, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_6}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3746, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } else +- #endif +- { +- __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3746, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL; +- __Pyx_GIVEREF(__pyx_t_6); +- PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_t_6); +- __pyx_t_6 = 0; +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3746, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } ++ __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3746, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL; ++ __Pyx_GIVEREF(__pyx_t_6); ++ PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_t_6); ++ __pyx_t_6 = 0; ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3746, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_start, __pyx_t_3); +@@ -39228,7 +37540,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); + __pyx_t_2 = 0; + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -39242,35 +37554,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_3); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_t_6}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3747, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_t_6}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3747, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } else +- #endif +- { +- __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3747, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; +- __Pyx_GIVEREF(__pyx_t_6); +- PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_t_6); +- __pyx_t_6 = 0; +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3747, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } ++ __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3747, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; ++ __Pyx_GIVEREF(__pyx_t_6); ++ PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_t_6); ++ __pyx_t_6 = 0; ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3747, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_count, __pyx_t_3); +@@ -39306,7 +37598,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4); + __pyx_t_4 = 0; + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -39320,35 +37612,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_3); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_6}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3748, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_6}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3748, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } else +- #endif +- { +- __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3748, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL; +- __Pyx_GIVEREF(__pyx_t_6); +- PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_t_6); +- __pyx_t_6 = 0; +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3748, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } ++ __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3748, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL; ++ __Pyx_GIVEREF(__pyx_t_6); ++ PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_t_6); ++ __pyx_t_6 = 0; ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3748, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_stride, __pyx_t_3); +@@ -39384,7 +37656,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); + __pyx_t_2 = 0; + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -39398,35 +37670,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_3); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_t_6}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3749, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_t_6}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3749, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } else +- #endif +- { +- __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3749, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; +- __Pyx_GIVEREF(__pyx_t_6); +- PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_t_6); +- __pyx_t_6 = 0; +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3749, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } ++ __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3749, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; ++ __Pyx_GIVEREF(__pyx_t_6); ++ PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_t_6); ++ __pyx_t_6 = 0; ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3749, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_put_ind, __pyx_t_3); +@@ -39443,7 +37695,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = NULL; + __pyx_t_5 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -39453,75 +37705,57 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + __pyx_t_5 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_v_start, __pyx_v_count, __pyx_v_stride, __pyx_v_put_ind}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3752, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_v_start, __pyx_v_count, __pyx_v_stride, __pyx_v_put_ind}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3752, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3752, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- if (__pyx_t_4) { +- __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; +- } +- __Pyx_INCREF(__pyx_v_start); +- __Pyx_GIVEREF(__pyx_v_start); +- PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_start); +- __Pyx_INCREF(__pyx_v_count); +- __Pyx_GIVEREF(__pyx_v_count); +- PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_count); +- __Pyx_INCREF(__pyx_v_stride); +- __Pyx_GIVEREF(__pyx_v_stride); +- PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, __pyx_v_stride); +- __Pyx_INCREF(__pyx_v_put_ind); +- __Pyx_GIVEREF(__pyx_v_put_ind); +- PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_5, __pyx_v_put_ind); +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3752, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } ++ __pyx_t_6 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3752, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ if (__pyx_t_4) { ++ __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; ++ } ++ __Pyx_INCREF(__pyx_v_start); ++ __Pyx_GIVEREF(__pyx_v_start); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_start); ++ __Pyx_INCREF(__pyx_v_count); ++ __Pyx_GIVEREF(__pyx_v_count); ++ PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_count); ++ __Pyx_INCREF(__pyx_v_stride); ++ __Pyx_GIVEREF(__pyx_v_stride); ++ PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, __pyx_v_stride); ++ __Pyx_INCREF(__pyx_v_put_ind); ++ __Pyx_GIVEREF(__pyx_v_put_ind); ++ PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_5, __pyx_v_put_ind); ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3752, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { +- __pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1); __pyx_t_10 = 0; +- __pyx_t_11 = NULL; ++ __pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; ++ __pyx_t_10 = NULL; + } else { +- __pyx_t_10 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3752, __pyx_L1_error) ++ __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3752, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_11 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3752, __pyx_L1_error) ++ __pyx_t_10 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3752, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + for (;;) { +- if (likely(!__pyx_t_11)) { ++ if (likely(!__pyx_t_10)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { +- if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 3752, __pyx_L1_error) ++ if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 3752, __pyx_L1_error) + #else +- __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3752, __pyx_L1_error) ++ __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3752, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + } else { +- if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 3752, __pyx_L1_error) ++ if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break; ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 3752, __pyx_L1_error) + #else +- __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3752, __pyx_L1_error) ++ __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3752, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + } + } else { +- __pyx_t_3 = __pyx_t_11(__pyx_t_1); ++ __pyx_t_3 = __pyx_t_10(__pyx_t_1); + if (unlikely(!__pyx_t_3)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { +@@ -39534,7 +37768,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + } + if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { + PyObject* sequence = __pyx_t_3; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -39544,7 +37778,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 3752, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); +@@ -39575,21 +37809,21 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + } else { + Py_ssize_t index = -1; + PyObject** temps[4] = {&__pyx_t_6,&__pyx_t_4,&__pyx_t_2,&__pyx_t_7}; +- __pyx_t_13 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3752, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_13); ++ __pyx_t_12 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3752, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- __pyx_t_8 = Py_TYPE(__pyx_t_13)->tp_iternext; ++ __pyx_t_8 = Py_TYPE(__pyx_t_12)->tp_iternext; + for (index=0; index < 4; index++) { +- PyObject* item = __pyx_t_8(__pyx_t_13); if (unlikely(!item)) goto __pyx_L21_unpacking_failed; ++ PyObject* item = __pyx_t_8(__pyx_t_12); if (unlikely(!item)) goto __pyx_L21_unpacking_failed; + __Pyx_GOTREF(item); + *(temps[index]) = item; + } +- if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_13), 4) < 0) __PYX_ERR(0, 3752, __pyx_L1_error) ++ if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_12), 4) < 0) __PYX_ERR(0, 3752, __pyx_L1_error) + __pyx_t_8 = NULL; +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; ++ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + goto __pyx_L22_unpacking_done; + __pyx_L21_unpacking_failed:; +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; ++ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(0, 3752, __pyx_L1_error) +@@ -39614,52 +37848,34 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3753, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_2 = NULL; +- __pyx_t_5 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { ++ __pyx_t_13 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); +- __pyx_t_5 = 1; ++ __pyx_t_13 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_v_a, __pyx_v_b, __pyx_v_c}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3753, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_v_a, __pyx_v_b, __pyx_v_c}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3753, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- { +- __pyx_t_4 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3753, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- if (__pyx_t_2) { +- __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; +- } +- __Pyx_INCREF(__pyx_v_a); +- __Pyx_GIVEREF(__pyx_v_a); +- PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_5, __pyx_v_a); +- __Pyx_INCREF(__pyx_v_b); +- __Pyx_GIVEREF(__pyx_v_b); +- PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_5, __pyx_v_b); +- __Pyx_INCREF(__pyx_v_c); +- __Pyx_GIVEREF(__pyx_v_c); +- PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_5, __pyx_v_c); +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3753, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; ++ __pyx_t_4 = PyTuple_New(3+__pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3753, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ if (__pyx_t_2) { ++ __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; + } ++ __Pyx_INCREF(__pyx_v_a); ++ __Pyx_GIVEREF(__pyx_v_a); ++ PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_13, __pyx_v_a); ++ __Pyx_INCREF(__pyx_v_b); ++ __Pyx_GIVEREF(__pyx_v_b); ++ PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_13, __pyx_v_b); ++ __Pyx_INCREF(__pyx_v_c); ++ __Pyx_GIVEREF(__pyx_v_c); ++ PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_13, __pyx_v_c); ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3753, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF_SET(__pyx_v_datout, __pyx_t_3); + __pyx_t_3 = 0; +@@ -39671,8 +37887,8 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + * data = datout + * else: + */ +- __pyx_t_12 = PyObject_HasAttr(__pyx_v_datout, __pyx_n_s_shape); if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 3754, __pyx_L1_error) +- __pyx_t_14 = ((!(__pyx_t_12 != 0)) != 0); ++ __pyx_t_11 = PyObject_HasAttr(__pyx_v_datout, __pyx_n_s_shape); if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 3754, __pyx_L1_error) ++ __pyx_t_14 = ((!(__pyx_t_11 != 0)) != 0); + if (!__pyx_t_14) { + } else { + __pyx_t_9 = __pyx_t_14; +@@ -39745,9 +37961,9 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + } + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dimensions); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3758, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); +- __pyx_t_15 = PyObject_Length(__pyx_t_4); if (unlikely(__pyx_t_15 == -1)) __PYX_ERR(0, 3758, __pyx_L1_error) ++ __pyx_t_13 = PyObject_Length(__pyx_t_4); if (unlikely(__pyx_t_13 == -1)) __PYX_ERR(0, 3758, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- __pyx_t_14 = ((!(__pyx_t_15 != 0)) != 0); ++ __pyx_t_14 = ((!(__pyx_t_13 != 0)) != 0); + __pyx_t_9 = __pyx_t_14; + __pyx_L27_bool_binop_done:; + if (__pyx_t_9) { +@@ -39782,7 +37998,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_datout, __pyx_n_s_reshape); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3762, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); +@@ -39795,33 +38011,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_shape); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3762, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_shape}; +- __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3762, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_shape}; +- __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3762, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- { +- __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3762, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL; +- __Pyx_INCREF(__pyx_v_shape); +- __Pyx_GIVEREF(__pyx_v_shape); +- PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_v_shape); +- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3762, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } ++ __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3762, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL; ++ __Pyx_INCREF(__pyx_v_shape); ++ __Pyx_GIVEREF(__pyx_v_shape); ++ PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_v_shape); ++ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3762, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PySequence_Tuple(__pyx_v_i); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3762, __pyx_L1_error) +@@ -39887,17 +38085,17 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + * # length 1. + */ + __pyx_t_9 = PyObject_HasAttr(__pyx_v_data, __pyx_n_s_ndim); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 3767, __pyx_L1_error) +- __pyx_t_12 = (__pyx_t_9 != 0); +- if (__pyx_t_12) { ++ __pyx_t_11 = (__pyx_t_9 != 0); ++ if (__pyx_t_11) { + } else { +- __pyx_t_14 = __pyx_t_12; ++ __pyx_t_14 = __pyx_t_11; + goto __pyx_L31_bool_binop_done; + } + __pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_v_self->ndim, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3767, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); +- __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 3767, __pyx_L1_error) ++ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3767, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- __pyx_t_14 = __pyx_t_12; ++ __pyx_t_14 = __pyx_t_11; + __pyx_L31_bool_binop_done:; + if (__pyx_t_14) { + +@@ -39923,7 +38121,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_data, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); +@@ -39937,35 +38135,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3770, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3770, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- { +- __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3770, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = NULL; +- __Pyx_GIVEREF(__pyx_t_4); +- PyTuple_SET_ITEM(__pyx_t_3, 0+1, __pyx_t_4); +- __pyx_t_4 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3770, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } ++ __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3770, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = NULL; ++ __Pyx_GIVEREF(__pyx_t_4); ++ PyTuple_SET_ITEM(__pyx_t_3, 0+1, __pyx_t_4); ++ __pyx_t_4 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3770, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_1); +@@ -39991,10 +38169,10 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign +- __Pyx_ExceptionSave(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); ++ __Pyx_ExceptionSave(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); ++ __Pyx_XGOTREF(__pyx_t_15); + __Pyx_XGOTREF(__pyx_t_16); + __Pyx_XGOTREF(__pyx_t_17); +- __Pyx_XGOTREF(__pyx_t_18); + /*try:*/ { + + /* "netCDF4/_netCDF4.pyx":3781 +@@ -40005,11 +38183,11 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + * valid_scaleoffset = True + */ + __pyx_t_14 = PyObject_HasAttr(((PyObject *)__pyx_v_self), __pyx_n_s_scale_factor); if (unlikely(__pyx_t_14 == -1)) __PYX_ERR(0, 3781, __pyx_L34_error) +- __pyx_t_12 = (__pyx_t_14 != 0); +- if (__pyx_t_12) { ++ __pyx_t_11 = (__pyx_t_14 != 0); ++ if (__pyx_t_11) { + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_scale_factor); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3781, __pyx_L34_error) + __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_19 = __Pyx_PyObject_AsDouble(__pyx_t_1); if (unlikely(__pyx_t_19 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3781, __pyx_L34_error) ++ __pyx_t_18 = __Pyx_PyObject_AsDouble(__pyx_t_1); if (unlikely(__pyx_t_18 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3781, __pyx_L34_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + +@@ -40020,12 +38198,12 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + * valid_scaleoffset = True + * except: + */ +- __pyx_t_12 = PyObject_HasAttr(((PyObject *)__pyx_v_self), __pyx_n_s_add_offset); if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 3782, __pyx_L34_error) +- __pyx_t_14 = (__pyx_t_12 != 0); ++ __pyx_t_11 = PyObject_HasAttr(((PyObject *)__pyx_v_self), __pyx_n_s_add_offset); if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 3782, __pyx_L34_error) ++ __pyx_t_14 = (__pyx_t_11 != 0); + if (__pyx_t_14) { + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_add_offset); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3782, __pyx_L34_error) + __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_19 = __Pyx_PyObject_AsDouble(__pyx_t_1); if (unlikely(__pyx_t_19 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3782, __pyx_L34_error) ++ __pyx_t_18 = __Pyx_PyObject_AsDouble(__pyx_t_1); if (unlikely(__pyx_t_18 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3782, __pyx_L34_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + +@@ -40046,13 +38224,13 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + * if hasattr(self,'add_offset'): float(self.add_offset) + */ + } ++ __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; +- __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + goto __pyx_L41_try_end; + __pyx_L34_error:; + __Pyx_PyThreadState_assign +- __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; ++ __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +@@ -40116,7 +38294,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -40129,33 +38307,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_msg); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3788, __pyx_L36_except_error) + __Pyx_GOTREF(__pyx_t_4); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_msg}; +- __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3788, __pyx_L36_except_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_msg}; +- __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3788, __pyx_L36_except_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- { +- __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3788, __pyx_L36_except_error) +- __Pyx_GOTREF(__pyx_t_13); +- __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_2); __pyx_t_2 = NULL; +- __Pyx_INCREF(__pyx_v_msg); +- __Pyx_GIVEREF(__pyx_v_msg); +- PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_v_msg); +- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_13, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3788, __pyx_L36_except_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; +- } ++ __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3788, __pyx_L36_except_error) ++ __Pyx_GOTREF(__pyx_t_12); ++ __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_2); __pyx_t_2 = NULL; ++ __Pyx_INCREF(__pyx_v_msg); ++ __Pyx_GIVEREF(__pyx_v_msg); ++ PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_v_msg); ++ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_12, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3788, __pyx_L36_except_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +@@ -40183,17 +38343,17 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + * if hasattr(self,'add_offset'): float(self.add_offset) + */ + __Pyx_PyThreadState_assign ++ __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_XGIVEREF(__pyx_t_16); + __Pyx_XGIVEREF(__pyx_t_17); +- __Pyx_XGIVEREF(__pyx_t_18); +- __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); ++ __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17); + goto __pyx_L1_error; + __pyx_L35_exception_handled:; + __Pyx_PyThreadState_assign ++ __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_XGIVEREF(__pyx_t_16); + __Pyx_XGIVEREF(__pyx_t_17); +- __Pyx_XGIVEREF(__pyx_t_18); +- __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); ++ __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17); + __pyx_L41_try_end:; + } + +@@ -40204,20 +38364,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + * data = self._toma(data) + * if self.scale and self._isprimitive and valid_scaleoffset: + */ +- __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_self->mask); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 3789, __pyx_L1_error) +- if (__pyx_t_12) { ++ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_v_self->mask); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3789, __pyx_L1_error) ++ if (__pyx_t_11) { + } else { +- __pyx_t_14 = __pyx_t_12; ++ __pyx_t_14 = __pyx_t_11; + goto __pyx_L48_bool_binop_done; + } +- __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_self->_isprimitive); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 3789, __pyx_L1_error) +- if (!__pyx_t_12) { ++ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_v_self->_isprimitive); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3789, __pyx_L1_error) ++ if (!__pyx_t_11) { + } else { +- __pyx_t_14 = __pyx_t_12; ++ __pyx_t_14 = __pyx_t_11; + goto __pyx_L48_bool_binop_done; + } +- __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_self->_isenum); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 3789, __pyx_L1_error) +- __pyx_t_14 = __pyx_t_12; ++ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_v_self->_isenum); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3789, __pyx_L1_error) ++ __pyx_t_14 = __pyx_t_11; + __pyx_L48_bool_binop_done:; + if (__pyx_t_14) { + +@@ -40231,7 +38391,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_toma); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); +@@ -40244,33 +38404,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_data}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3790, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_data}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3790, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- { +- __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3790, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __pyx_t_1 = NULL; +- __Pyx_INCREF(__pyx_v_data); +- __Pyx_GIVEREF(__pyx_v_data); +- PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_data); +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3790, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } ++ __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3790, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __pyx_t_1 = NULL; ++ __Pyx_INCREF(__pyx_v_data); ++ __Pyx_GIVEREF(__pyx_v_data); ++ PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_data); ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3790, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_3); +@@ -40292,20 +38434,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + * # if variable has scale_factor and add_offset attributes, rescale. + * if hasattr(self, 'scale_factor') and hasattr(self, 'add_offset') and\ + */ +- __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_self->scale); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 3791, __pyx_L1_error) +- if (__pyx_t_12) { ++ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_v_self->scale); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3791, __pyx_L1_error) ++ if (__pyx_t_11) { + } else { +- __pyx_t_14 = __pyx_t_12; ++ __pyx_t_14 = __pyx_t_11; + goto __pyx_L52_bool_binop_done; + } +- __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_self->_isprimitive); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 3791, __pyx_L1_error) +- if (__pyx_t_12) { ++ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_v_self->_isprimitive); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3791, __pyx_L1_error) ++ if (__pyx_t_11) { + } else { +- __pyx_t_14 = __pyx_t_12; ++ __pyx_t_14 = __pyx_t_11; + goto __pyx_L52_bool_binop_done; + } +- __pyx_t_12 = (__pyx_v_valid_scaleoffset != 0); +- __pyx_t_14 = __pyx_t_12; ++ __pyx_t_11 = (__pyx_v_valid_scaleoffset != 0); ++ __pyx_t_14 = __pyx_t_11; + __pyx_L52_bool_binop_done:; + if (__pyx_t_14) { + +@@ -40316,18 +38458,18 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + * (self.add_offset != 0.0 or self.scale_factor != 1.0): + * data = data*self.scale_factor + self.add_offset + */ +- __pyx_t_12 = PyObject_HasAttr(((PyObject *)__pyx_v_self), __pyx_n_s_scale_factor); if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 3793, __pyx_L1_error) +- __pyx_t_9 = (__pyx_t_12 != 0); ++ __pyx_t_11 = PyObject_HasAttr(((PyObject *)__pyx_v_self), __pyx_n_s_scale_factor); if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 3793, __pyx_L1_error) ++ __pyx_t_9 = (__pyx_t_11 != 0); + if (__pyx_t_9) { + } else { + __pyx_t_14 = __pyx_t_9; + goto __pyx_L56_bool_binop_done; + } + __pyx_t_9 = PyObject_HasAttr(((PyObject *)__pyx_v_self), __pyx_n_s_add_offset); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 3793, __pyx_L1_error) +- __pyx_t_12 = (__pyx_t_9 != 0); +- if (__pyx_t_12) { ++ __pyx_t_11 = (__pyx_t_9 != 0); ++ if (__pyx_t_11) { + } else { +- __pyx_t_14 = __pyx_t_12; ++ __pyx_t_14 = __pyx_t_11; + goto __pyx_L56_bool_binop_done; + } + +@@ -40342,20 +38484,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_7 = PyObject_RichCompare(__pyx_t_3, __pyx_float_0_0, Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3794, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 3794, __pyx_L1_error) ++ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3794, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- if (!__pyx_t_12) { ++ if (!__pyx_t_11) { + } else { +- __pyx_t_14 = __pyx_t_12; ++ __pyx_t_14 = __pyx_t_11; + goto __pyx_L56_bool_binop_done; + } + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_scale_factor); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3794, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_3 = PyObject_RichCompare(__pyx_t_7, __pyx_float_1_0, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3794, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 3794, __pyx_L1_error) ++ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3794, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- __pyx_t_14 = __pyx_t_12; ++ __pyx_t_14 = __pyx_t_11; + __pyx_L56_bool_binop_done:; + + /* "netCDF4/_netCDF4.pyx":3793 +@@ -40405,8 +38547,8 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + * data = data*self.scale_factor + * # else if variable has only add_offset attributes, rescale. + */ +- __pyx_t_12 = PyObject_HasAttr(((PyObject *)__pyx_v_self), __pyx_n_s_scale_factor); if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 3797, __pyx_L1_error) +- __pyx_t_9 = (__pyx_t_12 != 0); ++ __pyx_t_11 = PyObject_HasAttr(((PyObject *)__pyx_v_self), __pyx_n_s_scale_factor); if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 3797, __pyx_L1_error) ++ __pyx_t_9 = (__pyx_t_11 != 0); + if (__pyx_t_9) { + } else { + __pyx_t_14 = __pyx_t_9; +@@ -40455,19 +38597,19 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + * return data + */ + __pyx_t_9 = PyObject_HasAttr(((PyObject *)__pyx_v_self), __pyx_n_s_add_offset); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 3800, __pyx_L1_error) +- __pyx_t_12 = (__pyx_t_9 != 0); +- if (__pyx_t_12) { ++ __pyx_t_11 = (__pyx_t_9 != 0); ++ if (__pyx_t_11) { + } else { +- __pyx_t_14 = __pyx_t_12; ++ __pyx_t_14 = __pyx_t_11; + goto __pyx_L62_bool_binop_done; + } + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_add_offset); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3800, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = PyObject_RichCompare(__pyx_t_4, __pyx_float_0_0, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3800, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 3800, __pyx_L1_error) ++ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3800, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- __pyx_t_14 = __pyx_t_12; ++ __pyx_t_14 = __pyx_t_11; + __pyx_L62_bool_binop_done:; + if (__pyx_t_14) { + +@@ -40533,7 +38675,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_44__getitem__(struct __py + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); +- __Pyx_XDECREF(__pyx_t_13); ++ __Pyx_XDECREF(__pyx_t_12); + __Pyx_AddTraceback("netCDF4._netCDF4.Variable.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; +@@ -40602,16 +38744,16 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; +- int __pyx_t_6; ++ Py_ssize_t __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + int __pyx_t_8; + int __pyx_t_9; + int __pyx_t_10; +- Py_ssize_t __pyx_t_11; +- PyObject *(*__pyx_t_12)(PyObject *); ++ PyObject *(*__pyx_t_11)(PyObject *); ++ PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; +- PyObject *__pyx_t_15 = NULL; ++ int __pyx_t_15; + char *__pyx_t_16; + __Pyx_RefNannySetupContext("_toma", 0); + __Pyx_INCREF(__pyx_v_data); +@@ -40637,7 +38779,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = NULL; + __pyx_t_6 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -40647,42 +38789,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __pyx_t_6 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_2, __pyx_t_5}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3808, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_2, __pyx_t_5}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3808, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- } else +- #endif +- { +- __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3808, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- if (__pyx_t_4) { +- __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_2); +- PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_2); +- __Pyx_GIVEREF(__pyx_t_5); +- PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_5); +- __pyx_t_2 = 0; +- __pyx_t_5 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3808, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; ++ __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3808, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ if (__pyx_t_4) { ++ __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_2); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_2); ++ __Pyx_GIVEREF(__pyx_t_5); ++ PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_5); ++ __pyx_t_2 = 0; ++ __pyx_t_5 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3808, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_totalmask = __pyx_t_1; + __pyx_t_1 = 0; +@@ -40724,7 +38844,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = NULL; + __pyx_t_6 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); +@@ -40734,40 +38854,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __pyx_t_6 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_3, __pyx_v_self->dtype}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3811, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_3, __pyx_v_self->dtype}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3811, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } else +- #endif +- { +- __pyx_t_2 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3811, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- if (__pyx_t_5) { +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __pyx_t_5 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_3); +- PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_6, __pyx_t_3); +- __Pyx_INCREF(__pyx_v_self->dtype); +- __Pyx_GIVEREF(__pyx_v_self->dtype); +- PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_6, __pyx_v_self->dtype); +- __pyx_t_3 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3811, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; ++ __pyx_t_2 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3811, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ if (__pyx_t_5) { ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __pyx_t_5 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_3); ++ PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_6, __pyx_t_3); ++ __Pyx_INCREF(__pyx_v_self->dtype); ++ __Pyx_GIVEREF(__pyx_v_self->dtype); ++ PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_6, __pyx_v_self->dtype); ++ __pyx_t_3 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3811, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_v_mval = __pyx_t_1; + __pyx_t_1 = 0; +@@ -40793,7 +38893,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = NULL; + __pyx_t_6 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -40803,42 +38903,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __pyx_t_6 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_7, __pyx_t_5}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3813, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_7, __pyx_t_5}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3813, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- } else +- #endif +- { +- __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3813, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- if (__pyx_t_3) { +- __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_7); +- PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_t_7); +- __Pyx_GIVEREF(__pyx_t_5); +- PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_t_5); +- __pyx_t_7 = 0; +- __pyx_t_5 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3813, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; ++ __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3813, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ if (__pyx_t_3) { ++ __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_t_7); ++ __Pyx_GIVEREF(__pyx_t_5); ++ PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_t_5); ++ __pyx_t_7 = 0; ++ __pyx_t_5 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3813, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_mvalmask = __pyx_t_1; + __pyx_t_1 = 0; +@@ -40871,9 +38949,9 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + } + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_valid_range); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3821, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_11 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 3821, __pyx_L1_error) ++ __pyx_t_6 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 3821, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- __pyx_t_10 = ((__pyx_t_11 == 2) != 0); ++ __pyx_t_10 = ((__pyx_t_6 == 2) != 0); + __pyx_t_9 = __pyx_t_10; + __pyx_L5_bool_binop_done:; + if (__pyx_t_9) { +@@ -40897,7 +38975,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; + __pyx_t_6 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -40907,40 +38985,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __pyx_t_6 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_5, __pyx_v_self->dtype}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3822, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_5, __pyx_v_self->dtype}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3822, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- } else +- #endif +- { +- __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3822, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- if (__pyx_t_2) { +- __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2); __pyx_t_2 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_5); +- PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_5); +- __Pyx_INCREF(__pyx_v_self->dtype); +- __Pyx_GIVEREF(__pyx_v_self->dtype); +- PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_self->dtype); +- __pyx_t_5 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3822, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; ++ __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3822, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ if (__pyx_t_2) { ++ __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2); __pyx_t_2 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_5); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_5); ++ __Pyx_INCREF(__pyx_v_self->dtype); ++ __Pyx_GIVEREF(__pyx_v_self->dtype); ++ PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_self->dtype); ++ __pyx_t_5 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3822, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_validmin, __pyx_t_1); + __pyx_t_1 = 0; +@@ -40964,7 +39022,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = NULL; + __pyx_t_6 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); +@@ -40974,40 +39032,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __pyx_t_6 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_5, __pyx_v_self->dtype}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3823, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_5, __pyx_v_self->dtype}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3823, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- } else +- #endif +- { +- __pyx_t_2 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3823, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- if (__pyx_t_4) { +- __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_5); +- PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_6, __pyx_t_5); +- __Pyx_INCREF(__pyx_v_self->dtype); +- __Pyx_GIVEREF(__pyx_v_self->dtype); +- PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_6, __pyx_v_self->dtype); +- __pyx_t_5 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3823, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; ++ __pyx_t_2 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3823, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ if (__pyx_t_4) { ++ __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_5); ++ PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_6, __pyx_t_5); ++ __Pyx_INCREF(__pyx_v_self->dtype); ++ __Pyx_GIVEREF(__pyx_v_self->dtype); ++ PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_6, __pyx_v_self->dtype); ++ __pyx_t_5 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3823, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF_SET(__pyx_v_validmax, __pyx_t_1); + __pyx_t_1 = 0; +@@ -41050,7 +39088,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_5 = NULL; + __pyx_t_6 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -41060,40 +39098,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __pyx_t_6 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_7, __pyx_v_self->dtype}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3826, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_7, __pyx_v_self->dtype}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3826, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- { +- __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3826, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- if (__pyx_t_5) { +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_7); +- PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_t_7); +- __Pyx_INCREF(__pyx_v_self->dtype); +- __Pyx_GIVEREF(__pyx_v_self->dtype); +- PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_v_self->dtype); +- __pyx_t_7 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3826, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; ++ __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3826, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ if (__pyx_t_5) { ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_t_7); ++ __Pyx_INCREF(__pyx_v_self->dtype); ++ __Pyx_GIVEREF(__pyx_v_self->dtype); ++ PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_v_self->dtype); ++ __pyx_t_7 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3826, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF_SET(__pyx_v_validmin, __pyx_t_1); + __pyx_t_1 = 0; +@@ -41134,7 +39152,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = NULL; + __pyx_t_6 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -41144,40 +39162,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __pyx_t_6 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_2, __pyx_v_self->dtype}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3828, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_2, __pyx_v_self->dtype}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3828, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } else +- #endif +- { +- __pyx_t_5 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3828, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_5); +- if (__pyx_t_7) { +- __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_2); +- PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_t_2); +- __Pyx_INCREF(__pyx_v_self->dtype); +- __Pyx_GIVEREF(__pyx_v_self->dtype); +- PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_v_self->dtype); +- __pyx_t_2 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3828, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; ++ __pyx_t_5 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3828, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_5); ++ if (__pyx_t_7) { ++ __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_2); ++ PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_t_2); ++ __Pyx_INCREF(__pyx_v_self->dtype); ++ __Pyx_GIVEREF(__pyx_v_self->dtype); ++ PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_v_self->dtype); ++ __pyx_t_2 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3828, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_validmax, __pyx_t_1); + __pyx_t_1 = 0; +@@ -41244,7 +39242,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = NULL; + __pyx_t_6 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -41254,40 +39252,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __pyx_t_6 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_1, __pyx_v_self->dtype}; +- __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3839, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_1, __pyx_v_self->dtype}; +- __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3839, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } else +- #endif +- { +- __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3839, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- if (__pyx_t_2) { +- __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2); __pyx_t_2 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_1); +- PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_1); +- __Pyx_INCREF(__pyx_v_self->dtype); +- __Pyx_GIVEREF(__pyx_v_self->dtype); +- PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_self->dtype); +- __pyx_t_1 = 0; +- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3839, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; ++ __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3839, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ if (__pyx_t_2) { ++ __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2); __pyx_t_2 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_1); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_1); ++ __Pyx_INCREF(__pyx_v_self->dtype); ++ __Pyx_GIVEREF(__pyx_v_self->dtype); ++ PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_self->dtype); ++ __pyx_t_1 = 0; ++ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3839, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_fval = __pyx_t_4; + __pyx_t_4 = 0; +@@ -41328,7 +39306,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; + __pyx_t_6 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); +@@ -41338,40 +39316,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __pyx_t_6 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_1, __pyx_v_self->dtype}; +- __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3841, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_1, __pyx_v_self->dtype}; +- __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3841, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } else +- #endif +- { +- __pyx_t_5 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3841, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_5); +- if (__pyx_t_2) { +- __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_1); +- PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_t_1); +- __Pyx_INCREF(__pyx_v_self->dtype); +- __Pyx_GIVEREF(__pyx_v_self->dtype); +- PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_v_self->dtype); +- __pyx_t_1 = 0; +- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3841, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; ++ __pyx_t_5 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3841, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_5); ++ if (__pyx_t_2) { ++ __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_1); ++ PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_t_1); ++ __Pyx_INCREF(__pyx_v_self->dtype); ++ __Pyx_GIVEREF(__pyx_v_self->dtype); ++ PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_v_self->dtype); ++ __pyx_t_1 = 0; ++ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3841, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_v_fval = __pyx_t_4; + __pyx_t_4 = 0; +@@ -41602,34 +39560,34 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + * try: + */ + if (likely(PyList_CheckExact(__pyx_v_mval)) || PyTuple_CheckExact(__pyx_v_mval)) { +- __pyx_t_7 = __pyx_v_mval; __Pyx_INCREF(__pyx_t_7); __pyx_t_11 = 0; +- __pyx_t_12 = NULL; ++ __pyx_t_7 = __pyx_v_mval; __Pyx_INCREF(__pyx_t_7); __pyx_t_6 = 0; ++ __pyx_t_11 = NULL; + } else { +- __pyx_t_11 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_mval); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3853, __pyx_L1_error) ++ __pyx_t_6 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_mval); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); +- __pyx_t_12 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3853, __pyx_L1_error) ++ __pyx_t_11 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3853, __pyx_L1_error) + } + for (;;) { +- if (likely(!__pyx_t_12)) { ++ if (likely(!__pyx_t_11)) { + if (likely(PyList_CheckExact(__pyx_t_7))) { +- if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_7)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_4 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3853, __pyx_L1_error) ++ if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_7)) break; ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_4 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3853, __pyx_L1_error) + #else +- __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3853, __pyx_L1_error) ++ __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } else { +- if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_7)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3853, __pyx_L1_error) ++ if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_7)) break; ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3853, __pyx_L1_error) + #else +- __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3853, __pyx_L1_error) ++ __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } + } else { +- __pyx_t_4 = __pyx_t_12(__pyx_t_7); ++ __pyx_t_4 = __pyx_t_11(__pyx_t_7); + if (unlikely(!__pyx_t_4)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { +@@ -41653,10 +39611,10 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign +- __Pyx_ExceptionSave(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); ++ __Pyx_ExceptionSave(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); ++ __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); +- __Pyx_XGOTREF(__pyx_t_15); + /*try:*/ { + + /* "netCDF4/_netCDF4.pyx":3856 +@@ -41672,7 +39630,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -41685,33 +39643,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_m); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3856, __pyx_L25_error) + __Pyx_GOTREF(__pyx_t_4); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_m}; +- __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3856, __pyx_L25_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_m}; +- __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3856, __pyx_L25_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- { +- __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3856, __pyx_L25_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __pyx_t_5 = NULL; +- __Pyx_INCREF(__pyx_v_m); +- __Pyx_GIVEREF(__pyx_v_m); +- PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_v_m); +- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3856, __pyx_L25_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } ++ __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3856, __pyx_L25_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __pyx_t_5 = NULL; ++ __Pyx_INCREF(__pyx_v_m); ++ __Pyx_GIVEREF(__pyx_v_m); ++ PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_v_m); ++ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3856, __pyx_L25_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF_SET(__pyx_v_mvalisnan, __pyx_t_4); +@@ -41725,9 +39665,9 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + * except TypeError: # isnan fails on some dtypes (issue 206) + */ + } ++ __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; +- __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + goto __pyx_L32_try_end; + __pyx_L25_error:; + __Pyx_PyThreadState_assign +@@ -41744,8 +39684,8 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + * mvalisnan = False + * if mvalisnan: + */ +- __pyx_t_6 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError); +- if (__pyx_t_6) { ++ __pyx_t_15 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError); ++ if (__pyx_t_15) { + __Pyx_AddTraceback("netCDF4._netCDF4.Variable._toma", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(0, 3857, __pyx_L27_except_error) + __Pyx_GOTREF(__pyx_t_4); +@@ -41777,17 +39717,17 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + * except TypeError: # isnan fails on some dtypes (issue 206) + */ + __Pyx_PyThreadState_assign ++ __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); +- __Pyx_XGIVEREF(__pyx_t_15); +- __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15); ++ __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); + goto __pyx_L1_error; + __pyx_L26_exception_handled:; + __Pyx_PyThreadState_assign ++ __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); +- __Pyx_XGIVEREF(__pyx_t_15); +- __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15); ++ __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); + __pyx_L32_try_end:; + } + +@@ -41814,7 +39754,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -41827,33 +39767,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3860, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_data}; +- __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3860, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_data}; +- __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3860, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- } else +- #endif +- { +- __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3860, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_5); +- __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; +- __Pyx_INCREF(__pyx_v_data); +- __Pyx_GIVEREF(__pyx_v_data); +- PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_data); +- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3860, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- } ++ __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3860, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_5); ++ __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; ++ __Pyx_INCREF(__pyx_v_data); ++ __Pyx_GIVEREF(__pyx_v_data); ++ PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_data); ++ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3860, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_mvalmask, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3860, __pyx_L1_error) +@@ -41909,7 +39831,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_mvalmask, __pyx_n_s_any); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3863, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -41999,7 +39921,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = NULL; + __pyx_t_6 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -42009,40 +39931,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __pyx_t_6 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_2, __pyx_v_self->dtype}; +- __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3871, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_2, __pyx_v_self->dtype}; +- __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3871, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } else +- #endif +- { +- __pyx_t_1 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3871, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- if (__pyx_t_5) { +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_2); +- PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_6, __pyx_t_2); +- __Pyx_INCREF(__pyx_v_self->dtype); +- __Pyx_GIVEREF(__pyx_v_self->dtype); +- PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_6, __pyx_v_self->dtype); +- __pyx_t_2 = 0; +- __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3871, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; ++ __pyx_t_1 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3871, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ if (__pyx_t_5) { ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_2); ++ PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_6, __pyx_t_2); ++ __Pyx_INCREF(__pyx_v_self->dtype); ++ __Pyx_GIVEREF(__pyx_v_self->dtype); ++ PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_6, __pyx_v_self->dtype); ++ __pyx_t_2 = 0; ++ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3871, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF_SET(__pyx_v_fval, __pyx_t_7); + __pyx_t_7 = 0; +@@ -42057,10 +39959,10 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign +- __Pyx_ExceptionSave(&__pyx_t_15, &__pyx_t_14, &__pyx_t_13); +- __Pyx_XGOTREF(__pyx_t_15); ++ __Pyx_ExceptionSave(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_14); + __Pyx_XGOTREF(__pyx_t_13); ++ __Pyx_XGOTREF(__pyx_t_12); + /*try:*/ { + + /* "netCDF4/_netCDF4.pyx":3874 +@@ -42076,7 +39978,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -42089,33 +39991,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_fval); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3874, __pyx_L38_error) + __Pyx_GOTREF(__pyx_t_7); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_fval}; +- __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3874, __pyx_L38_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_fval}; +- __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3874, __pyx_L38_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- { +- __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3874, __pyx_L38_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL; +- __Pyx_INCREF(__pyx_v_fval); +- __Pyx_GIVEREF(__pyx_v_fval); +- PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_v_fval); +- __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3874, __pyx_L38_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } ++ __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3874, __pyx_L38_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL; ++ __Pyx_INCREF(__pyx_v_fval); ++ __Pyx_GIVEREF(__pyx_v_fval); ++ PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_v_fval); ++ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3874, __pyx_L38_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_fvalisnan = __pyx_t_7; +@@ -42129,9 +40013,9 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + * except: # isnan fails on some dtypes (issue 202) + */ + } +- __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; ++ __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + goto __pyx_L45_try_end; + __pyx_L38_error:; + __Pyx_PyThreadState_assign +@@ -42180,17 +40064,17 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + * except: # isnan fails on some dtypes (issue 202) + */ + __Pyx_PyThreadState_assign +- __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_XGIVEREF(__pyx_t_13); +- __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_14, __pyx_t_13); ++ __Pyx_XGIVEREF(__pyx_t_12); ++ __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_13, __pyx_t_12); + goto __pyx_L1_error; + __pyx_L39_exception_handled:; + __Pyx_PyThreadState_assign +- __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_XGIVEREF(__pyx_t_13); +- __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_14, __pyx_t_13); ++ __Pyx_XGIVEREF(__pyx_t_12); ++ __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_13, __pyx_t_12); + __pyx_L45_try_end:; + } + +@@ -42217,7 +40101,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); +@@ -42230,33 +40114,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3878, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_data}; +- __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3878, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_data}; +- __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3878, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- } else +- #endif +- { +- __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3878, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __pyx_t_1 = NULL; +- __Pyx_INCREF(__pyx_v_data); +- __Pyx_GIVEREF(__pyx_v_data); +- PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_data); +- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3878, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } ++ __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3878, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __pyx_t_1 = NULL; ++ __Pyx_INCREF(__pyx_v_data); ++ __Pyx_GIVEREF(__pyx_v_data); ++ PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_data); ++ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3878, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_v_mask = __pyx_t_2; +@@ -42284,7 +40150,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -42554,7 +40420,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = NULL; + __pyx_t_6 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); +@@ -42564,40 +40430,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __pyx_t_6 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_1, __pyx_v_self->dtype}; +- __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3907, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_1, __pyx_v_self->dtype}; +- __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3907, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } else +- #endif +- { +- __pyx_t_2 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3907, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- if (__pyx_t_5) { +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __pyx_t_5 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_1); +- PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_6, __pyx_t_1); +- __Pyx_INCREF(__pyx_v_self->dtype); +- __Pyx_GIVEREF(__pyx_v_self->dtype); +- PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_6, __pyx_v_self->dtype); +- __pyx_t_1 = 0; +- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3907, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; ++ __pyx_t_2 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3907, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ if (__pyx_t_5) { ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __pyx_t_5 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_1); ++ PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_6, __pyx_t_1); ++ __Pyx_INCREF(__pyx_v_self->dtype); ++ __Pyx_GIVEREF(__pyx_v_self->dtype); ++ PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_6, __pyx_v_self->dtype); ++ __pyx_t_1 = 0; ++ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3907, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_v_fillval = __pyx_t_4; + __pyx_t_4 = 0; +@@ -42630,7 +40476,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -42643,33 +40489,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_has_fillval); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3911, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_has_fillval}; +- __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3911, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_has_fillval}; +- __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3911, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- { +- __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3911, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7); __pyx_t_7 = NULL; +- __Pyx_INCREF(__pyx_v_has_fillval); +- __Pyx_GIVEREF(__pyx_v_has_fillval); +- PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_has_fillval); +- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3911, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } ++ __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3911, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7); __pyx_t_7 = NULL; ++ __Pyx_INCREF(__pyx_v_has_fillval); ++ __Pyx_GIVEREF(__pyx_v_has_fillval); ++ PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_has_fillval); ++ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3911, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF_SET(__pyx_v_has_fillval, __pyx_t_4); +@@ -42686,7 +40514,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_has_fillval, __pyx_n_s_any); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3912, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -42844,7 +40672,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_46_toma(struct __pyx_obj_ + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -43320,7 +41148,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_48_assign_vlen(struct __p + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3955, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3955, __pyx_L1_error) +@@ -43328,7 +41156,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_48_assign_vlen(struct __p + #endif + } else { + if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_3)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3955, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3955, __pyx_L1_error) +@@ -44043,17 +41871,16 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + int __pyx_t_4; + Py_ssize_t __pyx_t_5; + PyObject *__pyx_t_6 = NULL; +- int __pyx_t_7; +- PyObject *__pyx_t_8 = NULL; ++ PyObject *__pyx_t_7 = NULL; ++ int __pyx_t_8; + int __pyx_t_9; +- int __pyx_t_10; ++ PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; +- PyObject *__pyx_t_12 = NULL; ++ PyObject *(*__pyx_t_12)(PyObject *); + PyObject *(*__pyx_t_13)(PyObject *); +- PyObject *(*__pyx_t_14)(PyObject *); +- Py_ssize_t __pyx_t_15; ++ Py_ssize_t __pyx_t_14; ++ PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; +- PyObject *__pyx_t_17 = NULL; + __Pyx_RefNannySetupContext("__setitem__", 0); + __Pyx_INCREF(__pyx_v_elem); + __Pyx_INCREF(__pyx_v_data); +@@ -44166,49 +41993,31 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_assign_vlen); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = NULL; +- __pyx_t_7 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ __pyx_t_5 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); +- __pyx_t_7 = 1; ++ __pyx_t_5 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_elem, __pyx_v_data}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4020, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_elem, __pyx_v_data}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4020, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- { +- __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4020, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- if (__pyx_t_6) { +- __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; +- } +- __Pyx_INCREF(__pyx_v_elem); +- __Pyx_GIVEREF(__pyx_v_elem); +- PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_elem); +- __Pyx_INCREF(__pyx_v_data); +- __Pyx_GIVEREF(__pyx_v_data); +- PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_data); +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4020, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __pyx_t_7 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4020, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ if (__pyx_t_6) { ++ __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; + } ++ __Pyx_INCREF(__pyx_v_elem); ++ __Pyx_GIVEREF(__pyx_v_elem); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_5, __pyx_v_elem); ++ __Pyx_INCREF(__pyx_v_data); ++ __Pyx_GIVEREF(__pyx_v_data); ++ PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_5, __pyx_v_data); ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4020, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + +@@ -44265,52 +42074,34 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + */ + __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_ma); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4023, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); +- __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_isMA); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4023, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); ++ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_isMA); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4023, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { +- __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_8); ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) { ++ __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_3)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_8, function); ++ __Pyx_DECREF_SET(__pyx_t_7, function); + } + } + if (!__pyx_t_3) { +- __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4023, __pyx_L1_error) ++ __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4023, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_data}; +- __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4023, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_data}; +- __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4023, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4023, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL; +- __Pyx_INCREF(__pyx_v_data); +- __Pyx_GIVEREF(__pyx_v_data); +- PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_data); +- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4023, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } ++ __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4023, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL; ++ __Pyx_INCREF(__pyx_v_data); ++ __Pyx_GIVEREF(__pyx_v_data); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_data); ++ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4023, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4023, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__pyx_t_1) { +@@ -44337,11 +42128,11 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + __Pyx_INCREF(__pyx_v_msg); + __Pyx_GIVEREF(__pyx_v_msg); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_msg); +- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4025, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); ++ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4025, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_Raise(__pyx_t_8, 0, 0, 0); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __Pyx_Raise(__pyx_t_7, 0, 0, 0); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __PYX_ERR(0, 4025, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":4023 +@@ -44363,7 +42154,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_astype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4026, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -44373,40 +42164,22 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + } + } + if (!__pyx_t_6) { +- __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_builtin_object); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4026, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); ++ __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_builtin_object); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4026, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_builtin_object}; +- __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4026, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_8); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_builtin_object}; +- __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4026, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_8); +- } else +- #endif +- { +- __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4026, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); __pyx_t_6 = NULL; +- __Pyx_INCREF(__pyx_builtin_object); +- __Pyx_GIVEREF(__pyx_builtin_object); +- PyTuple_SET_ITEM(__pyx_t_3, 0+1, __pyx_builtin_object); +- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4026, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } ++ __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4026, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); __pyx_t_6 = NULL; ++ __Pyx_INCREF(__pyx_builtin_object); ++ __Pyx_GIVEREF(__pyx_builtin_object); ++ PyTuple_SET_ITEM(__pyx_t_3, 0+1, __pyx_builtin_object); ++ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4026, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_8); +- __pyx_t_8 = 0; ++ __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_7); ++ __pyx_t_7 = 0; + + /* "netCDF4/_netCDF4.pyx":4022 + * self._assign_vlen(elem, data) +@@ -44425,11 +42198,11 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * msg = ('only numpy string, unicode or object arrays can ' + * 'be assigned to VLEN str var slices') + */ +- __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_dtype); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4027, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_kind); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4027, __pyx_L1_error) ++ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_dtype); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4027, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_kind); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4027, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_n_s_O, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4027, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__pyx_t_1) { +@@ -44456,11 +42229,11 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + __Pyx_INCREF(__pyx_v_msg); + __Pyx_GIVEREF(__pyx_v_msg); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_msg); +- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4030, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); ++ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4030, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_Raise(__pyx_t_8, 0, 0, 0); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __Pyx_Raise(__pyx_t_7, 0, 0, 0); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __PYX_ERR(0, 4030, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":4027 +@@ -44491,27 +42264,27 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * if type(elem) == type(Ellipsis) and not\ + */ + /*else*/ { +- __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4035, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_ndarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4035, __pyx_L1_error) ++ __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4035, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_ndarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4035, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_4 = PyObject_IsInstance(__pyx_v_data, __pyx_t_2); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(0, 4035, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __pyx_t_9 = ((!(__pyx_t_4 != 0)) != 0); +- if (!__pyx_t_9) { ++ __pyx_t_8 = ((!(__pyx_t_4 != 0)) != 0); ++ if (!__pyx_t_8) { + } else { +- __pyx_t_1 = __pyx_t_9; ++ __pyx_t_1 = __pyx_t_8; + goto __pyx_L13_bool_binop_done; + } + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_dtype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4035, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_kind); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4035, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); ++ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_kind); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4035, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_t_8, __pyx_n_s_O, Py_NE)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 4035, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- __pyx_t_1 = __pyx_t_9; ++ __pyx_t_8 = (__Pyx_PyString_Equals(__pyx_t_7, __pyx_n_s_O, Py_NE)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4035, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; ++ __pyx_t_1 = __pyx_t_8; + __pyx_L13_bool_binop_done:; + if (__pyx_t_1) { + +@@ -44522,12 +42295,12 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * len(self.dimensions): elem = 0 + * self._assign_vlen(elem, data) + */ +- __pyx_t_8 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_elem)), ((PyObject *)Py_TYPE(__pyx_builtin_Ellipsis)), Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4037, __pyx_L1_error) +- __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 4037, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- if (__pyx_t_9) { ++ __pyx_t_7 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_elem)), ((PyObject *)Py_TYPE(__pyx_builtin_Ellipsis)), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4037, __pyx_L1_error) ++ __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4037, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; ++ if (__pyx_t_8) { + } else { +- __pyx_t_1 = __pyx_t_9; ++ __pyx_t_1 = __pyx_t_8; + goto __pyx_L16_bool_binop_done; + } + +@@ -44538,10 +42311,10 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * self._assign_vlen(elem, data) + * return + */ +- __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dimensions); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4038, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __pyx_t_5 = PyObject_Length(__pyx_t_8); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 4038, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dimensions); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4038, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __pyx_t_5 = PyObject_Length(__pyx_t_7); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 4038, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "netCDF4/_netCDF4.pyx":4037 + * if not isinstance(data, numpy.ndarray) or data.dtype.kind != 'O': +@@ -44550,8 +42323,8 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * len(self.dimensions): elem = 0 + * self._assign_vlen(elem, data) + */ +- __pyx_t_9 = ((!(__pyx_t_5 != 0)) != 0); +- __pyx_t_1 = __pyx_t_9; ++ __pyx_t_8 = ((!(__pyx_t_5 != 0)) != 0); ++ __pyx_t_1 = __pyx_t_8; + __pyx_L16_bool_binop_done:; + if (__pyx_t_1) { + +@@ -44584,51 +42357,33 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_assign_vlen); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4039, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; +- __pyx_t_7 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ __pyx_t_5 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); +- __pyx_t_7 = 1; ++ __pyx_t_5 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_elem, __pyx_v_data}; +- __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4039, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_8); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_elem, __pyx_v_data}; +- __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4039, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_8); +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4039, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- if (__pyx_t_3) { +- __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL; +- } +- __Pyx_INCREF(__pyx_v_elem); +- __Pyx_GIVEREF(__pyx_v_elem); +- PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_7, __pyx_v_elem); +- __Pyx_INCREF(__pyx_v_data); +- __Pyx_GIVEREF(__pyx_v_data); +- PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_7, __pyx_v_data); +- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4039, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; ++ __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4039, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ if (__pyx_t_3) { ++ __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL; + } ++ __Pyx_INCREF(__pyx_v_elem); ++ __Pyx_GIVEREF(__pyx_v_elem); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_elem); ++ __Pyx_INCREF(__pyx_v_data); ++ __Pyx_GIVEREF(__pyx_v_data); ++ PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_data); ++ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4039, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "netCDF4/_netCDF4.pyx":4040 + * len(self.dimensions): elem = 0 +@@ -44673,7 +42428,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -44683,65 +42438,47 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + } + } + if (!__pyx_t_2) { +- __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_data); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4044, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); ++ __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_data); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4044, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_data}; +- __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4044, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_8); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_data}; +- __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4044, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_8); +- } else +- #endif +- { +- __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4044, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = NULL; +- __Pyx_INCREF(__pyx_v_data); +- __Pyx_GIVEREF(__pyx_v_data); +- PyTuple_SET_ITEM(__pyx_t_3, 0+1, __pyx_v_data); +- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_3, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4044, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } ++ __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4044, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = NULL; ++ __Pyx_INCREF(__pyx_v_data); ++ __Pyx_GIVEREF(__pyx_v_data); ++ PyTuple_SET_ITEM(__pyx_t_3, 0+1, __pyx_v_data); ++ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_3, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4044, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 4044, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- __pyx_t_4 = ((!__pyx_t_9) != 0); ++ __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4044, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; ++ __pyx_t_4 = ((!__pyx_t_8) != 0); + if (__pyx_t_4) { + } else { + __pyx_t_1 = __pyx_t_4; + goto __pyx_L19_bool_binop_done; + } +- __pyx_t_9 = PyObject_HasAttr(__pyx_v_data, __pyx_n_s_data); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 4044, __pyx_L1_error) +- __pyx_t_10 = (__pyx_t_9 != 0); +- if (__pyx_t_10) { ++ __pyx_t_8 = PyObject_HasAttr(__pyx_v_data, __pyx_n_s_data); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 4044, __pyx_L1_error) ++ __pyx_t_9 = (__pyx_t_8 != 0); ++ if (__pyx_t_9) { + } else { +- __pyx_t_4 = __pyx_t_10; ++ __pyx_t_4 = __pyx_t_9; + goto __pyx_L21_bool_binop_done; + } +- __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_data); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4044, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); ++ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_data); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4044, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_buffer); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4044, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); +- __pyx_t_10 = PyObject_IsInstance(__pyx_t_8, __pyx_t_6); if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 4044, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __pyx_t_9 = PyObject_IsInstance(__pyx_t_7, __pyx_t_6); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 4044, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __pyx_t_9 = (__pyx_t_10 != 0); +- __pyx_t_4 = __pyx_t_9; ++ __pyx_t_8 = (__pyx_t_9 != 0); ++ __pyx_t_4 = __pyx_t_8; + __pyx_L21_bool_binop_done:; +- __pyx_t_9 = ((!__pyx_t_4) != 0); +- __pyx_t_1 = __pyx_t_9; ++ __pyx_t_8 = ((!__pyx_t_4) != 0); ++ __pyx_t_1 = __pyx_t_8; + __pyx_L19_bool_binop_done:; + if (__pyx_t_1) { + +@@ -44752,16 +42489,16 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * hasattr(self, 'scale_factor') or hasattr(self, 'add_offset'): + * data = numpy.array(data,numpy.float) + */ +- __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_self->scale); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 4046, __pyx_L1_error) +- if (!__pyx_t_9) { ++ __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_self->scale); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4046, __pyx_L1_error) ++ if (!__pyx_t_8) { + goto __pyx_L25_next_or; + } else { + } + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4046, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); +- __pyx_t_9 = (__Pyx_PySequence_ContainsTF(__pyx_t_6, __pyx_n_s_iu, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 4046, __pyx_L1_error) ++ __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_t_6, __pyx_n_s_iu, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4046, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __pyx_t_4 = (__pyx_t_9 != 0); ++ __pyx_t_4 = (__pyx_t_8 != 0); + if (!__pyx_t_4) { + goto __pyx_L25_next_or; + } else { +@@ -44775,15 +42512,15 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * else: + */ + __pyx_t_4 = PyObject_HasAttr(((PyObject *)__pyx_v_self), __pyx_n_s_scale_factor); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(0, 4047, __pyx_L1_error) +- __pyx_t_9 = (__pyx_t_4 != 0); +- if (!__pyx_t_9) { ++ __pyx_t_8 = (__pyx_t_4 != 0); ++ if (!__pyx_t_8) { + } else { +- __pyx_t_1 = __pyx_t_9; ++ __pyx_t_1 = __pyx_t_8; + goto __pyx_L24_bool_binop_done; + } + __pyx_L25_next_or:; +- __pyx_t_9 = PyObject_HasAttr(((PyObject *)__pyx_v_self), __pyx_n_s_add_offset); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 4047, __pyx_L1_error) +- __pyx_t_4 = (__pyx_t_9 != 0); ++ __pyx_t_8 = PyObject_HasAttr(((PyObject *)__pyx_v_self), __pyx_n_s_add_offset); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 4047, __pyx_L1_error) ++ __pyx_t_4 = (__pyx_t_8 != 0); + __pyx_t_1 = __pyx_t_4; + __pyx_L24_bool_binop_done:; + +@@ -44803,62 +42540,42 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * else: + * data = numpy.array(data,self.dtype) + */ +- __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4048, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_array); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4048, __pyx_L1_error) ++ __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4048, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_array); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4048, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_float); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4048, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; ++ __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4048, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_float); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- __pyx_t_8 = NULL; +- __pyx_t_7 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { +- __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3); +- if (likely(__pyx_t_8)) { ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; ++ __pyx_t_7 = NULL; ++ __pyx_t_5 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { ++ __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); ++ if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +- __Pyx_INCREF(__pyx_t_8); ++ __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); +- __pyx_t_7 = 1; ++ __pyx_t_5 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_data, __pyx_t_2}; +- __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4048, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_data, __pyx_t_2}; +- __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4048, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } else +- #endif +- { +- __pyx_t_11 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4048, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); +- if (__pyx_t_8) { +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_8); __pyx_t_8 = NULL; +- } +- __Pyx_INCREF(__pyx_v_data); +- __Pyx_GIVEREF(__pyx_v_data); +- PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_7, __pyx_v_data); +- __Pyx_GIVEREF(__pyx_t_2); +- PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_7, __pyx_t_2); +- __pyx_t_2 = 0; +- __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_11, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4048, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __pyx_t_10 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4048, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ if (__pyx_t_7) { ++ __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7); __pyx_t_7 = NULL; + } ++ __Pyx_INCREF(__pyx_v_data); ++ __Pyx_GIVEREF(__pyx_v_data); ++ PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_5, __pyx_v_data); ++ __Pyx_GIVEREF(__pyx_t_2); ++ PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_5, __pyx_t_2); ++ __pyx_t_2 = 0; ++ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_10, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4048, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_6); + __pyx_t_6 = 0; +@@ -44883,54 +42600,36 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + /*else*/ { + __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4050, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); +- __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_array); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4050, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); ++ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_array); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4050, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = NULL; +- __pyx_t_7 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { +- __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_11); ++ __pyx_t_5 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_10))) { ++ __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_10); + if (likely(__pyx_t_3)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_11, function); +- __pyx_t_7 = 1; ++ __Pyx_DECREF_SET(__pyx_t_10, function); ++ __pyx_t_5 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_11)) { +- PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_data, __pyx_v_self->dtype}; +- __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4050, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) { +- PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_data, __pyx_v_self->dtype}; +- __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4050, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- } else +- #endif +- { +- __pyx_t_2 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4050, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- if (__pyx_t_3) { +- __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL; +- } +- __Pyx_INCREF(__pyx_v_data); +- __Pyx_GIVEREF(__pyx_v_data); +- PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_7, __pyx_v_data); +- __Pyx_INCREF(__pyx_v_self->dtype); +- __Pyx_GIVEREF(__pyx_v_self->dtype); +- PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_7, __pyx_v_self->dtype); +- __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_2, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4050, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; ++ __pyx_t_2 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4050, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ if (__pyx_t_3) { ++ __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL; + } +- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __Pyx_INCREF(__pyx_v_data); ++ __Pyx_GIVEREF(__pyx_v_data); ++ PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_5, __pyx_v_data); ++ __Pyx_INCREF(__pyx_v_self->dtype); ++ __Pyx_GIVEREF(__pyx_v_self->dtype); ++ PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_5, __pyx_v_self->dtype); ++ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_2, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4050, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_6); + __pyx_t_6 = 0; + } +@@ -44962,66 +42661,44 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * for val in self.datatype.enum_dict.values(): + * test += data == val + */ +- __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4054, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); +- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4054, __pyx_L1_error) ++ __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4054, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4054, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; +- __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_shape); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4054, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; ++ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_shape); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4054, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); + __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4054, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); +- __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_bool); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4054, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); ++ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_bool); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4054, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = NULL; +- __pyx_t_7 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { ++ __pyx_t_5 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); +- __pyx_t_7 = 1; ++ __pyx_t_5 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_11, __pyx_t_8}; +- __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4054, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_11, __pyx_t_8}; +- __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4054, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- } else +- #endif +- { +- __pyx_t_12 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4054, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- if (__pyx_t_3) { +- __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_3); __pyx_t_3 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_11); +- PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_7, __pyx_t_11); +- __Pyx_GIVEREF(__pyx_t_8); +- PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_7, __pyx_t_8); +- __pyx_t_11 = 0; +- __pyx_t_8 = 0; +- __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_12, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4054, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; ++ __pyx_t_11 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4054, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ if (__pyx_t_3) { ++ __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_3); __pyx_t_3 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_10); ++ PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_5, __pyx_t_10); ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_5, __pyx_t_7); ++ __pyx_t_10 = 0; ++ __pyx_t_7 = 0; ++ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_11, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4054, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_test = __pyx_t_6; + __pyx_t_6 = 0; +@@ -45035,25 +42712,25 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_datatype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4055, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_enum_dict); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4055, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); ++ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_enum_dict); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4055, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_values); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4055, __pyx_L1_error) ++ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_values); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4055, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- __pyx_t_12 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { +- __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_2); +- if (likely(__pyx_t_12)) { ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __pyx_t_11 = NULL; ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { ++ __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_2); ++ if (likely(__pyx_t_11)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +- __Pyx_INCREF(__pyx_t_12); ++ __Pyx_INCREF(__pyx_t_11); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } +- if (__pyx_t_12) { +- __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_12); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4055, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; ++ if (__pyx_t_11) { ++ __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4055, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + } else { + __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4055, __pyx_L1_error) + } +@@ -45061,18 +42738,18 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) { + __pyx_t_2 = __pyx_t_6; __Pyx_INCREF(__pyx_t_2); __pyx_t_5 = 0; +- __pyx_t_13 = NULL; ++ __pyx_t_12 = NULL; + } else { + __pyx_t_5 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4055, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4055, __pyx_L1_error) ++ __pyx_t_12 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4055, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + for (;;) { +- if (likely(!__pyx_t_13)) { ++ if (likely(!__pyx_t_12)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_6 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4055, __pyx_L1_error) + #else + __pyx_t_6 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4055, __pyx_L1_error) +@@ -45080,7 +42757,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + #endif + } else { + if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4055, __pyx_L1_error) + #else + __pyx_t_6 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4055, __pyx_L1_error) +@@ -45088,7 +42765,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + #endif + } + } else { +- __pyx_t_6 = __pyx_t_13(__pyx_t_2); ++ __pyx_t_6 = __pyx_t_12(__pyx_t_2); + if (unlikely(!__pyx_t_6)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { +@@ -45110,11 +42787,11 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * msg="trying to assign illegal value to Enum variable" + */ + __pyx_t_6 = PyObject_RichCompare(__pyx_v_data, __pyx_v_val, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4056, __pyx_L1_error) +- __pyx_t_12 = PyNumber_InPlaceAdd(__pyx_v_test, __pyx_t_6); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4056, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); ++ __pyx_t_11 = PyNumber_InPlaceAdd(__pyx_v_test, __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4056, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_DECREF_SET(__pyx_v_test, __pyx_t_12); +- __pyx_t_12 = 0; ++ __Pyx_DECREF_SET(__pyx_v_test, __pyx_t_11); ++ __pyx_t_11 = 0; + + /* "netCDF4/_netCDF4.pyx":4055 + * if self._isenum: +@@ -45133,52 +42810,34 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * msg="trying to assign illegal value to Enum variable" + * raise ValueError(msg) + */ +- __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4057, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_all); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4057, __pyx_L1_error) ++ __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4057, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_all); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4057, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- __pyx_t_12 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { +- __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6); +- if (likely(__pyx_t_12)) { ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __pyx_t_11 = NULL; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_6))) { ++ __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_6); ++ if (likely(__pyx_t_11)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +- __Pyx_INCREF(__pyx_t_12); ++ __Pyx_INCREF(__pyx_t_11); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); + } + } +- if (!__pyx_t_12) { ++ if (!__pyx_t_11) { + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_test); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4057, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[2] = {__pyx_t_12, __pyx_v_test}; +- __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4057, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[2] = {__pyx_t_12, __pyx_v_test}; +- __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4057, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- } else +- #endif +- { +- __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4057, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_12); __pyx_t_12 = NULL; +- __Pyx_INCREF(__pyx_v_test); +- __Pyx_GIVEREF(__pyx_v_test); +- PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_v_test); +- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4057, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- } ++ __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4057, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_11); __pyx_t_11 = NULL; ++ __Pyx_INCREF(__pyx_v_test); ++ __Pyx_GIVEREF(__pyx_v_test); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_test); ++ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4057, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4057, __pyx_L1_error) +@@ -45244,37 +42903,37 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_shape); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dimensions); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4062, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __pyx_t_12 = PyTuple_New(4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4062, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); ++ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dimensions); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4062, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __pyx_t_11 = PyTuple_New(4); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4062, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); + __Pyx_INCREF(__pyx_v_elem); + __Pyx_GIVEREF(__pyx_v_elem); +- PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_v_elem); ++ PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_v_elem); + __Pyx_GIVEREF(__pyx_t_2); +- PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_2); +- __Pyx_GIVEREF(__pyx_t_8); +- PyTuple_SET_ITEM(__pyx_t_12, 2, __pyx_t_8); ++ PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_2); ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_7); + __Pyx_INCREF(__pyx_v_self->_grp); + __Pyx_GIVEREF(__pyx_v_self->_grp); +- PyTuple_SET_ITEM(__pyx_t_12, 3, __pyx_v_self->_grp); ++ PyTuple_SET_ITEM(__pyx_t_11, 3, __pyx_v_self->_grp); + __pyx_t_2 = 0; +- __pyx_t_8 = 0; +- __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4062, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); ++ __pyx_t_7 = 0; ++ __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4062, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_shape); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_datashape, __pyx_t_2) < 0) __PYX_ERR(0, 4062, __pyx_L1_error) ++ if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_datashape, __pyx_t_2) < 0) __PYX_ERR(0, 4062, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_put, Py_True) < 0) __PYX_ERR(0, 4062, __pyx_L1_error) +- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_12, __pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4062, __pyx_L1_error) ++ if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_put, Py_True) < 0) __PYX_ERR(0, 4062, __pyx_L1_error) ++ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_11, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { + PyObject* sequence = __pyx_t_2; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -45284,26 +42943,26 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 4061, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { +- __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); +- __pyx_t_12 = PyTuple_GET_ITEM(sequence, 1); ++ __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); ++ __pyx_t_11 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); +- __pyx_t_11 = PyTuple_GET_ITEM(sequence, 3); ++ __pyx_t_10 = PyTuple_GET_ITEM(sequence, 3); + } else { +- __pyx_t_8 = PyList_GET_ITEM(sequence, 0); +- __pyx_t_12 = PyList_GET_ITEM(sequence, 1); ++ __pyx_t_7 = PyList_GET_ITEM(sequence, 0); ++ __pyx_t_11 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); +- __pyx_t_11 = PyList_GET_ITEM(sequence, 3); ++ __pyx_t_10 = PyList_GET_ITEM(sequence, 3); + } +- __Pyx_INCREF(__pyx_t_8); +- __Pyx_INCREF(__pyx_t_12); +- __Pyx_INCREF(__pyx_t_6); ++ __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_11); ++ __Pyx_INCREF(__pyx_t_6); ++ __Pyx_INCREF(__pyx_t_10); + #else + { + Py_ssize_t i; +- PyObject** temps[4] = {&__pyx_t_8,&__pyx_t_12,&__pyx_t_6,&__pyx_t_11}; ++ PyObject** temps[4] = {&__pyx_t_7,&__pyx_t_11,&__pyx_t_6,&__pyx_t_10}; + for (i=0; i < 4; i++) { + PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 4061, __pyx_L1_error) + __Pyx_GOTREF(item); +@@ -45314,23 +42973,23 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } else { + Py_ssize_t index = -1; +- PyObject** temps[4] = {&__pyx_t_8,&__pyx_t_12,&__pyx_t_6,&__pyx_t_11}; ++ PyObject** temps[4] = {&__pyx_t_7,&__pyx_t_11,&__pyx_t_6,&__pyx_t_10}; + __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4061, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __pyx_t_14 = Py_TYPE(__pyx_t_3)->tp_iternext; ++ __pyx_t_13 = Py_TYPE(__pyx_t_3)->tp_iternext; + for (index=0; index < 4; index++) { +- PyObject* item = __pyx_t_14(__pyx_t_3); if (unlikely(!item)) goto __pyx_L32_unpacking_failed; ++ PyObject* item = __pyx_t_13(__pyx_t_3); if (unlikely(!item)) goto __pyx_L32_unpacking_failed; + __Pyx_GOTREF(item); + *(temps[index]) = item; + } +- if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_3), 4) < 0) __PYX_ERR(0, 4061, __pyx_L1_error) +- __pyx_t_14 = NULL; ++ if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_3), 4) < 0) __PYX_ERR(0, 4061, __pyx_L1_error) ++ __pyx_t_13 = NULL; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L33_unpacking_done; + __pyx_L32_unpacking_failed:; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- __pyx_t_14 = NULL; ++ __pyx_t_13 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(0, 4061, __pyx_L1_error) + __pyx_L33_unpacking_done:; +@@ -45343,14 +43002,14 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * _StartCountStride(elem,self.shape,self.dimensions,self._grp,datashape=data.shape,put=True) + * datashape = _out_array_shape(count) + */ +- __pyx_v_start = __pyx_t_8; +- __pyx_t_8 = 0; +- __pyx_v_count = __pyx_t_12; +- __pyx_t_12 = 0; ++ __pyx_v_start = __pyx_t_7; ++ __pyx_t_7 = 0; ++ __pyx_v_count = __pyx_t_11; ++ __pyx_t_11 = 0; + __pyx_v_stride = __pyx_t_6; + __pyx_t_6 = 0; +- __pyx_v_put_ind = __pyx_t_11; +- __pyx_t_11 = 0; ++ __pyx_v_put_ind = __pyx_t_10; ++ __pyx_t_10 = 0; + + /* "netCDF4/_netCDF4.pyx":4063 + * start, count, stride, put_ind =\ +@@ -45359,51 +43018,33 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * + * # if a numpy scalar, create an array of the right size + */ +- __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_out_array_shape); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4063, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); ++ __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s_out_array_shape); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4063, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { +- __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11); ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_10))) { ++ __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_10); + if (likely(__pyx_t_6)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_11, function); ++ __Pyx_DECREF_SET(__pyx_t_10, function); + } + } + if (!__pyx_t_6) { +- __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_v_count); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4063, __pyx_L1_error) ++ __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_count); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4063, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_11)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_count}; +- __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_11, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4063, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_count}; +- __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_11, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4063, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- } else +- #endif +- { +- __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4063, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_6); __pyx_t_6 = NULL; +- __Pyx_INCREF(__pyx_v_count); +- __Pyx_GIVEREF(__pyx_v_count); +- PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_v_count); +- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_12, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4063, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- } ++ __pyx_t_11 = PyTuple_New(1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4063, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_6); __pyx_t_6 = NULL; ++ __Pyx_INCREF(__pyx_v_count); ++ __Pyx_GIVEREF(__pyx_v_count); ++ PyTuple_SET_ITEM(__pyx_t_11, 0+1, __pyx_v_count); ++ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4063, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + } +- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_v_datashape = __pyx_t_2; + __pyx_t_2 = 0; + +@@ -45416,10 +43057,10 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_shape); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4067, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __pyx_t_11 = PyObject_RichCompare(__pyx_t_2, __pyx_empty_tuple, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4067, __pyx_L1_error) ++ __pyx_t_10 = PyObject_RichCompare(__pyx_t_2, __pyx_empty_tuple, Py_EQ); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4067, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4067, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4067, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (__pyx_t_4) { + + /* "netCDF4/_netCDF4.pyx":4068 +@@ -45431,56 +43072,38 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + */ + __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4068, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_tile); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4068, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); ++ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_tile); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4068, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; +- __pyx_t_7 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { +- __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_12); ++ __pyx_t_5 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_11))) { ++ __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_11); + if (likely(__pyx_t_2)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_12, function); +- __pyx_t_7 = 1; ++ __Pyx_DECREF_SET(__pyx_t_11, function); ++ __pyx_t_5 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_12)) { +- PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_data, __pyx_v_datashape}; +- __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4068, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_11); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { +- PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_data, __pyx_v_datashape}; +- __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4068, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_11); +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4068, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- if (__pyx_t_2) { +- __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __pyx_t_2 = NULL; +- } +- __Pyx_INCREF(__pyx_v_data); +- __Pyx_GIVEREF(__pyx_v_data); +- PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_7, __pyx_v_data); +- __Pyx_INCREF(__pyx_v_datashape); +- __Pyx_GIVEREF(__pyx_v_datashape); +- PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_7, __pyx_v_datashape); +- __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_6, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4068, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; ++ __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4068, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ if (__pyx_t_2) { ++ __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __pyx_t_2 = NULL; + } +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_11); +- __pyx_t_11 = 0; ++ __Pyx_INCREF(__pyx_v_data); ++ __Pyx_GIVEREF(__pyx_v_data); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_data); ++ __Pyx_INCREF(__pyx_v_datashape); ++ __Pyx_GIVEREF(__pyx_v_datashape); ++ PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_datashape); ++ __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_6, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4068, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_10); ++ __pyx_t_10 = 0; + + /* "netCDF4/_netCDF4.pyx":4067 + * # if a numpy scalar, create an array of the right size +@@ -45498,12 +43121,12 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * # create a view so shape in caller is not modified (issue 90) + * data = data.view() + */ +- __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_shape); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4071, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); +- __pyx_t_5 = PyObject_Length(__pyx_t_11); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 4071, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; +- __pyx_t_15 = PyObject_Length(__pyx_v_datashape); if (unlikely(__pyx_t_15 == -1)) __PYX_ERR(0, 4071, __pyx_L1_error) +- __pyx_t_4 = ((__pyx_t_5 != __pyx_t_15) != 0); ++ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_shape); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4071, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __pyx_t_5 = PyObject_Length(__pyx_t_10); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 4071, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; ++ __pyx_t_14 = PyObject_Length(__pyx_v_datashape); if (unlikely(__pyx_t_14 == -1)) __PYX_ERR(0, 4071, __pyx_L1_error) ++ __pyx_t_4 = ((__pyx_t_5 != __pyx_t_14) != 0); + if (__pyx_t_4) { + + /* "netCDF4/_netCDF4.pyx":4073 +@@ -45513,28 +43136,28 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * data.shape = tuple(datashape) + * + */ +- __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_view); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4073, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); ++ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_view); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4073, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) { +- __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_12); ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_11))) { ++ __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11); + if (likely(__pyx_t_6)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_12, function); ++ __Pyx_DECREF_SET(__pyx_t_11, function); + } + } + if (__pyx_t_6) { +- __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4073, __pyx_L1_error) ++ __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4073, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else { +- __pyx_t_11 = __Pyx_PyObject_CallNoArg(__pyx_t_12); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4073, __pyx_L1_error) ++ __pyx_t_10 = __Pyx_PyObject_CallNoArg(__pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4073, __pyx_L1_error) + } +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_11); +- __pyx_t_11 = 0; ++ __Pyx_GOTREF(__pyx_t_10); ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_10); ++ __pyx_t_10 = 0; + + /* "netCDF4/_netCDF4.pyx":4074 + * # create a view so shape in caller is not modified (issue 90) +@@ -45543,10 +43166,10 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * + * # Reshape these arrays so we can iterate over them. + */ +- __pyx_t_11 = PySequence_Tuple(__pyx_v_datashape); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4074, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); +- if (__Pyx_PyObject_SetAttrStr(__pyx_v_data, __pyx_n_s_shape, __pyx_t_11) < 0) __PYX_ERR(0, 4074, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __pyx_t_10 = PySequence_Tuple(__pyx_v_datashape); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4074, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ if (__Pyx_PyObject_SetAttrStr(__pyx_v_data, __pyx_n_s_shape, __pyx_t_10) < 0) __PYX_ERR(0, 4074, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + + /* "netCDF4/_netCDF4.pyx":4071 + * # reshape data array by adding extra singleton dimensions +@@ -45564,8 +43187,8 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * count = count.reshape((-1, self.ndim or 1)) + * stride = stride.reshape((-1, self.ndim or 1)) + */ +- __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_start, __pyx_n_s_reshape); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4077, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); ++ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_start, __pyx_n_s_reshape); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4077, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_self->ndim); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4077, __pyx_L1_error) + if (!__pyx_t_4) { + } else { +@@ -45587,53 +43210,33 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_6); + __pyx_t_6 = 0; + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) { +- __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_12); ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_11))) { ++ __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11); + if (likely(__pyx_t_6)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_12, function); ++ __Pyx_DECREF_SET(__pyx_t_11, function); + } + } + if (!__pyx_t_6) { +- __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4077, __pyx_L1_error) ++ __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4077, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_11); ++ __Pyx_GOTREF(__pyx_t_10); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_12)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_2}; +- __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4077, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_2}; +- __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4077, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } else +- #endif +- { +- __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4077, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; +- __Pyx_GIVEREF(__pyx_t_2); +- PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_2); +- __pyx_t_2 = 0; +- __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_8, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4077, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- } ++ __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4077, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; ++ __Pyx_GIVEREF(__pyx_t_2); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_2); ++ __pyx_t_2 = 0; ++ __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_7, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4077, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_DECREF_SET(__pyx_v_start, __pyx_t_11); +- __pyx_t_11 = 0; ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __Pyx_DECREF_SET(__pyx_v_start, __pyx_t_10); ++ __pyx_t_10 = 0; + + /* "netCDF4/_netCDF4.pyx":4078 + * # Reshape these arrays so we can iterate over them. +@@ -45642,18 +43245,18 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * stride = stride.reshape((-1, self.ndim or 1)) + * put_ind = put_ind.reshape((-1, self.ndim or 1)) + */ +- __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_count, __pyx_n_s_reshape); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4078, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); ++ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_count, __pyx_n_s_reshape); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4078, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_self->ndim); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4078, __pyx_L1_error) + if (!__pyx_t_4) { + } else { + __Pyx_INCREF(__pyx_v_self->ndim); +- __pyx_t_8 = __pyx_v_self->ndim; ++ __pyx_t_7 = __pyx_v_self->ndim; + goto __pyx_L38_bool_binop_done; + } + __pyx_t_2 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4078, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __pyx_t_8 = __pyx_t_2; ++ __pyx_t_7 = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_L38_bool_binop_done:; + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4078, __pyx_L1_error) +@@ -45661,57 +43264,37 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + __Pyx_INCREF(__pyx_int_neg_1); + __Pyx_GIVEREF(__pyx_int_neg_1); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_neg_1); +- __Pyx_GIVEREF(__pyx_t_8); +- PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_8); +- __pyx_t_8 = 0; +- __pyx_t_8 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) { +- __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_12); +- if (likely(__pyx_t_8)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); +- __Pyx_INCREF(__pyx_t_8); ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_7); ++ __pyx_t_7 = 0; ++ __pyx_t_7 = NULL; ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_11))) { ++ __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_11); ++ if (likely(__pyx_t_7)) { ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); ++ __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_12, function); ++ __Pyx_DECREF_SET(__pyx_t_11, function); + } + } +- if (!__pyx_t_8) { +- __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4078, __pyx_L1_error) ++ if (!__pyx_t_7) { ++ __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4078, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_11); ++ __Pyx_GOTREF(__pyx_t_10); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_12)) { +- PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_t_2}; +- __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4078, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { +- PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_t_2}; +- __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4078, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4078, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_8); __pyx_t_8 = NULL; +- __Pyx_GIVEREF(__pyx_t_2); +- PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_2); +- __pyx_t_2 = 0; +- __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_6, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4078, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } ++ __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4078, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL; ++ __Pyx_GIVEREF(__pyx_t_2); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_2); ++ __pyx_t_2 = 0; ++ __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_6, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4078, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_DECREF_SET(__pyx_v_count, __pyx_t_11); +- __pyx_t_11 = 0; ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __Pyx_DECREF_SET(__pyx_v_count, __pyx_t_10); ++ __pyx_t_10 = 0; + + /* "netCDF4/_netCDF4.pyx":4079 + * start = start.reshape((-1, self.ndim or 1)) +@@ -45720,8 +43303,8 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * put_ind = put_ind.reshape((-1, self.ndim or 1)) + * + */ +- __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_stride, __pyx_n_s_reshape); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4079, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); ++ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_stride, __pyx_n_s_reshape); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4079, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_self->ndim); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4079, __pyx_L1_error) + if (!__pyx_t_4) { + } else { +@@ -45743,53 +43326,33 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_6); + __pyx_t_6 = 0; + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) { +- __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_12); ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_11))) { ++ __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11); + if (likely(__pyx_t_6)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_12, function); ++ __Pyx_DECREF_SET(__pyx_t_11, function); + } + } + if (!__pyx_t_6) { +- __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4079, __pyx_L1_error) ++ __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4079, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_11); ++ __Pyx_GOTREF(__pyx_t_10); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_12)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_2}; +- __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4079, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_2}; +- __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4079, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } else +- #endif +- { +- __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4079, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; +- __Pyx_GIVEREF(__pyx_t_2); +- PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_2); +- __pyx_t_2 = 0; +- __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_8, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4079, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- } ++ __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4079, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; ++ __Pyx_GIVEREF(__pyx_t_2); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_2); ++ __pyx_t_2 = 0; ++ __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_7, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4079, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_DECREF_SET(__pyx_v_stride, __pyx_t_11); +- __pyx_t_11 = 0; ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __Pyx_DECREF_SET(__pyx_v_stride, __pyx_t_10); ++ __pyx_t_10 = 0; + + /* "netCDF4/_netCDF4.pyx":4080 + * count = count.reshape((-1, self.ndim or 1)) +@@ -45798,18 +43361,18 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * + * # quantize data if least_significant_digit attribute + */ +- __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_put_ind, __pyx_n_s_reshape); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4080, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); ++ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_put_ind, __pyx_n_s_reshape); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4080, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_self->ndim); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4080, __pyx_L1_error) + if (!__pyx_t_4) { + } else { + __Pyx_INCREF(__pyx_v_self->ndim); +- __pyx_t_8 = __pyx_v_self->ndim; ++ __pyx_t_7 = __pyx_v_self->ndim; + goto __pyx_L42_bool_binop_done; + } + __pyx_t_2 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4080, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __pyx_t_8 = __pyx_t_2; ++ __pyx_t_7 = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_L42_bool_binop_done:; + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4080, __pyx_L1_error) +@@ -45817,57 +43380,37 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + __Pyx_INCREF(__pyx_int_neg_1); + __Pyx_GIVEREF(__pyx_int_neg_1); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_neg_1); +- __Pyx_GIVEREF(__pyx_t_8); +- PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_8); +- __pyx_t_8 = 0; +- __pyx_t_8 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) { +- __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_12); +- if (likely(__pyx_t_8)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); +- __Pyx_INCREF(__pyx_t_8); ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_7); ++ __pyx_t_7 = 0; ++ __pyx_t_7 = NULL; ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_11))) { ++ __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_11); ++ if (likely(__pyx_t_7)) { ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); ++ __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_12, function); ++ __Pyx_DECREF_SET(__pyx_t_11, function); + } + } +- if (!__pyx_t_8) { +- __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4080, __pyx_L1_error) ++ if (!__pyx_t_7) { ++ __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4080, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_11); ++ __Pyx_GOTREF(__pyx_t_10); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_12)) { +- PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_t_2}; +- __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4080, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { +- PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_t_2}; +- __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4080, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4080, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_8); __pyx_t_8 = NULL; +- __Pyx_GIVEREF(__pyx_t_2); +- PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_2); +- __pyx_t_2 = 0; +- __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_6, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4080, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } ++ __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4080, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL; ++ __Pyx_GIVEREF(__pyx_t_2); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_2); ++ __pyx_t_2 = 0; ++ __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_6, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4080, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_DECREF_SET(__pyx_v_put_ind, __pyx_t_11); +- __pyx_t_11 = 0; ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __Pyx_DECREF_SET(__pyx_v_put_ind, __pyx_t_10); ++ __pyx_t_10 = 0; + + /* "netCDF4/_netCDF4.pyx":4084 + * # quantize data if least_significant_digit attribute +@@ -45886,59 +43429,39 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * # if auto_scale mode set to True, (through + * # a call to set_auto_scale or set_auto_maskandscale), + */ +- __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_quantize); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4085, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); ++ __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_quantize); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4085, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_least_significant_digit); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4085, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_2 = NULL; +- __pyx_t_7 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { +- __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_12); ++ __pyx_t_14 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_11))) { ++ __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_11); + if (likely(__pyx_t_2)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_12, function); +- __pyx_t_7 = 1; ++ __Pyx_DECREF_SET(__pyx_t_11, function); ++ __pyx_t_14 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_12)) { +- PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_data, __pyx_t_6}; +- __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4085, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { +- PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_data, __pyx_t_6}; +- __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4085, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } else +- #endif +- { +- __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4085, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- if (__pyx_t_2) { +- __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_2); __pyx_t_2 = NULL; +- } +- __Pyx_INCREF(__pyx_v_data); +- __Pyx_GIVEREF(__pyx_v_data); +- PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_data); +- __Pyx_GIVEREF(__pyx_t_6); +- PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_6); +- __pyx_t_6 = 0; +- __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_8, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4085, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __pyx_t_7 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4085, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ if (__pyx_t_2) { ++ __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2); __pyx_t_2 = NULL; + } +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_11); +- __pyx_t_11 = 0; ++ __Pyx_INCREF(__pyx_v_data); ++ __Pyx_GIVEREF(__pyx_v_data); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_14, __pyx_v_data); ++ __Pyx_GIVEREF(__pyx_t_6); ++ PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_14, __pyx_t_6); ++ __pyx_t_6 = 0; ++ __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_7, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4085, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_10); ++ __pyx_t_10 = 0; + + /* "netCDF4/_netCDF4.pyx":4084 + * # quantize data if least_significant_digit attribute +@@ -45981,14 +43504,14 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * if not ma.isMA(data): data = self._toma(data) + */ + __pyx_t_1 = PyObject_HasAttr(((PyObject *)__pyx_v_self), __pyx_n_s_scale_factor); if (unlikely(__pyx_t_1 == -1)) __PYX_ERR(0, 4097, __pyx_L1_error) +- __pyx_t_9 = (__pyx_t_1 != 0); +- if (!__pyx_t_9) { ++ __pyx_t_8 = (__pyx_t_1 != 0); ++ if (!__pyx_t_8) { + } else { +- __pyx_t_4 = __pyx_t_9; ++ __pyx_t_4 = __pyx_t_8; + goto __pyx_L50_bool_binop_done; + } +- __pyx_t_9 = PyObject_HasAttr(((PyObject *)__pyx_v_self), __pyx_n_s_add_offset); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 4097, __pyx_L1_error) +- __pyx_t_1 = (__pyx_t_9 != 0); ++ __pyx_t_8 = PyObject_HasAttr(((PyObject *)__pyx_v_self), __pyx_n_s_add_offset); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 4097, __pyx_L1_error) ++ __pyx_t_1 = (__pyx_t_8 != 0); + __pyx_t_4 = __pyx_t_1; + __pyx_L50_bool_binop_done:; + if (__pyx_t_4) { +@@ -46000,105 +43523,69 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * if self.scale and self._isprimitive: + * # pack non-masked values using scale_factor and add_offset + */ +- __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_ma); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4099, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_isMA); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4099, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- __pyx_t_12 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { +- __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_8); +- if (likely(__pyx_t_12)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); +- __Pyx_INCREF(__pyx_t_12); ++ __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_ma); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4099, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_isMA); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4099, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __pyx_t_11 = NULL; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) { ++ __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_7); ++ if (likely(__pyx_t_11)) { ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); ++ __Pyx_INCREF(__pyx_t_11); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_8, function); ++ __Pyx_DECREF_SET(__pyx_t_7, function); + } + } +- if (!__pyx_t_12) { +- __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_data); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4099, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); ++ if (!__pyx_t_11) { ++ __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_data); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4099, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[2] = {__pyx_t_12, __pyx_v_data}; +- __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4099, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_GOTREF(__pyx_t_11); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[2] = {__pyx_t_12, __pyx_v_data}; +- __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4099, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_GOTREF(__pyx_t_11); +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4099, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_12); __pyx_t_12 = NULL; +- __Pyx_INCREF(__pyx_v_data); +- __Pyx_GIVEREF(__pyx_v_data); +- PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_data); +- __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4099, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } ++ __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4099, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_11); __pyx_t_11 = NULL; ++ __Pyx_INCREF(__pyx_v_data); ++ __Pyx_GIVEREF(__pyx_v_data); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_data); ++ __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4099, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4099, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; ++ __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4099, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_1 = ((!__pyx_t_4) != 0); + if (__pyx_t_1) { +- __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_toma); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4099, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); ++ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_toma); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4099, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { +- __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8); ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { ++ __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_6)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_8, function); ++ __Pyx_DECREF_SET(__pyx_t_7, function); + } + } + if (!__pyx_t_6) { +- __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_data); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4099, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); ++ __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_data); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4099, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_data}; +- __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4099, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_11); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_data}; +- __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4099, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_11); +- } else +- #endif +- { +- __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4099, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_6); __pyx_t_6 = NULL; +- __Pyx_INCREF(__pyx_v_data); +- __Pyx_GIVEREF(__pyx_v_data); +- PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_v_data); +- __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_12, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4099, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- } ++ __pyx_t_11 = PyTuple_New(1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4099, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_6); __pyx_t_6 = NULL; ++ __Pyx_INCREF(__pyx_v_data); ++ __Pyx_GIVEREF(__pyx_v_data); ++ PyTuple_SET_ITEM(__pyx_t_11, 0+1, __pyx_v_data); ++ __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_11, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4099, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + } +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_11); +- __pyx_t_11 = 0; ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; ++ __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_10); ++ __pyx_t_10 = 0; + } + + /* "netCDF4/_netCDF4.pyx":4097 +@@ -46145,14 +43632,14 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * if self.dtype.kind in 'iu': data = numpy.around(data) + */ + __pyx_t_4 = PyObject_HasAttr(((PyObject *)__pyx_v_self), __pyx_n_s_scale_factor); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(0, 4102, __pyx_L1_error) +- __pyx_t_9 = (__pyx_t_4 != 0); +- if (__pyx_t_9) { ++ __pyx_t_8 = (__pyx_t_4 != 0); ++ if (__pyx_t_8) { + } else { +- __pyx_t_1 = __pyx_t_9; ++ __pyx_t_1 = __pyx_t_8; + goto __pyx_L57_bool_binop_done; + } +- __pyx_t_9 = PyObject_HasAttr(((PyObject *)__pyx_v_self), __pyx_n_s_add_offset); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 4102, __pyx_L1_error) +- __pyx_t_4 = (__pyx_t_9 != 0); ++ __pyx_t_8 = PyObject_HasAttr(((PyObject *)__pyx_v_self), __pyx_n_s_add_offset); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 4102, __pyx_L1_error) ++ __pyx_t_4 = (__pyx_t_8 != 0); + __pyx_t_1 = __pyx_t_4; + __pyx_L57_bool_binop_done:; + if (__pyx_t_1) { +@@ -46164,19 +43651,19 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * if self.dtype.kind in 'iu': data = numpy.around(data) + * elif hasattr(self, 'scale_factor'): + */ +- __pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_add_offset); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4103, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); +- __pyx_t_8 = PyNumber_Subtract(__pyx_v_data, __pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4103, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; +- __pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_scale_factor); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4103, __pyx_L1_error) ++ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_add_offset); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4103, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __pyx_t_7 = PyNumber_Subtract(__pyx_v_data, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4103, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; ++ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_scale_factor); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4103, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __pyx_t_11 = __Pyx_PyNumber_Divide(__pyx_t_7, __pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); +- __pyx_t_12 = __Pyx_PyNumber_Divide(__pyx_t_8, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4103, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; +- __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_12); +- __pyx_t_12 = 0; ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; ++ __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_11); ++ __pyx_t_11 = 0; + + /* "netCDF4/_netCDF4.pyx":4104 + * if hasattr(self, 'scale_factor') and hasattr(self, 'add_offset'): +@@ -46185,62 +43672,44 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * elif hasattr(self, 'scale_factor'): + * data = data/self.scale_factor + */ +- __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4104, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_t_12, __pyx_n_s_iu, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4104, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; ++ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4104, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_t_11, __pyx_n_s_iu, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4104, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_4 = (__pyx_t_1 != 0); + if (__pyx_t_4) { +- __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4104, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); +- __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_around); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4104, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; +- __pyx_t_11 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { +- __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_8); +- if (likely(__pyx_t_11)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); +- __Pyx_INCREF(__pyx_t_11); ++ __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4104, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_around); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4104, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; ++ __pyx_t_10 = NULL; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) { ++ __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_7); ++ if (likely(__pyx_t_10)) { ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); ++ __Pyx_INCREF(__pyx_t_10); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_8, function); ++ __Pyx_DECREF_SET(__pyx_t_7, function); + } + } +- if (!__pyx_t_11) { +- __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_data); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4104, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); ++ if (!__pyx_t_10) { ++ __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_data); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4104, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[2] = {__pyx_t_11, __pyx_v_data}; +- __pyx_t_12 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4104, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; +- __Pyx_GOTREF(__pyx_t_12); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[2] = {__pyx_t_11, __pyx_v_data}; +- __pyx_t_12 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4104, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; +- __Pyx_GOTREF(__pyx_t_12); +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4104, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_11); __pyx_t_11 = NULL; +- __Pyx_INCREF(__pyx_v_data); +- __Pyx_GIVEREF(__pyx_v_data); +- PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_data); +- __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4104, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } ++ __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4104, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_10); __pyx_t_10 = NULL; ++ __Pyx_INCREF(__pyx_v_data); ++ __Pyx_GIVEREF(__pyx_v_data); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_data); ++ __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4104, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_12); +- __pyx_t_12 = 0; ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; ++ __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_11); ++ __pyx_t_11 = 0; + } + + /* "netCDF4/_netCDF4.pyx":4102 +@@ -46271,13 +43740,13 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * if self.dtype.kind in 'iu': data = numpy.around(data) + * elif hasattr(self, 'add_offset'): + */ +- __pyx_t_12 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_scale_factor); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4106, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- __pyx_t_8 = __Pyx_PyNumber_Divide(__pyx_v_data, __pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4106, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_8); +- __pyx_t_8 = 0; ++ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_scale_factor); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4106, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ __pyx_t_7 = __Pyx_PyNumber_Divide(__pyx_v_data, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4106, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_7); ++ __pyx_t_7 = 0; + + /* "netCDF4/_netCDF4.pyx":4107 + * elif hasattr(self, 'scale_factor'): +@@ -46286,62 +43755,44 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * elif hasattr(self, 'add_offset'): + * data = data - self.add_offset + */ +- __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4107, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_t_8, __pyx_n_s_iu, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4107, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4107, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_t_7, __pyx_n_s_iu, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4107, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_4 = (__pyx_t_1 != 0); + if (__pyx_t_4) { +- __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4107, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_around); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4107, __pyx_L1_error) ++ __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4107, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_around); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- __pyx_t_12 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { +- __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6); +- if (likely(__pyx_t_12)) { ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __pyx_t_11 = NULL; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_6))) { ++ __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_6); ++ if (likely(__pyx_t_11)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +- __Pyx_INCREF(__pyx_t_12); ++ __Pyx_INCREF(__pyx_t_11); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); + } + } +- if (!__pyx_t_12) { +- __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_data); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4107, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); ++ if (!__pyx_t_11) { ++ __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_data); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4107, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[2] = {__pyx_t_12, __pyx_v_data}; +- __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4107, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_GOTREF(__pyx_t_8); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[2] = {__pyx_t_12, __pyx_v_data}; +- __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4107, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_GOTREF(__pyx_t_8); +- } else +- #endif +- { +- __pyx_t_11 = PyTuple_New(1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4107, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12); __pyx_t_12 = NULL; +- __Pyx_INCREF(__pyx_v_data); +- __Pyx_GIVEREF(__pyx_v_data); +- PyTuple_SET_ITEM(__pyx_t_11, 0+1, __pyx_v_data); +- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_11, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4107, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; +- } ++ __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4107, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_11); __pyx_t_11 = NULL; ++ __Pyx_INCREF(__pyx_v_data); ++ __Pyx_GIVEREF(__pyx_v_data); ++ PyTuple_SET_ITEM(__pyx_t_10, 0+1, __pyx_v_data); ++ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4107, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_8); +- __pyx_t_8 = 0; ++ __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_7); ++ __pyx_t_7 = 0; + } + + /* "netCDF4/_netCDF4.pyx":4105 +@@ -46372,11 +43823,11 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * if self.dtype.kind in 'iu': data = numpy.around(data) + * if ma.isMA(data): + */ +- __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_add_offset); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4109, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __pyx_t_6 = PyNumber_Subtract(__pyx_v_data, __pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4109, __pyx_L1_error) ++ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_add_offset); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4109, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __pyx_t_6 = PyNumber_Subtract(__pyx_v_data, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_6); + __pyx_t_6 = 0; + +@@ -46393,54 +43844,36 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_4 = (__pyx_t_1 != 0); + if (__pyx_t_4) { +- __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4110, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_around); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4110, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- __pyx_t_8 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { +- __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_11); +- if (likely(__pyx_t_8)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); +- __Pyx_INCREF(__pyx_t_8); ++ __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4110, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_around); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4110, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; ++ __pyx_t_7 = NULL; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_10))) { ++ __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_10); ++ if (likely(__pyx_t_7)) { ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); ++ __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_11, function); ++ __Pyx_DECREF_SET(__pyx_t_10, function); + } + } +- if (!__pyx_t_8) { +- __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_v_data); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4110, __pyx_L1_error) ++ if (!__pyx_t_7) { ++ __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_data); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4110, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_11)) { +- PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_v_data}; +- __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_11, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4110, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) { +- PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_v_data}; +- __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_11, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4110, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- } else +- #endif +- { +- __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4110, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_8); __pyx_t_8 = NULL; +- __Pyx_INCREF(__pyx_v_data); +- __Pyx_GIVEREF(__pyx_v_data); +- PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_v_data); +- __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_12, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4110, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- } ++ __pyx_t_11 = PyTuple_New(1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4110, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_7); __pyx_t_7 = NULL; ++ __Pyx_INCREF(__pyx_v_data); ++ __Pyx_GIVEREF(__pyx_v_data); ++ PyTuple_SET_ITEM(__pyx_t_11, 0+1, __pyx_v_data); ++ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4110, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + } +- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_6); + __pyx_t_6 = 0; + } +@@ -46462,54 +43895,36 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * # if underlying data in masked regions of masked array + * # corresponds to missing values, don't fill masked array - + */ +- __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_ma); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4111, __pyx_L1_error) ++ __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s_ma); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4111, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_isMA); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); +- __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_isMA); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4111, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; +- __pyx_t_11 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { +- __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_12); +- if (likely(__pyx_t_11)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); +- __Pyx_INCREF(__pyx_t_11); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; ++ __pyx_t_10 = NULL; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_11))) { ++ __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11); ++ if (likely(__pyx_t_10)) { ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); ++ __Pyx_INCREF(__pyx_t_10); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_12, function); ++ __Pyx_DECREF_SET(__pyx_t_11, function); + } + } +- if (!__pyx_t_11) { +- __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_v_data); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4111, __pyx_L1_error) ++ if (!__pyx_t_10) { ++ __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_v_data); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_12)) { +- PyObject *__pyx_temp[2] = {__pyx_t_11, __pyx_v_data}; +- __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4111, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { +- PyObject *__pyx_temp[2] = {__pyx_t_11, __pyx_v_data}; +- __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4111, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- } else +- #endif +- { +- __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4111, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_11); __pyx_t_11 = NULL; +- __Pyx_INCREF(__pyx_v_data); +- __Pyx_GIVEREF(__pyx_v_data); +- PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_v_data); +- __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_8, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4111, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- } ++ __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4111, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_10); __pyx_t_10 = NULL; ++ __Pyx_INCREF(__pyx_v_data); ++ __Pyx_GIVEREF(__pyx_v_data); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_data); ++ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_7, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4111, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4111, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (__pyx_t_4) { +@@ -46522,10 +43937,10 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * data = data.data + */ + __pyx_t_1 = PyObject_HasAttr(((PyObject *)__pyx_v_self), __pyx_n_s_missing_value); if (unlikely(__pyx_t_1 == -1)) __PYX_ERR(0, 4115, __pyx_L1_error) +- __pyx_t_9 = (__pyx_t_1 != 0); +- if (__pyx_t_9) { ++ __pyx_t_8 = (__pyx_t_1 != 0); ++ if (__pyx_t_8) { + } else { +- __pyx_t_4 = __pyx_t_9; ++ __pyx_t_4 = __pyx_t_8; + goto __pyx_L64_bool_binop_done; + } + +@@ -46536,124 +43951,82 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * data = data.data + * else: + */ +- __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4116, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_all); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4116, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); +- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_in1d); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4116, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); ++ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_all); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4116, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; +- __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_data); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4116, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); ++ __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4116, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_in1d); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4116, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; ++ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_data); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4116, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_mask); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); +- __pyx_t_16 = PyObject_GetItem(__pyx_t_11, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4116, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_16); +- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __pyx_t_15 = PyObject_GetItem(__pyx_t_10, __pyx_t_3); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4116, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_15); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_missing_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); +- __pyx_t_11 = NULL; +- __pyx_t_7 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { +- __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_2); +- if (likely(__pyx_t_11)) { ++ __pyx_t_10 = NULL; ++ __pyx_t_14 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { ++ __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_2); ++ if (likely(__pyx_t_10)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +- __Pyx_INCREF(__pyx_t_11); ++ __Pyx_INCREF(__pyx_t_10); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); +- __pyx_t_7 = 1; ++ __pyx_t_14 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[3] = {__pyx_t_11, __pyx_t_16, __pyx_t_3}; +- __pyx_t_12 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4116, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; +- __Pyx_GOTREF(__pyx_t_12); +- __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[3] = {__pyx_t_11, __pyx_t_16, __pyx_t_3}; +- __pyx_t_12 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4116, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; +- __Pyx_GOTREF(__pyx_t_12); +- __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } else +- #endif +- { +- __pyx_t_17 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4116, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_17); +- if (__pyx_t_11) { +- __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_11); __pyx_t_11 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_16); +- PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_7, __pyx_t_16); +- __Pyx_GIVEREF(__pyx_t_3); +- PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_7, __pyx_t_3); +- __pyx_t_16 = 0; +- __pyx_t_3 = 0; +- __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_17, NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4116, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; ++ __pyx_t_16 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4116, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_16); ++ if (__pyx_t_10) { ++ __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_10); __pyx_t_10 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_15); ++ PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_14, __pyx_t_15); ++ __Pyx_GIVEREF(__pyx_t_3); ++ PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_14, __pyx_t_3); ++ __pyx_t_15 = 0; ++ __pyx_t_3 = 0; ++ __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_16, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4116, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { +- __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_8); ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) { ++ __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_2)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_8, function); ++ __Pyx_DECREF_SET(__pyx_t_7, function); + } + } + if (!__pyx_t_2) { +- __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_12); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4116, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; ++ __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4116, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_GOTREF(__pyx_t_6); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_t_12}; +- __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4116, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_t_12}; +- __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4116, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- } else +- #endif +- { +- __pyx_t_17 = PyTuple_New(1+1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4116, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_17); +- __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_2); __pyx_t_2 = NULL; +- __Pyx_GIVEREF(__pyx_t_12); +- PyTuple_SET_ITEM(__pyx_t_17, 0+1, __pyx_t_12); +- __pyx_t_12 = 0; +- __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_17, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4116, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; +- } ++ __pyx_t_16 = PyTuple_New(1+1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4116, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_16); ++ __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_2); __pyx_t_2 = NULL; ++ __Pyx_GIVEREF(__pyx_t_11); ++ PyTuple_SET_ITEM(__pyx_t_16, 0+1, __pyx_t_11); ++ __pyx_t_11 = 0; ++ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_16, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4116, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + } +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 4116, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; ++ __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4116, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __pyx_t_4 = __pyx_t_9; ++ __pyx_t_4 = __pyx_t_8; + __pyx_L64_bool_binop_done:; + + /* "netCDF4/_netCDF4.pyx":4115 +@@ -46696,8 +44069,8 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + */ + /*else*/ { + __pyx_t_4 = PyObject_HasAttr(((PyObject *)__pyx_v_self), __pyx_n_s_missing_value); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(0, 4119, __pyx_L1_error) +- __pyx_t_9 = (__pyx_t_4 != 0); +- if (__pyx_t_9) { ++ __pyx_t_8 = (__pyx_t_4 != 0); ++ if (__pyx_t_8) { + + /* "netCDF4/_netCDF4.pyx":4123 + * # if missing value is a vector, raise an exception +@@ -46706,67 +44079,47 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * fillval = self.missing_value + * else: + */ +- __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4123, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_array); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4123, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_17); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_missing_value); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4123, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __pyx_t_12 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_17))) { +- __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_17); +- if (likely(__pyx_t_12)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); +- __Pyx_INCREF(__pyx_t_12); ++ __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4123, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_array); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4123, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_16); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; ++ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_missing_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4123, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __pyx_t_11 = NULL; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_16))) { ++ __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_16); ++ if (likely(__pyx_t_11)) { ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); ++ __Pyx_INCREF(__pyx_t_11); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_17, function); ++ __Pyx_DECREF_SET(__pyx_t_16, function); + } + } +- if (!__pyx_t_12) { +- __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4123, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ if (!__pyx_t_11) { ++ __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4123, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_6); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_17)) { +- PyObject *__pyx_temp[2] = {__pyx_t_12, __pyx_t_8}; +- __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4123, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) { +- PyObject *__pyx_temp[2] = {__pyx_t_12, __pyx_t_8}; +- __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4123, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- } else +- #endif +- { +- __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4123, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_12); __pyx_t_12 = NULL; +- __Pyx_GIVEREF(__pyx_t_8); +- PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_t_8); +- __pyx_t_8 = 0; +- __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_2, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4123, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } ++ __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4123, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_11); __pyx_t_11 = NULL; ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_t_7); ++ __pyx_t_7 = 0; ++ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_2, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4123, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } +- __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; +- __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_shape); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4123, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_17); ++ __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; ++ __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_shape); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4123, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_16); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __pyx_t_6 = PyObject_RichCompare(__pyx_t_17, __pyx_empty_tuple, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4123, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; +- __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 4123, __pyx_L1_error) ++ __pyx_t_6 = PyObject_RichCompare(__pyx_t_16, __pyx_empty_tuple, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4123, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; ++ __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4123, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- if (__pyx_t_9) { ++ if (__pyx_t_8) { + + /* "netCDF4/_netCDF4.pyx":4124 + * # since we then don't know how to fill in masked values. +@@ -46813,11 +44166,11 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + __Pyx_INCREF(__pyx_v_msg); + __Pyx_GIVEREF(__pyx_v_msg); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_msg); +- __pyx_t_17 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_6, NULL); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4127, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_17); ++ __pyx_t_16 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_6, NULL); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4127, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_16); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_Raise(__pyx_t_17, 0, 0, 0); +- __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; ++ __Pyx_Raise(__pyx_t_16, 0, 0, 0); ++ __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __PYX_ERR(0, 4127, __pyx_L1_error) + } + __pyx_L67:; +@@ -46835,7 +44188,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -46845,46 +44198,28 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + } + } + if (!__pyx_t_6) { +- __pyx_t_17 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_fillval); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4128, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_17); ++ __pyx_t_16 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_fillval); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4128, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_16); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_fillval}; +- __pyx_t_17 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4128, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_17); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_fillval}; +- __pyx_t_17 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4128, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_17); +- } else +- #endif +- { +- __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4128, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; +- __Pyx_INCREF(__pyx_v_fillval); +- __Pyx_GIVEREF(__pyx_v_fillval); +- PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_v_fillval); +- __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4128, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_17); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- } ++ __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4128, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; ++ __Pyx_INCREF(__pyx_v_fillval); ++ __Pyx_GIVEREF(__pyx_v_fillval); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_fillval); ++ __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4128, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_16); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_shape); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4128, __pyx_L1_error) ++ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_shape); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4128, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; +- __pyx_t_17 = PyObject_RichCompare(__pyx_t_2, __pyx_empty_tuple, Py_NE); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4128, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; ++ __pyx_t_16 = PyObject_RichCompare(__pyx_t_2, __pyx_empty_tuple, Py_NE); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4128, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 4128, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; +- if (__pyx_t_9) { ++ __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4128, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; ++ if (__pyx_t_8) { + + /* "netCDF4/_netCDF4.pyx":4129 + * raise RuntimeError(msg) +@@ -46893,10 +44228,10 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * elif hasattr(self, '_FillValue'): + * fillval = self._FillValue + */ +- __pyx_t_17 = __Pyx_GetItemInt(__pyx_v_fillval, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4129, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_17); +- __Pyx_DECREF_SET(__pyx_v_fillval, __pyx_t_17); +- __pyx_t_17 = 0; ++ __pyx_t_16 = __Pyx_GetItemInt(__pyx_v_fillval, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4129, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_16); ++ __Pyx_DECREF_SET(__pyx_v_fillval, __pyx_t_16); ++ __pyx_t_16 = 0; + + /* "netCDF4/_netCDF4.pyx":4128 + * msg="cannot assign fill_value for masked array when missing_value attribute is not a scalar" +@@ -46924,8 +44259,8 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * fillval = self._FillValue + * else: + */ +- __pyx_t_9 = PyObject_HasAttr(((PyObject *)__pyx_v_self), __pyx_n_s_FillValue); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 4130, __pyx_L1_error) +- __pyx_t_4 = (__pyx_t_9 != 0); ++ __pyx_t_8 = PyObject_HasAttr(((PyObject *)__pyx_v_self), __pyx_n_s_FillValue); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 4130, __pyx_L1_error) ++ __pyx_t_4 = (__pyx_t_8 != 0); + if (__pyx_t_4) { + + /* "netCDF4/_netCDF4.pyx":4131 +@@ -46935,10 +44270,10 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * else: + * fillval = default_fillvals[self.dtype.str[1:]] + */ +- __pyx_t_17 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_FillValue); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4131, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_17); +- __pyx_v_fillval = __pyx_t_17; +- __pyx_t_17 = 0; ++ __pyx_t_16 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_FillValue); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4131, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_16); ++ __pyx_v_fillval = __pyx_t_16; ++ __pyx_t_16 = 0; + + /* "netCDF4/_netCDF4.pyx":4130 + * if numpy.array(fillval).shape != (): +@@ -46958,17 +44293,17 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * + */ + /*else*/ { +- __pyx_t_17 = __Pyx_GetModuleGlobalName(__pyx_n_s_default_fillvals); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4133, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_17); ++ __pyx_t_16 = __Pyx_GetModuleGlobalName(__pyx_n_s_default_fillvals); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4133, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_16); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->dtype, __pyx_n_s_str); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __pyx_t_8 = __Pyx_PyObject_GetSlice(__pyx_t_2, 1, 0, NULL, NULL, &__pyx_slice__65, 1, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4133, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); ++ __pyx_t_7 = __Pyx_PyObject_GetSlice(__pyx_t_2, 1, 0, NULL, NULL, &__pyx_slice__65, 1, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4133, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __pyx_t_2 = PyObject_GetItem(__pyx_t_17, __pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4133, __pyx_L1_error) ++ __pyx_t_2 = PyObject_GetItem(__pyx_t_16, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_v_fillval = __pyx_t_2; + __pyx_t_2 = 0; + } +@@ -46983,15 +44318,15 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_filled); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4134, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_fill_value, __pyx_v_fillval) < 0) __PYX_ERR(0, 4134, __pyx_L1_error) +- __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_8); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4134, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_17); ++ __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4134, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_fill_value, __pyx_v_fillval) < 0) __PYX_ERR(0, 4134, __pyx_L1_error) ++ __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_7); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4134, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_16); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_17); +- __pyx_t_17 = 0; ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; ++ __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_16); ++ __pyx_t_16 = 0; + } + __pyx_L63:; + +@@ -47020,90 +44355,72 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * dataput = data[tuple(i)] + * if dataput.size == 0: continue # nothing to write + */ +- __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_zip); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4137, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); ++ __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_zip); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4137, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); + __pyx_t_2 = NULL; +- __pyx_t_7 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { +- __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_8); ++ __pyx_t_14 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) { ++ __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_2)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_8, function); +- __pyx_t_7 = 1; +- } +- } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[5] = {__pyx_t_2, __pyx_v_start, __pyx_v_count, __pyx_v_stride, __pyx_v_put_ind}; +- __pyx_t_17 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4137, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_17); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { +- PyObject *__pyx_temp[5] = {__pyx_t_2, __pyx_v_start, __pyx_v_count, __pyx_v_stride, __pyx_v_put_ind}; +- __pyx_t_17 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4137, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_17); +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(4+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4137, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- if (__pyx_t_2) { +- __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __pyx_t_2 = NULL; ++ __Pyx_DECREF_SET(__pyx_t_7, function); ++ __pyx_t_14 = 1; + } +- __Pyx_INCREF(__pyx_v_start); +- __Pyx_GIVEREF(__pyx_v_start); +- PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_7, __pyx_v_start); +- __Pyx_INCREF(__pyx_v_count); +- __Pyx_GIVEREF(__pyx_v_count); +- PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_7, __pyx_v_count); +- __Pyx_INCREF(__pyx_v_stride); +- __Pyx_GIVEREF(__pyx_v_stride); +- PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_7, __pyx_v_stride); +- __Pyx_INCREF(__pyx_v_put_ind); +- __Pyx_GIVEREF(__pyx_v_put_ind); +- PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_7, __pyx_v_put_ind); +- __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4137, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_17); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- if (likely(PyList_CheckExact(__pyx_t_17)) || PyTuple_CheckExact(__pyx_t_17)) { +- __pyx_t_8 = __pyx_t_17; __Pyx_INCREF(__pyx_t_8); __pyx_t_15 = 0; +- __pyx_t_13 = NULL; ++ __pyx_t_6 = PyTuple_New(4+__pyx_t_14); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4137, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ if (__pyx_t_2) { ++ __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __pyx_t_2 = NULL; ++ } ++ __Pyx_INCREF(__pyx_v_start); ++ __Pyx_GIVEREF(__pyx_v_start); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_14, __pyx_v_start); ++ __Pyx_INCREF(__pyx_v_count); ++ __Pyx_GIVEREF(__pyx_v_count); ++ PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_14, __pyx_v_count); ++ __Pyx_INCREF(__pyx_v_stride); ++ __Pyx_GIVEREF(__pyx_v_stride); ++ PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_14, __pyx_v_stride); ++ __Pyx_INCREF(__pyx_v_put_ind); ++ __Pyx_GIVEREF(__pyx_v_put_ind); ++ PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_14, __pyx_v_put_ind); ++ __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4137, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_16); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; ++ if (likely(PyList_CheckExact(__pyx_t_16)) || PyTuple_CheckExact(__pyx_t_16)) { ++ __pyx_t_7 = __pyx_t_16; __Pyx_INCREF(__pyx_t_7); __pyx_t_14 = 0; ++ __pyx_t_12 = NULL; + } else { +- __pyx_t_15 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_17); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4137, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __pyx_t_13 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4137, __pyx_L1_error) ++ __pyx_t_14 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_16); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4137, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __pyx_t_12 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4137, __pyx_L1_error) + } +- __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; ++ __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + for (;;) { +- if (likely(!__pyx_t_13)) { +- if (likely(PyList_CheckExact(__pyx_t_8))) { +- if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_8)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_17 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_15); __Pyx_INCREF(__pyx_t_17); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 4137, __pyx_L1_error) ++ if (likely(!__pyx_t_12)) { ++ if (likely(PyList_CheckExact(__pyx_t_7))) { ++ if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_7)) break; ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_16 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_14); __Pyx_INCREF(__pyx_t_16); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 4137, __pyx_L1_error) + #else +- __pyx_t_17 = PySequence_ITEM(__pyx_t_8, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4137, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_17); ++ __pyx_t_16 = PySequence_ITEM(__pyx_t_7, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4137, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_16); + #endif + } else { +- if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_8)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_17 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_15); __Pyx_INCREF(__pyx_t_17); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 4137, __pyx_L1_error) ++ if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_7)) break; ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_16 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_14); __Pyx_INCREF(__pyx_t_16); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 4137, __pyx_L1_error) + #else +- __pyx_t_17 = PySequence_ITEM(__pyx_t_8, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4137, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_17); ++ __pyx_t_16 = PySequence_ITEM(__pyx_t_7, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4137, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_16); + #endif + } + } else { +- __pyx_t_17 = __pyx_t_13(__pyx_t_8); +- if (unlikely(!__pyx_t_17)) { ++ __pyx_t_16 = __pyx_t_12(__pyx_t_7); ++ if (unlikely(!__pyx_t_16)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); +@@ -47111,11 +44428,11 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + } + break; + } +- __Pyx_GOTREF(__pyx_t_17); ++ __Pyx_GOTREF(__pyx_t_16); + } +- if ((likely(PyTuple_CheckExact(__pyx_t_17))) || (PyList_CheckExact(__pyx_t_17))) { +- PyObject* sequence = __pyx_t_17; +- #if !CYTHON_COMPILING_IN_PYPY ++ if ((likely(PyTuple_CheckExact(__pyx_t_16))) || (PyList_CheckExact(__pyx_t_16))) { ++ PyObject* sequence = __pyx_t_16; ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -47125,26 +44442,26 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 4137, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); +- __pyx_t_12 = PyTuple_GET_ITEM(sequence, 2); ++ __pyx_t_11 = PyTuple_GET_ITEM(sequence, 2); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 3); + } else { + __pyx_t_6 = PyList_GET_ITEM(sequence, 0); + __pyx_t_2 = PyList_GET_ITEM(sequence, 1); +- __pyx_t_12 = PyList_GET_ITEM(sequence, 2); ++ __pyx_t_11 = PyList_GET_ITEM(sequence, 2); + __pyx_t_3 = PyList_GET_ITEM(sequence, 3); + } + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx_t_2); +- __Pyx_INCREF(__pyx_t_12); ++ __Pyx_INCREF(__pyx_t_11); + __Pyx_INCREF(__pyx_t_3); + #else + { + Py_ssize_t i; +- PyObject** temps[4] = {&__pyx_t_6,&__pyx_t_2,&__pyx_t_12,&__pyx_t_3}; ++ PyObject** temps[4] = {&__pyx_t_6,&__pyx_t_2,&__pyx_t_11,&__pyx_t_3}; + for (i=0; i < 4; i++) { + PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 4137, __pyx_L1_error) + __Pyx_GOTREF(item); +@@ -47152,26 +44469,26 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + } + } + #endif +- __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; ++ __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + } else { + Py_ssize_t index = -1; +- PyObject** temps[4] = {&__pyx_t_6,&__pyx_t_2,&__pyx_t_12,&__pyx_t_3}; +- __pyx_t_16 = PyObject_GetIter(__pyx_t_17); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4137, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_16); +- __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; +- __pyx_t_14 = Py_TYPE(__pyx_t_16)->tp_iternext; ++ PyObject** temps[4] = {&__pyx_t_6,&__pyx_t_2,&__pyx_t_11,&__pyx_t_3}; ++ __pyx_t_15 = PyObject_GetIter(__pyx_t_16); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4137, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_15); ++ __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; ++ __pyx_t_13 = Py_TYPE(__pyx_t_15)->tp_iternext; + for (index=0; index < 4; index++) { +- PyObject* item = __pyx_t_14(__pyx_t_16); if (unlikely(!item)) goto __pyx_L71_unpacking_failed; ++ PyObject* item = __pyx_t_13(__pyx_t_15); if (unlikely(!item)) goto __pyx_L71_unpacking_failed; + __Pyx_GOTREF(item); + *(temps[index]) = item; + } +- if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_16), 4) < 0) __PYX_ERR(0, 4137, __pyx_L1_error) +- __pyx_t_14 = NULL; +- __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; ++ if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_15), 4) < 0) __PYX_ERR(0, 4137, __pyx_L1_error) ++ __pyx_t_13 = NULL; ++ __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + goto __pyx_L72_unpacking_done; + __pyx_L71_unpacking_failed:; +- __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; +- __pyx_t_14 = NULL; ++ __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; ++ __pyx_t_13 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(0, 4137, __pyx_L1_error) + __pyx_L72_unpacking_done:; +@@ -47180,8 +44497,8 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + __pyx_t_6 = 0; + __Pyx_XDECREF_SET(__pyx_v_b, __pyx_t_2); + __pyx_t_2 = 0; +- __Pyx_XDECREF_SET(__pyx_v_c, __pyx_t_12); +- __pyx_t_12 = 0; ++ __Pyx_XDECREF_SET(__pyx_v_c, __pyx_t_11); ++ __pyx_t_11 = 0; + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3); + __pyx_t_3 = 0; + +@@ -47192,11 +44509,11 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * if dataput.size == 0: continue # nothing to write + * # convert array scalar to regular array with one element. + */ +- __pyx_t_17 = PySequence_Tuple(__pyx_v_i); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4138, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_17); +- __pyx_t_3 = PyObject_GetItem(__pyx_v_data, __pyx_t_17); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4138, __pyx_L1_error) ++ __pyx_t_16 = PySequence_Tuple(__pyx_v_i); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4138, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_16); ++ __pyx_t_3 = PyObject_GetItem(__pyx_v_data, __pyx_t_16); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4138, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; ++ __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_XDECREF_SET(__pyx_v_dataput, __pyx_t_3); + __pyx_t_3 = 0; + +@@ -47209,11 +44526,11 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_dataput, __pyx_n_s_size); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); +- __pyx_t_17 = __Pyx_PyInt_EqObjC(__pyx_t_3, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4139, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_17); ++ __pyx_t_16 = __Pyx_PyInt_EqObjC(__pyx_t_3, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4139, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_16); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4139, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; ++ __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4139, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + if (__pyx_t_4) { + goto __pyx_L69_continue; + } +@@ -47225,10 +44542,10 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * if self._isvlen: + * dataput=numpy.array(dataput,'O') + */ +- __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_dataput, __pyx_n_s_shape); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4141, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_17); +- __pyx_t_3 = PyObject_RichCompare(__pyx_t_17, __pyx_empty_tuple, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4141, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; ++ __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_dataput, __pyx_n_s_shape); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4141, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_16); ++ __pyx_t_3 = PyObject_RichCompare(__pyx_t_16, __pyx_empty_tuple, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4141, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4141, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__pyx_t_4) { +@@ -47250,56 +44567,38 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * else: + * dataput=numpy.array(dataput,dataput.dtype) + */ +- __pyx_t_17 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4143, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_17); +- __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_array); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4143, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; +- __pyx_t_17 = NULL; +- __pyx_t_7 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { +- __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_12); +- if (likely(__pyx_t_17)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); +- __Pyx_INCREF(__pyx_t_17); ++ __pyx_t_16 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4143, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_16); ++ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_array); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4143, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; ++ __pyx_t_16 = NULL; ++ __pyx_t_5 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_11))) { ++ __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_11); ++ if (likely(__pyx_t_16)) { ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); ++ __Pyx_INCREF(__pyx_t_16); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_12, function); +- __pyx_t_7 = 1; +- } +- } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_12)) { +- PyObject *__pyx_temp[3] = {__pyx_t_17, __pyx_v_dataput, __pyx_n_s_O}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4143, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { +- PyObject *__pyx_temp[3] = {__pyx_t_17, __pyx_v_dataput, __pyx_n_s_O}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4143, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- { +- __pyx_t_2 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4143, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- if (__pyx_t_17) { +- __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_17); __pyx_t_17 = NULL; ++ __Pyx_DECREF_SET(__pyx_t_11, function); ++ __pyx_t_5 = 1; + } +- __Pyx_INCREF(__pyx_v_dataput); +- __Pyx_GIVEREF(__pyx_v_dataput); +- PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_7, __pyx_v_dataput); +- __Pyx_INCREF(__pyx_n_s_O); +- __Pyx_GIVEREF(__pyx_n_s_O); +- PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_7, __pyx_n_s_O); +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4143, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; ++ __pyx_t_2 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4143, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ if (__pyx_t_16) { ++ __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_16); __pyx_t_16 = NULL; ++ } ++ __Pyx_INCREF(__pyx_v_dataput); ++ __Pyx_GIVEREF(__pyx_v_dataput); ++ PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_5, __pyx_v_dataput); ++ __Pyx_INCREF(__pyx_n_s_O); ++ __Pyx_GIVEREF(__pyx_n_s_O); ++ PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_5, __pyx_n_s_O); ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4143, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF_SET(__pyx_v_dataput, __pyx_t_3); + __pyx_t_3 = 0; + +@@ -47321,59 +44620,39 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + * + */ + /*else*/ { +- __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4145, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_array); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4145, __pyx_L1_error) ++ __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4145, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_array); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_dataput, __pyx_n_s_dtype); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4145, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- __pyx_t_17 = NULL; +- __pyx_t_7 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { +- __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_2); +- if (likely(__pyx_t_17)) { ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; ++ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_dataput, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4145, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ __pyx_t_16 = NULL; ++ __pyx_t_5 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { ++ __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_2); ++ if (likely(__pyx_t_16)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +- __Pyx_INCREF(__pyx_t_17); ++ __Pyx_INCREF(__pyx_t_16); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); +- __pyx_t_7 = 1; +- } +- } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[3] = {__pyx_t_17, __pyx_v_dataput, __pyx_t_12}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4145, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[3] = {__pyx_t_17, __pyx_v_dataput, __pyx_t_12}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4145, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4145, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- if (__pyx_t_17) { +- __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_17); __pyx_t_17 = NULL; ++ __pyx_t_5 = 1; + } +- __Pyx_INCREF(__pyx_v_dataput); +- __Pyx_GIVEREF(__pyx_v_dataput); +- PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_7, __pyx_v_dataput); +- __Pyx_GIVEREF(__pyx_t_12); +- PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_7, __pyx_t_12); +- __pyx_t_12 = 0; +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4145, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } ++ __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4145, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ if (__pyx_t_16) { ++ __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_16); __pyx_t_16 = NULL; ++ } ++ __Pyx_INCREF(__pyx_v_dataput); ++ __Pyx_GIVEREF(__pyx_v_dataput); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_dataput); ++ __Pyx_GIVEREF(__pyx_t_11); ++ PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_11); ++ __pyx_t_11 = 0; ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4145, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF_SET(__pyx_v_dataput, __pyx_t_3); + __pyx_t_3 = 0; +@@ -47399,55 +44678,37 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_put_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = NULL; +- __pyx_t_7 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ __pyx_t_5 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); +- __pyx_t_7 = 1; ++ __pyx_t_5 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[5] = {__pyx_t_6, __pyx_v_dataput, __pyx_v_a, __pyx_v_b, __pyx_v_c}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4146, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[5] = {__pyx_t_6, __pyx_v_dataput, __pyx_v_a, __pyx_v_b, __pyx_v_c}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4146, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- { +- __pyx_t_12 = PyTuple_New(4+__pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4146, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- if (__pyx_t_6) { +- __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_6); __pyx_t_6 = NULL; +- } +- __Pyx_INCREF(__pyx_v_dataput); +- __Pyx_GIVEREF(__pyx_v_dataput); +- PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_7, __pyx_v_dataput); +- __Pyx_INCREF(__pyx_v_a); +- __Pyx_GIVEREF(__pyx_v_a); +- PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_7, __pyx_v_a); +- __Pyx_INCREF(__pyx_v_b); +- __Pyx_GIVEREF(__pyx_v_b); +- PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_7, __pyx_v_b); +- __Pyx_INCREF(__pyx_v_c); +- __Pyx_GIVEREF(__pyx_v_c); +- PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_7, __pyx_v_c); +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_12, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4146, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- } ++ __pyx_t_11 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4146, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ if (__pyx_t_6) { ++ __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_6); __pyx_t_6 = NULL; ++ } ++ __Pyx_INCREF(__pyx_v_dataput); ++ __Pyx_GIVEREF(__pyx_v_dataput); ++ PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_5, __pyx_v_dataput); ++ __Pyx_INCREF(__pyx_v_a); ++ __Pyx_GIVEREF(__pyx_v_a); ++ PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_5, __pyx_v_a); ++ __Pyx_INCREF(__pyx_v_b); ++ __Pyx_GIVEREF(__pyx_v_b); ++ PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_5, __pyx_v_b); ++ __Pyx_INCREF(__pyx_v_c); ++ __Pyx_GIVEREF(__pyx_v_c); ++ PyTuple_SET_ITEM(__pyx_t_11, 3+__pyx_t_5, __pyx_v_c); ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_11, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4146, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + +@@ -47460,7 +44721,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + */ + __pyx_L69_continue:; + } +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "netCDF4/_netCDF4.pyx":4004 + * free(countp) +@@ -47477,11 +44738,11 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8Variable_50__setitem__(struct __pyx_obj_ + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); +- __Pyx_XDECREF(__pyx_t_8); ++ __Pyx_XDECREF(__pyx_t_7); ++ __Pyx_XDECREF(__pyx_t_10); + __Pyx_XDECREF(__pyx_t_11); +- __Pyx_XDECREF(__pyx_t_12); ++ __Pyx_XDECREF(__pyx_t_15); + __Pyx_XDECREF(__pyx_t_16); +- __Pyx_XDECREF(__pyx_t_17); + __Pyx_AddTraceback("netCDF4._netCDF4.Variable.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; +@@ -48282,7 +45543,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_64_put(struct __pyx_obj_7 + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_data), __pyx_n_s_copy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4304, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -48644,7 +45905,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_64_put(struct __pyx_obj_7 + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_10)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -48723,7 +45984,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_64_put(struct __pyx_obj_7 + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_data), __pyx_n_s_astype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4340, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_10 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_10)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -48736,33 +45997,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_64_put(struct __pyx_obj_7 + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_self->dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4340, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_10, __pyx_v_self->dtype}; +- __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4340, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_10, __pyx_v_self->dtype}; +- __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4340, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- { +- __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4340, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_10); __pyx_t_10 = NULL; +- __Pyx_INCREF(__pyx_v_self->dtype); +- __Pyx_GIVEREF(__pyx_v_self->dtype); +- PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_self->dtype); +- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4340, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } ++ __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4340, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_10); __pyx_t_10 = NULL; ++ __Pyx_INCREF(__pyx_v_self->dtype); ++ __Pyx_GIVEREF(__pyx_v_self->dtype); ++ PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_self->dtype); ++ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4340, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_7netCDF4_8_netCDF4_ndarray))))) __PYX_ERR(0, 4340, __pyx_L1_error) +@@ -48805,7 +46048,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_64_put(struct __pyx_obj_7 + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_data), __pyx_n_s_byteswap); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4345, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -49016,7 +46259,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_64_put(struct __pyx_obj_7 + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_data), __pyx_n_s_flatten); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -49082,7 +46325,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_64_put(struct __pyx_obj_7 + if (likely(!__pyx_t_14)) { + if (likely(PyList_CheckExact(__pyx_t_5))) { + if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_5)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4362, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4362, __pyx_L1_error) +@@ -49090,7 +46333,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_64_put(struct __pyx_obj_7 + #endif + } else { + if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_5)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4362, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4362, __pyx_L1_error) +@@ -49779,7 +47022,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_66_get(struct __pyx_obj_7 + if (likely(!__pyx_t_3)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4430, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4430, __pyx_L1_error) +@@ -49787,7 +47030,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_66_get(struct __pyx_obj_7 + #endif + } else { + if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4430, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4430, __pyx_L1_error) +@@ -50161,49 +47404,31 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_66_get(struct __pyx_obj_7 + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = NULL; +- __pyx_t_7 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { ++ __pyx_t_2 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_10)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_10); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); +- __pyx_t_7 = 1; ++ __pyx_t_2 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_v_shapeout, __pyx_v_self->dtype}; +- __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4459, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_v_shapeout, __pyx_v_self->dtype}; +- __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4459, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- { +- __pyx_t_1 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4459, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- if (__pyx_t_10) { +- __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_10); __pyx_t_10 = NULL; +- } +- __Pyx_INCREF(__pyx_v_shapeout); +- __Pyx_GIVEREF(__pyx_v_shapeout); +- PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_7, __pyx_v_shapeout); +- __Pyx_INCREF(__pyx_v_self->dtype); +- __Pyx_GIVEREF(__pyx_v_self->dtype); +- PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_7, __pyx_v_self->dtype); +- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4459, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; ++ __pyx_t_1 = PyTuple_New(2+__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4459, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ if (__pyx_t_10) { ++ __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_10); __pyx_t_10 = NULL; + } ++ __Pyx_INCREF(__pyx_v_shapeout); ++ __Pyx_GIVEREF(__pyx_v_shapeout); ++ PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_2, __pyx_v_shapeout); ++ __Pyx_INCREF(__pyx_v_self->dtype); ++ __Pyx_GIVEREF(__pyx_v_self->dtype); ++ PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_2, __pyx_v_self->dtype); ++ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4459, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_7netCDF4_8_netCDF4_ndarray))))) __PYX_ERR(0, 4459, __pyx_L1_error) + __pyx_v_data = ((PyArrayObject *)__pyx_t_4); +@@ -50442,49 +47667,31 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_66_get(struct __pyx_obj_7 + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = NULL; +- __pyx_t_7 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { ++ __pyx_t_2 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); +- __pyx_t_7 = 1; ++ __pyx_t_2 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_shapeout, __pyx_n_s_O}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4475, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_shapeout, __pyx_n_s_O}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4475, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_10 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4475, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_10); +- if (__pyx_t_4) { +- __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_4); __pyx_t_4 = NULL; +- } +- __Pyx_INCREF(__pyx_v_shapeout); +- __Pyx_GIVEREF(__pyx_v_shapeout); +- PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_7, __pyx_v_shapeout); +- __Pyx_INCREF(__pyx_n_s_O); +- __Pyx_GIVEREF(__pyx_n_s_O); +- PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_7, __pyx_n_s_O); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4475, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; +- } ++ __pyx_t_10 = PyTuple_New(2+__pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4475, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ if (__pyx_t_4) { ++ __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_4); __pyx_t_4 = NULL; ++ } ++ __Pyx_INCREF(__pyx_v_shapeout); ++ __Pyx_GIVEREF(__pyx_v_shapeout); ++ PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_2, __pyx_v_shapeout); ++ __Pyx_INCREF(__pyx_n_s_O); ++ __Pyx_GIVEREF(__pyx_n_s_O); ++ PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_2, __pyx_n_s_O); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4475, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7netCDF4_8_netCDF4_ndarray))))) __PYX_ERR(0, 4475, __pyx_L1_error) + __pyx_v_data = ((PyArrayObject *)__pyx_t_1); +@@ -50500,7 +47707,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_66_get(struct __pyx_obj_7 + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_data), __pyx_n_s_flatten); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_10 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_10)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -50762,7 +47969,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_66_get(struct __pyx_obj_7 + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_default_encoding); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4500, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -50776,35 +47983,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_66_get(struct __pyx_obj_7 + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_10); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_6}; +- __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4500, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_10); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_6}; +- __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4500, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_10); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } else +- #endif +- { +- __pyx_t_16 = PyTuple_New(1+1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4500, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_16); +- __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_4); __pyx_t_4 = NULL; +- __Pyx_GIVEREF(__pyx_t_6); +- PyTuple_SET_ITEM(__pyx_t_16, 0+1, __pyx_t_6); +- __pyx_t_6 = 0; +- __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_16, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4500, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_10); +- __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; +- } ++ __pyx_t_16 = PyTuple_New(1+1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4500, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_16); ++ __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_4); __pyx_t_4 = NULL; ++ __Pyx_GIVEREF(__pyx_t_6); ++ PyTuple_SET_ITEM(__pyx_t_16, 0+1, __pyx_t_6); ++ __pyx_t_6 = 0; ++ __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_16, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4500, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_data), __pyx_v_i, __pyx_t_10) < 0)) __PYX_ERR(0, 4500, __pyx_L1_error) +@@ -50837,49 +48024,31 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_66_get(struct __pyx_obj_7 + __Pyx_GOTREF(__pyx_t_16); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = NULL; +- __pyx_t_7 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_16))) { ++ __pyx_t_2 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_16))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_16); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_16, function); +- __pyx_t_7 = 1; ++ __pyx_t_2 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_16)) { +- PyObject *__pyx_temp[3] = {__pyx_t_1, ((PyObject *)__pyx_v_data), __pyx_v_shapeout}; +- __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_16, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4502, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_10); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_16)) { +- PyObject *__pyx_temp[3] = {__pyx_t_1, ((PyObject *)__pyx_v_data), __pyx_v_shapeout}; +- __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_16, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4502, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_10); +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4502, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- if (__pyx_t_1) { +- __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __pyx_t_1 = NULL; +- } +- __Pyx_INCREF(((PyObject *)__pyx_v_data)); +- __Pyx_GIVEREF(((PyObject *)__pyx_v_data)); +- PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_7, ((PyObject *)__pyx_v_data)); +- __Pyx_INCREF(__pyx_v_shapeout); +- __Pyx_GIVEREF(__pyx_v_shapeout); +- PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_7, __pyx_v_shapeout); +- __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_6, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4502, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_10); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; ++ __pyx_t_6 = PyTuple_New(2+__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4502, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ if (__pyx_t_1) { ++ __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __pyx_t_1 = NULL; + } ++ __Pyx_INCREF(((PyObject *)__pyx_v_data)); ++ __Pyx_GIVEREF(((PyObject *)__pyx_v_data)); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_2, ((PyObject *)__pyx_v_data)); ++ __Pyx_INCREF(__pyx_v_shapeout); ++ __Pyx_GIVEREF(__pyx_v_shapeout); ++ PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_2, __pyx_v_shapeout); ++ __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_6, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4502, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_7netCDF4_8_netCDF4_ndarray))))) __PYX_ERR(0, 4502, __pyx_L1_error) + __Pyx_DECREF_SET(__pyx_v_data, ((PyArrayObject *)__pyx_t_10)); +@@ -50959,7 +48128,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_66_get(struct __pyx_obj_7 + if (likely(!__pyx_t_3)) { + if (likely(PyList_CheckExact(__pyx_t_16))) { + if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_16)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_10 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_2); __Pyx_INCREF(__pyx_t_10); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4511, __pyx_L1_error) + #else + __pyx_t_10 = PySequence_ITEM(__pyx_t_16, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4511, __pyx_L1_error) +@@ -50967,7 +48136,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_66_get(struct __pyx_obj_7 + #endif + } else { + if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_16)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_16, __pyx_t_2); __Pyx_INCREF(__pyx_t_10); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4511, __pyx_L1_error) + #else + __pyx_t_10 = PySequence_ITEM(__pyx_t_16, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4511, __pyx_L1_error) +@@ -51230,51 +48399,31 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_66_get(struct __pyx_obj_7 + __pyx_t_16 = __Pyx_PyInt_FromSize_t(__pyx_v_arrlen); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); + __pyx_t_1 = NULL; +- __pyx_t_7 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { ++ __pyx_t_2 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_10))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_10); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_10, function); +- __pyx_t_7 = 1; ++ __pyx_t_2 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_10)) { +- PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_16, __pyx_v_self->dtype}; +- __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4531, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { +- PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_16, __pyx_v_self->dtype}; +- __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4531, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; +- } else +- #endif +- { +- __pyx_t_4 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4531, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- if (__pyx_t_1) { +- __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __pyx_t_1 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_16); +- PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_7, __pyx_t_16); +- __Pyx_INCREF(__pyx_v_self->dtype); +- __Pyx_GIVEREF(__pyx_v_self->dtype); +- PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_7, __pyx_v_self->dtype); +- __pyx_t_16 = 0; +- __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4531, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; ++ __pyx_t_4 = PyTuple_New(2+__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4531, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ if (__pyx_t_1) { ++ __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __pyx_t_1 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_16); ++ PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_2, __pyx_t_16); ++ __Pyx_INCREF(__pyx_v_self->dtype); ++ __Pyx_GIVEREF(__pyx_v_self->dtype); ++ PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_2, __pyx_v_self->dtype); ++ __pyx_t_16 = 0; ++ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4531, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_7netCDF4_8_netCDF4_ndarray))))) __PYX_ERR(0, 4531, __pyx_L1_error) + __Pyx_XDECREF_SET(__pyx_v_dataarr, ((PyArrayObject *)__pyx_t_6)); +@@ -51330,49 +48479,31 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_66_get(struct __pyx_obj_7 + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = NULL; +- __pyx_t_7 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { ++ __pyx_t_2 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_10)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_10); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); +- __pyx_t_7 = 1; ++ __pyx_t_2 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[3] = {__pyx_t_10, ((PyObject *)__pyx_v_data), __pyx_v_shapeout}; +- __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4536, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[3] = {__pyx_t_10, ((PyObject *)__pyx_v_data), __pyx_v_shapeout}; +- __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4536, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- } else +- #endif +- { +- __pyx_t_16 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4536, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_16); +- if (__pyx_t_10) { +- __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_10); __pyx_t_10 = NULL; +- } +- __Pyx_INCREF(((PyObject *)__pyx_v_data)); +- __Pyx_GIVEREF(((PyObject *)__pyx_v_data)); +- PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_7, ((PyObject *)__pyx_v_data)); +- __Pyx_INCREF(__pyx_v_shapeout); +- __Pyx_GIVEREF(__pyx_v_shapeout); +- PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_7, __pyx_v_shapeout); +- __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_16, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4536, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; ++ __pyx_t_16 = PyTuple_New(2+__pyx_t_2); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4536, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_16); ++ if (__pyx_t_10) { ++ __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_10); __pyx_t_10 = NULL; + } ++ __Pyx_INCREF(((PyObject *)__pyx_v_data)); ++ __Pyx_GIVEREF(((PyObject *)__pyx_v_data)); ++ PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_2, ((PyObject *)__pyx_v_data)); ++ __Pyx_INCREF(__pyx_v_shapeout); ++ __Pyx_GIVEREF(__pyx_v_shapeout); ++ PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_2, __pyx_v_shapeout); ++ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_16, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4536, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_7netCDF4_8_netCDF4_ndarray))))) __PYX_ERR(0, 4536, __pyx_L1_error) + __Pyx_DECREF_SET(__pyx_v_data, ((PyArrayObject *)__pyx_t_6)); +@@ -51460,7 +48591,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_66_get(struct __pyx_obj_7 + __Pyx_GOTREF(__pyx_t_16); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_16))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_16); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); +@@ -51595,7 +48726,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_66_get(struct __pyx_obj_7 + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + if (unlikely(!__pyx_v_data)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 4557, __pyx_L1_error) } + __pyx_t_16 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_16)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -51608,33 +48739,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8Variable_66_get(struct __pyx_obj_7 + __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)__pyx_v_data)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4557, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_16, ((PyObject *)__pyx_v_data)}; +- __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4557, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_16, ((PyObject *)__pyx_v_data)}; +- __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4557, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- } else +- #endif +- { +- __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4557, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_10); +- __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_16); __pyx_t_16 = NULL; +- __Pyx_INCREF(((PyObject *)__pyx_v_data)); +- __Pyx_GIVEREF(((PyObject *)__pyx_v_data)); +- PyTuple_SET_ITEM(__pyx_t_10, 0+1, ((PyObject *)__pyx_v_data)); +- __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_10, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4557, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; +- } ++ __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4557, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_16); __pyx_t_16 = NULL; ++ __Pyx_INCREF(((PyObject *)__pyx_v_data)); ++ __Pyx_GIVEREF(((PyObject *)__pyx_v_data)); ++ PyTuple_SET_ITEM(__pyx_t_10, 0+1, ((PyObject *)__pyx_v_data)); ++ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_10, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4557, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_r = __pyx_t_6; +@@ -53440,7 +50553,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_12CompoundType___init__(struct __pyx_obj_ + */ + __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_n_s_typeid); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); +- __pyx_t_7 = __Pyx_PyInt_As_nc_type(__pyx_t_4); if (unlikely((__pyx_t_7 == ((nc_type)-1)) && PyErr_Occurred())) __PYX_ERR(0, 4611, __pyx_L1_error) ++ __pyx_t_7 = __Pyx_PyInt_As_nc_type(__pyx_t_4); if (unlikely((__pyx_t_7 == (nc_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 4611, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_xtype = __pyx_t_7; + +@@ -53464,7 +50577,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_12CompoundType___init__(struct __pyx_obj_ + /*else*/ { + __pyx_t_4 = __pyx_f_7netCDF4_8_netCDF4__def_compound(__pyx_v_grp, __pyx_v_dt, __pyx_v_dtype_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); +- __pyx_t_7 = __Pyx_PyInt_As_nc_type(__pyx_t_4); if (unlikely((__pyx_t_7 == ((nc_type)-1)) && PyErr_Occurred())) __PYX_ERR(0, 4613, __pyx_L1_error) ++ __pyx_t_7 = __Pyx_PyInt_As_nc_type(__pyx_t_4); if (unlikely((__pyx_t_7 == (nc_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 4613, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_xtype = __pyx_t_7; + } +@@ -53585,7 +50698,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_12CompoundType_2__repr__(struct __p + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4620, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -53638,7 +50751,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_12CompoundType_2__repr__(struct __p + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_default_encoding); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4622, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -53652,35 +50765,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_12CompoundType_2__repr__(struct __p + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4622, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4622, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4622, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; +- __Pyx_GIVEREF(__pyx_t_4); +- PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_4); +- __pyx_t_4 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4622, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } ++ __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4622, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; ++ __Pyx_GIVEREF(__pyx_t_4); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_4); ++ __pyx_t_4 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4622, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_1; +@@ -53926,7 +51019,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_12CompoundType_8_nc_type_2__set__(struct + __Pyx_RefNannyDeclarations + nc_type __pyx_t_1; + __Pyx_RefNannySetupContext("__set__", 0); +- __pyx_t_1 = __Pyx_PyInt_As_nc_type(__pyx_v_value); if (unlikely((__pyx_t_1 == ((nc_type)-1)) && PyErr_Occurred())) __PYX_ERR(0, 4578, __pyx_L1_error) ++ __pyx_t_1 = __Pyx_PyInt_As_nc_type(__pyx_v_value); if (unlikely((__pyx_t_1 == (nc_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 4578, __pyx_L1_error) + __pyx_v_self->_nc_type = __pyx_t_1; + + /* function exit code */ +@@ -54275,7 +51368,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_compound(PyObject *__pyx_v_grp, + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); +@@ -54313,7 +51406,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_compound(PyObject *__pyx_v_grp, + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); +@@ -54343,7 +51436,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_compound(PyObject *__pyx_v_grp, + if (likely(!__pyx_t_10)) { + if (likely(PyList_CheckExact(__pyx_t_8))) { + if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 4648, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4648, __pyx_L1_error) +@@ -54351,7 +51444,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_compound(PyObject *__pyx_v_grp, + #endif + } else { + if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 4648, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4648, __pyx_L1_error) +@@ -54396,7 +51489,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_compound(PyObject *__pyx_v_grp, + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -54426,7 +51519,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_compound(PyObject *__pyx_v_grp, + if (likely(!__pyx_t_10)) { + if (likely(PyList_CheckExact(__pyx_t_6))) { + if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_6)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_8 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_8); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 4649, __pyx_L1_error) + #else + __pyx_t_8 = PySequence_ITEM(__pyx_t_6, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4649, __pyx_L1_error) +@@ -54434,7 +51527,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_compound(PyObject *__pyx_v_grp, + #endif + } else { + if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_6)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_8); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 4649, __pyx_L1_error) + #else + __pyx_t_8 = PySequence_ITEM(__pyx_t_6, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4649, __pyx_L1_error) +@@ -54474,49 +51567,31 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_compound(PyObject *__pyx_v_grp, + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_sortbylist); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = NULL; +- __pyx_t_4 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { ++ __pyx_t_9 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); +- __pyx_t_4 = 1; +- } +- } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_names, __pyx_v_offsets}; +- __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4652, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_names, __pyx_v_offsets}; +- __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4652, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- { +- __pyx_t_1 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4652, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- if (__pyx_t_8) { +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8); __pyx_t_8 = NULL; ++ __pyx_t_9 = 1; + } +- __Pyx_INCREF(__pyx_v_names); +- __Pyx_GIVEREF(__pyx_v_names); +- PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_4, __pyx_v_names); +- __Pyx_INCREF(__pyx_v_offsets); +- __Pyx_GIVEREF(__pyx_v_offsets); +- PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_4, __pyx_v_offsets); +- __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4652, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } ++ __pyx_t_1 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4652, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ if (__pyx_t_8) { ++ __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8); __pyx_t_8 = NULL; ++ } ++ __Pyx_INCREF(__pyx_v_names); ++ __Pyx_GIVEREF(__pyx_v_names); ++ PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_9, __pyx_v_names); ++ __Pyx_INCREF(__pyx_v_offsets); ++ __Pyx_GIVEREF(__pyx_v_offsets); ++ PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_9, __pyx_v_offsets); ++ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4652, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF_SET(__pyx_v_names, __pyx_t_7); + __pyx_t_7 = 0; +@@ -54531,49 +51606,31 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_compound(PyObject *__pyx_v_grp, + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_sortbylist); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = NULL; +- __pyx_t_4 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { ++ __pyx_t_9 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); +- __pyx_t_4 = 1; ++ __pyx_t_9 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_formats, __pyx_v_offsets}; +- __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4653, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_formats, __pyx_v_offsets}; +- __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4653, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- { +- __pyx_t_8 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4653, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- if (__pyx_t_1) { +- __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1); __pyx_t_1 = NULL; +- } +- __Pyx_INCREF(__pyx_v_formats); +- __Pyx_GIVEREF(__pyx_v_formats); +- PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_4, __pyx_v_formats); +- __Pyx_INCREF(__pyx_v_offsets); +- __Pyx_GIVEREF(__pyx_v_offsets); +- PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_4, __pyx_v_offsets); +- __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4653, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- } ++ __pyx_t_8 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4653, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_8); ++ if (__pyx_t_1) { ++ __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1); __pyx_t_1 = NULL; ++ } ++ __Pyx_INCREF(__pyx_v_formats); ++ __Pyx_GIVEREF(__pyx_v_formats); ++ PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_9, __pyx_v_formats); ++ __Pyx_INCREF(__pyx_v_offsets); ++ __Pyx_GIVEREF(__pyx_v_offsets); ++ PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_9, __pyx_v_offsets); ++ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4653, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF_SET(__pyx_v_formats, __pyx_t_7); + __pyx_t_7 = 0; +@@ -54597,52 +51654,34 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_compound(PyObject *__pyx_v_grp, + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_zip); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4655, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = NULL; +- __pyx_t_4 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { ++ __pyx_t_9 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); +- __pyx_t_4 = 1; ++ __pyx_t_9 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_names, __pyx_v_formats, __pyx_v_offsets}; +- __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4655, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_names, __pyx_v_formats, __pyx_v_offsets}; +- __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4655, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- { +- __pyx_t_1 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4655, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- if (__pyx_t_8) { +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8); __pyx_t_8 = NULL; +- } +- __Pyx_INCREF(__pyx_v_names); +- __Pyx_GIVEREF(__pyx_v_names); +- PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_4, __pyx_v_names); +- __Pyx_INCREF(__pyx_v_formats); +- __Pyx_GIVEREF(__pyx_v_formats); +- PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_4, __pyx_v_formats); +- __Pyx_INCREF(__pyx_v_offsets); +- __Pyx_GIVEREF(__pyx_v_offsets); +- PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_4, __pyx_v_offsets); +- __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4655, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } ++ __pyx_t_1 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4655, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ if (__pyx_t_8) { ++ __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8); __pyx_t_8 = NULL; ++ } ++ __Pyx_INCREF(__pyx_v_names); ++ __Pyx_GIVEREF(__pyx_v_names); ++ PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_9, __pyx_v_names); ++ __Pyx_INCREF(__pyx_v_formats); ++ __Pyx_GIVEREF(__pyx_v_formats); ++ PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_9, __pyx_v_formats); ++ __Pyx_INCREF(__pyx_v_offsets); ++ __Pyx_GIVEREF(__pyx_v_offsets); ++ PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_9, __pyx_v_offsets); ++ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4655, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) { + __pyx_t_6 = __pyx_t_7; __Pyx_INCREF(__pyx_t_6); __pyx_t_9 = 0; +@@ -54657,7 +51696,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_compound(PyObject *__pyx_v_grp, + if (likely(!__pyx_t_10)) { + if (likely(PyList_CheckExact(__pyx_t_6))) { + if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_6)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_7 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 4655, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4655, __pyx_L1_error) +@@ -54665,7 +51704,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_compound(PyObject *__pyx_v_grp, + #endif + } else { + if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_6)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 4655, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4655, __pyx_L1_error) +@@ -54686,7 +51725,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_compound(PyObject *__pyx_v_grp, + } + if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) { + PyObject* sequence = __pyx_t_7; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -54696,7 +51735,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_compound(PyObject *__pyx_v_grp, + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 4655, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); +@@ -54818,7 +51857,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_compound(PyObject *__pyx_v_grp, + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- __pyx_t_18 = __Pyx_PyInt_As_nc_type(__pyx_t_12); if (unlikely((__pyx_t_18 == ((nc_type)-1)) && PyErr_Occurred())) __PYX_ERR(0, 4660, __pyx_L13_error) ++ __pyx_t_18 = __Pyx_PyInt_As_nc_type(__pyx_t_12); if (unlikely((__pyx_t_18 == (nc_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 4660, __pyx_L13_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_v_xtype_tmp = __pyx_t_18; + +@@ -54987,7 +52026,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_compound(PyObject *__pyx_v_grp, + */ + __pyx_t_8 = __pyx_f_7netCDF4_8_netCDF4__find_cmptype(__pyx_v_grp, __pyx_v_format); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4670, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); +- __pyx_t_18 = __Pyx_PyInt_As_nc_type(__pyx_t_8); if (unlikely((__pyx_t_18 == ((nc_type)-1)) && PyErr_Occurred())) __PYX_ERR(0, 4670, __pyx_L1_error) ++ __pyx_t_18 = __Pyx_PyInt_As_nc_type(__pyx_t_8); if (unlikely((__pyx_t_18 == (nc_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 4670, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_v_xtype_tmp = __pyx_t_18; + +@@ -55198,7 +52237,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_compound(PyObject *__pyx_v_grp, + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- __pyx_t_18 = __Pyx_PyInt_As_nc_type(__pyx_t_7); if (unlikely((__pyx_t_18 == ((nc_type)-1)) && PyErr_Occurred())) __PYX_ERR(0, 4685, __pyx_L29_error) ++ __pyx_t_18 = __Pyx_PyInt_As_nc_type(__pyx_t_7); if (unlikely((__pyx_t_18 == (nc_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 4685, __pyx_L29_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_v_xtype_tmp = __pyx_t_18; + +@@ -55358,7 +52397,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_compound(PyObject *__pyx_v_grp, + __pyx_t_8 = __pyx_f_7netCDF4_8_netCDF4__find_cmptype(__pyx_v_grp, __pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4694, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; +- __pyx_t_18 = __Pyx_PyInt_As_nc_type(__pyx_t_8); if (unlikely((__pyx_t_18 == ((nc_type)-1)) && PyErr_Occurred())) __PYX_ERR(0, 4694, __pyx_L1_error) ++ __pyx_t_18 = __Pyx_PyInt_As_nc_type(__pyx_t_8); if (unlikely((__pyx_t_18 == (nc_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 4694, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_v_xtype_tmp = __pyx_t_18; + +@@ -55579,7 +52618,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__find_cmptype(PyObject *__pyx_v_grp, + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -55609,7 +52648,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__find_cmptype(PyObject *__pyx_v_grp, + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4711, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4711, __pyx_L1_error) +@@ -55617,7 +52656,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__find_cmptype(PyObject *__pyx_v_grp, + #endif + } else { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4711, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4711, __pyx_L1_error) +@@ -55638,7 +52677,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__find_cmptype(PyObject *__pyx_v_grp, + } + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -55648,7 +52687,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__find_cmptype(PyObject *__pyx_v_grp, + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 4711, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); +@@ -55700,7 +52739,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__find_cmptype(PyObject *__pyx_v_grp, + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cmpdt, __pyx_n_s_nc_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4712, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_9 = __Pyx_PyInt_As_nc_type(__pyx_t_1); if (unlikely((__pyx_t_9 == ((nc_type)-1)) && PyErr_Occurred())) __PYX_ERR(0, 4712, __pyx_L1_error) ++ __pyx_t_9 = __Pyx_PyInt_As_nc_type(__pyx_t_1); if (unlikely((__pyx_t_9 == (nc_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 4712, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_xtype = __pyx_t_9; + +@@ -55738,7 +52777,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__find_cmptype(PyObject *__pyx_v_grp, + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); +@@ -55768,7 +52807,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__find_cmptype(PyObject *__pyx_v_grp, + if (likely(!__pyx_t_11)) { + if (likely(PyList_CheckExact(__pyx_t_7))) { + if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_7)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 4714, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_7, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4714, __pyx_L1_error) +@@ -55776,7 +52815,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__find_cmptype(PyObject *__pyx_v_grp, + #endif + } else { + if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_7)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 4714, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_7, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4714, __pyx_L1_error) +@@ -55824,7 +52863,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__find_cmptype(PyObject *__pyx_v_grp, + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -55854,7 +52893,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__find_cmptype(PyObject *__pyx_v_grp, + if (likely(!__pyx_t_11)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_7); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 4715, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4715, __pyx_L1_error) +@@ -55862,7 +52901,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__find_cmptype(PyObject *__pyx_v_grp, + #endif + } else { + if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_7); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 4715, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4715, __pyx_L1_error) +@@ -56100,7 +53139,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__find_cmptype(PyObject *__pyx_v_grp, + /*else*/ { + __pyx_t_1 = __pyx_f_7netCDF4_8_netCDF4__find_cmptype(__pyx_v_parent_grp, __pyx_v_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_9 = __Pyx_PyInt_As_nc_type(__pyx_t_1); if (unlikely((__pyx_t_9 == ((nc_type)-1)) && PyErr_Occurred())) __PYX_ERR(0, 4729, __pyx_L1_error) ++ __pyx_t_9 = __Pyx_PyInt_As_nc_type(__pyx_t_1); if (unlikely((__pyx_t_9 == (nc_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 4729, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_xtype = __pyx_t_9; + } +@@ -56200,14 +53239,15 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; +- PyObject *__pyx_t_9 = NULL; +- size_t __pyx_t_10; +- int __pyx_t_11; +- PyObject *__pyx_t_12 = NULL; ++ Py_ssize_t __pyx_t_9; ++ PyObject *__pyx_t_10 = NULL; ++ size_t __pyx_t_11; ++ int __pyx_t_12; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; +- int __pyx_t_15; +- struct __pyx_opt_args_7netCDF4_8_netCDF4__read_compound __pyx_t_16; ++ PyObject *__pyx_t_15 = NULL; ++ int __pyx_t_16; ++ struct __pyx_opt_args_7netCDF4_8_netCDF4__read_compound __pyx_t_17; + __Pyx_RefNannySetupContext("_read_compound", 0); + if (__pyx_optional_args) { + if (__pyx_optional_args->__pyx_n > 0) { +@@ -56329,53 +53369,31 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_unicode_error); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4750, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = NULL; +- __pyx_t_2 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ __pyx_t_9 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); +- __pyx_t_2 = 1; ++ __pyx_t_9 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4750, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4750, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- { +- __pyx_t_9 = PyTuple_New(2+__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4750, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); +- if (__pyx_t_8) { +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_5); +- PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_2, __pyx_t_5); +- __Pyx_GIVEREF(__pyx_t_7); +- PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_2, __pyx_t_7); +- __pyx_t_5 = 0; +- __pyx_t_7 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4750, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; ++ __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4750, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ if (__pyx_t_8) { ++ __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_5); ++ PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_5); ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_7); ++ __pyx_t_5 = 0; ++ __pyx_t_7 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4750, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_name = __pyx_t_1; + __pyx_t_1 = 0; +@@ -56423,8 +53441,8 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + * with nogil: + * ierr = nc_inq_compound_field(_grpid, + */ +- __pyx_t_10 = __pyx_v_nfields; +- for (__pyx_v_nf = 0; __pyx_v_nf < __pyx_t_10; __pyx_v_nf++) { ++ __pyx_t_11 = __pyx_v_nfields; ++ for (__pyx_v_nf = 0; __pyx_v_nf < __pyx_t_11; __pyx_v_nf++) { + + /* "netCDF4/_netCDF4.pyx":4756 + * offsets = [] +@@ -56612,62 +53630,40 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + */ + __pyx_t_6 = __Pyx_PyObject_FromString(__pyx_v_field_namstring); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4779, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); +- __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_decode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4779, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); ++ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_decode); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4779, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_default_encoding); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4779, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_unicode_error); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4779, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_5 = NULL; +- __pyx_t_2 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { +- __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_9); ++ __pyx_t_9 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_10))) { ++ __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_10); + if (likely(__pyx_t_5)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_9, function); +- __pyx_t_2 = 1; ++ __Pyx_DECREF_SET(__pyx_t_10, function); ++ __pyx_t_9 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_9)) { +- PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_6, __pyx_t_7}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4779, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { +- PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_6, __pyx_t_7}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4779, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- { +- __pyx_t_8 = PyTuple_New(2+__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4779, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- if (__pyx_t_5) { +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_6); +- PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_2, __pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_7); +- PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_2, __pyx_t_7); +- __pyx_t_6 = 0; +- __pyx_t_7 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4779, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __pyx_t_8 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4779, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_8); ++ if (__pyx_t_5) { ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL; + } +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; ++ __Pyx_GIVEREF(__pyx_t_6); ++ PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_9, __pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_9, __pyx_t_7); ++ __pyx_t_6 = 0; ++ __pyx_t_7 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4779, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_XDECREF_SET(__pyx_v_field_name, __pyx_t_1); + __pyx_t_1 = 0; + +@@ -56678,7 +53674,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + * offsets.append(offset) + * # if numdims=0, not an array. + */ +- __pyx_t_11 = __Pyx_PyObject_Append(__pyx_v_names, __pyx_v_field_name); if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 4780, __pyx_L1_error) ++ __pyx_t_12 = __Pyx_PyObject_Append(__pyx_v_names, __pyx_v_field_name); if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 4780, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":4781 + * field_name = field_namstring.decode(default_encoding,unicode_error) +@@ -56689,7 +53685,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + */ + __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_offset); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4781, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_offsets, __pyx_t_1); if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 4781, __pyx_L1_error) ++ __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_offsets, __pyx_t_1); if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 4781, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "netCDF4/_netCDF4.pyx":4783 +@@ -56731,14 +53727,14 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + */ + __pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_dim_sizes[__pyx_v_ndim])); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4786, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4786, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); ++ __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4786, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); + __Pyx_GIVEREF(__pyx_t_1); +- PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_1); ++ PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_1); + __pyx_t_1 = 0; +- __pyx_t_1 = PyNumber_Add(__pyx_v_field_shape, __pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4786, __pyx_L1_error) ++ __pyx_t_1 = PyNumber_Add(__pyx_v_field_shape, __pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4786, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF_SET(__pyx_v_field_shape, __pyx_t_1); + __pyx_t_1 = 0; + } +@@ -56771,10 +53767,10 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign +- __Pyx_ExceptionSave(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); +- __Pyx_XGOTREF(__pyx_t_12); ++ __Pyx_ExceptionSave(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); ++ __Pyx_XGOTREF(__pyx_t_15); + /*try:*/ { + + /* "netCDF4/_netCDF4.pyx":4790 +@@ -56786,11 +53782,11 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + */ + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_nctonptype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4790, __pyx_L24_error) + __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_field_typeid, nc_type, 1, __Pyx_PyInt_From_nc_type, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4790, __pyx_L24_error) +- __Pyx_GOTREF(__pyx_t_9); ++ __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_field_typeid, nc_type, 1, __Pyx_PyInt_From_nc_type, 0, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4790, __pyx_L24_error) ++ __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_XDECREF_SET(__pyx_v_field_type, __pyx_t_9); +- __pyx_t_9 = 0; ++ __Pyx_XDECREF_SET(__pyx_v_field_type, __pyx_t_10); ++ __pyx_t_10 = 0; + + /* "netCDF4/_netCDF4.pyx":4791 + * try: +@@ -56800,8 +53796,8 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + * except KeyError: + */ + __pyx_t_3 = (__pyx_v_endian != Py_None); +- __pyx_t_15 = (__pyx_t_3 != 0); +- if (__pyx_t_15) { ++ __pyx_t_16 = (__pyx_t_3 != 0); ++ if (__pyx_t_16) { + + /* "netCDF4/_netCDF4.pyx":4792 + * field_type = _nctonptype[field_typeid] +@@ -56811,10 +53807,10 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + * with nogil: + */ + if (unlikely(!__pyx_v_format)) { __Pyx_RaiseUnboundLocalError("format"); __PYX_ERR(0, 4792, __pyx_L24_error) } +- __pyx_t_9 = PyNumber_Add(__pyx_v_endian, __pyx_v_format); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4792, __pyx_L24_error) +- __Pyx_GOTREF(__pyx_t_9); +- __Pyx_XDECREF_SET(__pyx_v_format, __pyx_t_9); +- __pyx_t_9 = 0; ++ __pyx_t_10 = PyNumber_Add(__pyx_v_endian, __pyx_v_format); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4792, __pyx_L24_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __Pyx_XDECREF_SET(__pyx_v_format, __pyx_t_10); ++ __pyx_t_10 = 0; + + /* "netCDF4/_netCDF4.pyx":4791 + * try: +@@ -56833,9 +53829,9 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + * if endian is not None: + */ + } +- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; ++ __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + goto __pyx_L31_try_end; + __pyx_L24_error:; + __Pyx_PyThreadState_assign +@@ -56844,7 +53840,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; ++ __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + + /* "netCDF4/_netCDF4.pyx":4793 + * if endian is not None: +@@ -56856,8 +53852,8 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + __pyx_t_2 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); + if (__pyx_t_2) { + __Pyx_AddTraceback("netCDF4._netCDF4._read_compound", __pyx_clineno, __pyx_lineno, __pyx_filename); +- if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_1, &__pyx_t_8) < 0) __PYX_ERR(0, 4793, __pyx_L26_except_error) +- __Pyx_GOTREF(__pyx_t_9); ++ if (__Pyx_GetException(&__pyx_t_10, &__pyx_t_1, &__pyx_t_8) < 0) __PYX_ERR(0, 4793, __pyx_L26_except_error) ++ __Pyx_GOTREF(__pyx_t_10); + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_t_8); + +@@ -56910,8 +53906,8 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + * # recursively call this function? + * field_type = _read_compound(group, field_typeid, endian=endian) + */ +- __pyx_t_15 = ((__pyx_v_classp == NC_COMPOUND) != 0); +- if (__pyx_t_15) { ++ __pyx_t_16 = ((__pyx_v_classp == NC_COMPOUND) != 0); ++ if (__pyx_t_16) { + + /* "netCDF4/_netCDF4.pyx":4799 + * if classp == NC_COMPOUND: # a compound type +@@ -56920,9 +53916,9 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + * else: + * raise KeyError('compound field of an unsupported data type') + */ +- __pyx_t_16.__pyx_n = 1; +- __pyx_t_16.endian = __pyx_v_endian; +- __pyx_t_7 = __pyx_f_7netCDF4_8_netCDF4__read_compound(__pyx_v_group, __pyx_v_field_typeid, &__pyx_t_16); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4799, __pyx_L26_except_error) ++ __pyx_t_17.__pyx_n = 1; ++ __pyx_t_17.endian = __pyx_v_endian; ++ __pyx_t_7 = __pyx_f_7netCDF4_8_netCDF4__read_compound(__pyx_v_group, __pyx_v_field_typeid, &__pyx_t_17); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4799, __pyx_L26_except_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_XDECREF_SET(__pyx_v_field_type, __pyx_t_7); + __pyx_t_7 = 0; +@@ -56952,7 +53948,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + __PYX_ERR(0, 4801, __pyx_L26_except_error) + } + __pyx_L40:; +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + goto __pyx_L25_exception_handled; +@@ -56968,17 +53964,17 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + * if endian is not None: + */ + __Pyx_PyThreadState_assign +- __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); +- __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); ++ __Pyx_XGIVEREF(__pyx_t_15); ++ __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15); + goto __pyx_L1_error; + __pyx_L25_exception_handled:; + __Pyx_PyThreadState_assign +- __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); +- __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); ++ __Pyx_XGIVEREF(__pyx_t_15); ++ __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15); + __pyx_L31_try_end:; + } + +@@ -56990,9 +53986,9 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + * else: + */ + __pyx_t_8 = PyObject_RichCompare(__pyx_v_field_shape, __pyx_empty_tuple, Py_NE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4802, __pyx_L1_error) +- __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 4802, __pyx_L1_error) ++ __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 4802, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- if (__pyx_t_15) { ++ if (__pyx_t_16) { + + /* "netCDF4/_netCDF4.pyx":4803 + * raise KeyError('compound field of an unsupported data type') +@@ -57009,7 +54005,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + __Pyx_INCREF(__pyx_v_field_shape); + __Pyx_GIVEREF(__pyx_v_field_shape); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_field_shape); +- __pyx_t_11 = __Pyx_PyObject_Append(__pyx_v_formats, __pyx_t_8); if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 4803, __pyx_L1_error) ++ __pyx_t_12 = __Pyx_PyObject_Append(__pyx_v_formats, __pyx_t_8); if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 4803, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "netCDF4/_netCDF4.pyx":4802 +@@ -57030,7 +54026,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + * names = _sortbylist(names, offsets) + */ + /*else*/ { +- __pyx_t_11 = __Pyx_PyObject_Append(__pyx_v_formats, __pyx_v_field_type); if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 4805, __pyx_L1_error) ++ __pyx_t_12 = __Pyx_PyObject_Append(__pyx_v_formats, __pyx_v_field_type); if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 4805, __pyx_L1_error) + } + __pyx_L41:; + } +@@ -57044,50 +54040,32 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + */ + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_sortbylist); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4807, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_9 = NULL; +- __pyx_t_2 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { +- __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1); +- if (likely(__pyx_t_9)) { ++ __pyx_t_10 = NULL; ++ __pyx_t_9 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_1))) { ++ __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_1); ++ if (likely(__pyx_t_10)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +- __Pyx_INCREF(__pyx_t_9); ++ __Pyx_INCREF(__pyx_t_10); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); +- __pyx_t_2 = 1; ++ __pyx_t_9 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_names, __pyx_v_offsets}; +- __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4807, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; +- __Pyx_GOTREF(__pyx_t_8); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_names, __pyx_v_offsets}; +- __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4807, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; +- __Pyx_GOTREF(__pyx_t_8); +- } else +- #endif +- { +- __pyx_t_7 = PyTuple_New(2+__pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4807, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- if (__pyx_t_9) { +- __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9); __pyx_t_9 = NULL; +- } +- __Pyx_INCREF(__pyx_v_names); +- __Pyx_GIVEREF(__pyx_v_names); +- PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_2, __pyx_v_names); +- __Pyx_INCREF(__pyx_v_offsets); +- __Pyx_GIVEREF(__pyx_v_offsets); +- PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_2, __pyx_v_offsets); +- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4807, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } ++ __pyx_t_7 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4807, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ if (__pyx_t_10) { ++ __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_10); __pyx_t_10 = NULL; ++ } ++ __Pyx_INCREF(__pyx_v_names); ++ __Pyx_GIVEREF(__pyx_v_names); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_9, __pyx_v_names); ++ __Pyx_INCREF(__pyx_v_offsets); ++ __Pyx_GIVEREF(__pyx_v_offsets); ++ PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_9, __pyx_v_offsets); ++ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4807, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_8); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_names, __pyx_t_8); + __pyx_t_8 = 0; +@@ -57102,49 +54080,31 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_sortbylist); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4808, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = NULL; +- __pyx_t_2 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { ++ __pyx_t_9 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); +- __pyx_t_2 = 1; +- } +- } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_formats, __pyx_v_offsets}; +- __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4808, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_8); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_formats, __pyx_v_offsets}; +- __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4808, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_8); +- } else +- #endif +- { +- __pyx_t_9 = PyTuple_New(2+__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4808, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); +- if (__pyx_t_7) { +- __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; ++ __pyx_t_9 = 1; + } +- __Pyx_INCREF(__pyx_v_formats); +- __Pyx_GIVEREF(__pyx_v_formats); +- PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_2, __pyx_v_formats); +- __Pyx_INCREF(__pyx_v_offsets); +- __Pyx_GIVEREF(__pyx_v_offsets); +- PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_2, __pyx_v_offsets); +- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4808, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } ++ __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4808, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ if (__pyx_t_7) { ++ __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7); __pyx_t_7 = NULL; ++ } ++ __Pyx_INCREF(__pyx_v_formats); ++ __Pyx_GIVEREF(__pyx_v_formats); ++ PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_v_formats); ++ __Pyx_INCREF(__pyx_v_offsets); ++ __Pyx_GIVEREF(__pyx_v_offsets); ++ PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_v_offsets); ++ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4808, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_8); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_formats, __pyx_t_8); + __pyx_t_8 = 0; +@@ -57156,7 +54116,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + * # create a dict that can be converted into a numpy dtype. + * dtype_dict = {'names':names,'formats':formats,'offsets':offsets} + */ +- __pyx_t_11 = PyList_Sort(__pyx_v_offsets); if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 4809, __pyx_L1_error) ++ __pyx_t_12 = PyList_Sort(__pyx_v_offsets); if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 4809, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":4811 + * offsets.sort() +@@ -57194,16 +54154,16 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_name); + __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4812, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_9 = __Pyx_PyInt_From_nc_type(__pyx_v_xtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4812, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); +- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_typeid, __pyx_t_9) < 0) __PYX_ERR(0, 4812, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +- __pyx_t_9 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7netCDF4_8_netCDF4_CompoundType), __pyx_t_8, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4812, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); ++ __pyx_t_10 = __Pyx_PyInt_From_nc_type(__pyx_v_xtype); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4812, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_typeid, __pyx_t_10) < 0) __PYX_ERR(0, 4812, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; ++ __pyx_t_10 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7netCDF4_8_netCDF4_CompoundType), __pyx_t_8, __pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4812, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- __pyx_r = __pyx_t_9; +- __pyx_t_9 = 0; ++ __pyx_r = __pyx_t_10; ++ __pyx_t_10 = 0; + goto __pyx_L0; + + /* "netCDF4/_netCDF4.pyx":4732 +@@ -57221,7 +54181,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_compound(PyObject *__pyx_v_gro + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); +- __Pyx_XDECREF(__pyx_t_9); ++ __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("netCDF4._netCDF4._read_compound", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; +@@ -57358,7 +54318,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_6VLType___init__(struct __pyx_obj_7netCDF + */ + __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_n_s_typeid); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4852, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); +- __pyx_t_4 = __Pyx_PyInt_As_nc_type(__pyx_t_3); if (unlikely((__pyx_t_4 == ((nc_type)-1)) && PyErr_Occurred())) __PYX_ERR(0, 4852, __pyx_L1_error) ++ __pyx_t_4 = __Pyx_PyInt_As_nc_type(__pyx_t_3); if (unlikely((__pyx_t_4 == (nc_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 4852, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_xtype = __pyx_t_4; + +@@ -57384,7 +54344,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_6VLType___init__(struct __pyx_obj_7netCDF + __Pyx_GOTREF(__pyx_t_3); + if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { + PyObject* sequence = __pyx_t_3; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -57394,7 +54354,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_6VLType___init__(struct __pyx_obj_7netCDF + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 4854, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); +@@ -57432,7 +54392,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_6VLType___init__(struct __pyx_obj_7netCDF + __PYX_ERR(0, 4854, __pyx_L1_error) + __pyx_L5_unpacking_done:; + } +- __pyx_t_4 = __Pyx_PyInt_As_nc_type(__pyx_t_5); if (unlikely((__pyx_t_4 == ((nc_type)-1)) && PyErr_Occurred())) __PYX_ERR(0, 4854, __pyx_L1_error) ++ __pyx_t_4 = __Pyx_PyInt_As_nc_type(__pyx_t_5); if (unlikely((__pyx_t_4 == (nc_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 4854, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_xtype = __pyx_t_4; + __Pyx_DECREF_SET(__pyx_v_dt, __pyx_t_6); +@@ -57593,7 +54553,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_6VLType_2__repr__(struct __pyx_obj_ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4864, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -57646,7 +54606,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_6VLType_2__repr__(struct __pyx_obj_ + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_default_encoding); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4866, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -57660,35 +54620,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_6VLType_2__repr__(struct __pyx_obj_ + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4866, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4866, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4866, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; +- __Pyx_GIVEREF(__pyx_t_4); +- PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_4); +- __pyx_t_4 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4866, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } ++ __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4866, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; ++ __Pyx_GIVEREF(__pyx_t_4); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_4); ++ __pyx_t_4 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4866, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_1; +@@ -57975,7 +54915,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_6VLType_8_nc_type_2__set__(struct __pyx_o + __Pyx_RefNannyDeclarations + nc_type __pyx_t_1; + __Pyx_RefNannySetupContext("__set__", 0); +- __pyx_t_1 = __Pyx_PyInt_As_nc_type(__pyx_v_value); if (unlikely((__pyx_t_1 == ((nc_type)-1)) && PyErr_Occurred())) __PYX_ERR(0, 4826, __pyx_L1_error) ++ __pyx_t_1 = __Pyx_PyInt_As_nc_type(__pyx_v_value); if (unlikely((__pyx_t_1 == (nc_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 4826, __pyx_L1_error) + __pyx_v_self->_nc_type = __pyx_t_1; + + /* function exit code */ +@@ -58266,7 +55206,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_vlen(PyObject *__pyx_v_grp, PyO + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -58279,33 +55219,15 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_vlen(PyObject *__pyx_v_grp, PyO + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_dt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4893, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_dt}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4893, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_dt}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4893, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4893, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; +- __Pyx_INCREF(__pyx_v_dt); +- __Pyx_GIVEREF(__pyx_v_dt); +- PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_dt); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4893, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } ++ __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4893, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; ++ __Pyx_INCREF(__pyx_v_dt); ++ __Pyx_GIVEREF(__pyx_v_dt); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_dt); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4893, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF_SET(__pyx_v_dt, __pyx_t_1); +@@ -58349,7 +55271,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_vlen(PyObject *__pyx_v_grp, PyO + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __pyx_t_8 = __Pyx_PyInt_As_nc_type(__pyx_t_5); if (unlikely((__pyx_t_8 == ((nc_type)-1)) && PyErr_Occurred())) __PYX_ERR(0, 4897, __pyx_L1_error) ++ __pyx_t_8 = __Pyx_PyInt_As_nc_type(__pyx_t_5); if (unlikely((__pyx_t_8 == (nc_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 4897, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_xtype_tmp = __pyx_t_8; + +@@ -58510,11 +55432,12 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_vlen(PyObject *__pyx_v_group, + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; +- PyObject *__pyx_t_9 = NULL; ++ Py_ssize_t __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; +- int __pyx_t_13; ++ PyObject *__pyx_t_13 = NULL; ++ int __pyx_t_14; + __Pyx_RefNannySetupContext("_read_vlen", 0); + if (__pyx_optional_args) { + if (__pyx_optional_args->__pyx_n > 0) { +@@ -58677,53 +55600,31 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_vlen(PyObject *__pyx_v_group, + __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_unicode_error); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4923, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = NULL; +- __pyx_t_2 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ __pyx_t_9 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); +- __pyx_t_2 = 1; ++ __pyx_t_9 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4923, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4923, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- { +- __pyx_t_9 = PyTuple_New(2+__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4923, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); +- if (__pyx_t_8) { +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_5); +- PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_2, __pyx_t_5); +- __Pyx_GIVEREF(__pyx_t_7); +- PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_2, __pyx_t_7); +- __pyx_t_5 = 0; +- __pyx_t_7 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4923, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; ++ __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4923, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ if (__pyx_t_8) { ++ __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_5); ++ PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_5); ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_7); ++ __pyx_t_5 = 0; ++ __pyx_t_7 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4923, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_name = __pyx_t_1; + __pyx_t_1 = 0; +@@ -58738,10 +55639,10 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_vlen(PyObject *__pyx_v_group, + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign +- __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); +- __Pyx_XGOTREF(__pyx_t_10); ++ __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); ++ __Pyx_XGOTREF(__pyx_t_13); + /*try:*/ { + + /* "netCDF4/_netCDF4.pyx":4925 +@@ -58767,8 +55668,8 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_vlen(PyObject *__pyx_v_group, + * except KeyError: + */ + __pyx_t_3 = (__pyx_v_endian != Py_None); +- __pyx_t_13 = (__pyx_t_3 != 0); +- if (__pyx_t_13) { ++ __pyx_t_14 = (__pyx_t_3 != 0); ++ if (__pyx_t_14) { + __pyx_t_6 = PyNumber_Add(__pyx_v_endian, __pyx_v_datatype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4926, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF_SET(__pyx_v_datatype, __pyx_t_6); +@@ -58784,52 +55685,34 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_vlen(PyObject *__pyx_v_group, + */ + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4927, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4927, __pyx_L8_error) +- __Pyx_GOTREF(__pyx_t_9); ++ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_dtype); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4927, __pyx_L8_error) ++ __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { +- __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_9); ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_10))) { ++ __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_10); + if (likely(__pyx_t_1)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_9, function); ++ __Pyx_DECREF_SET(__pyx_t_10, function); + } + } + if (!__pyx_t_1) { +- __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_v_datatype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4927, __pyx_L8_error) ++ __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_datatype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4927, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_6); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_9)) { +- PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_datatype}; +- __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4927, __pyx_L8_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { +- PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_datatype}; +- __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4927, __pyx_L8_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- } else +- #endif +- { +- __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4927, __pyx_L8_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); __pyx_t_1 = NULL; +- __Pyx_INCREF(__pyx_v_datatype); +- __Pyx_GIVEREF(__pyx_v_datatype); +- PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_datatype); +- __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4927, __pyx_L8_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } ++ __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4927, __pyx_L8_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); __pyx_t_1 = NULL; ++ __Pyx_INCREF(__pyx_v_datatype); ++ __Pyx_GIVEREF(__pyx_v_datatype); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_datatype); ++ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_7, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4927, __pyx_L8_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_v_dt = __pyx_t_6; + __pyx_t_6 = 0; + +@@ -58841,9 +55724,9 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_vlen(PyObject *__pyx_v_group, + * if endian is not None: datatype = endian + datatype + */ + } +- __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; ++ __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + goto __pyx_L15_try_end; + __pyx_L8_error:; + __Pyx_PyThreadState_assign +@@ -58851,7 +55734,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_vlen(PyObject *__pyx_v_group, + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; ++ __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "netCDF4/_netCDF4.pyx":4928 +@@ -58864,9 +55747,9 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_vlen(PyObject *__pyx_v_group, + __pyx_t_2 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); + if (__pyx_t_2) { + __Pyx_AddTraceback("netCDF4._netCDF4._read_vlen", __pyx_clineno, __pyx_lineno, __pyx_filename); +- if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_9, &__pyx_t_7) < 0) __PYX_ERR(0, 4928, __pyx_L10_except_error) ++ if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_10, &__pyx_t_7) < 0) __PYX_ERR(0, 4928, __pyx_L10_except_error) + __Pyx_GOTREF(__pyx_t_6); +- __Pyx_GOTREF(__pyx_t_9); ++ __Pyx_GOTREF(__pyx_t_10); + __Pyx_GOTREF(__pyx_t_7); + + /* "netCDF4/_netCDF4.pyx":4929 +@@ -58893,10 +55776,10 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_vlen(PyObject *__pyx_v_group, + * if endian is not None: datatype = endian + datatype + */ + __Pyx_PyThreadState_assign +- __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); +- __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); ++ __Pyx_XGIVEREF(__pyx_t_13); ++ __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); + goto __pyx_L1_error; + __pyx_L15_try_end:; + } +@@ -58922,16 +55805,16 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_vlen(PyObject *__pyx_v_group, + __Pyx_INCREF(__pyx_v_name); + __Pyx_GIVEREF(__pyx_v_name); + PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_name); +- __pyx_t_9 = PyDict_New(); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4930, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); ++ __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4930, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); + __pyx_t_6 = __Pyx_PyInt_From_nc_type(__pyx_v_xtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4930, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); +- if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_typeid, __pyx_t_6) < 0) __PYX_ERR(0, 4930, __pyx_L1_error) ++ if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_typeid, __pyx_t_6) < 0) __PYX_ERR(0, 4930, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __pyx_t_6 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7netCDF4_8_netCDF4_VLType), __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4930, __pyx_L1_error) ++ __pyx_t_6 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7netCDF4_8_netCDF4_VLType), __pyx_t_7, __pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4930, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_r = __pyx_t_6; + __pyx_t_6 = 0; + goto __pyx_L0; +@@ -58951,7 +55834,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_vlen(PyObject *__pyx_v_group, + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); +- __Pyx_XDECREF(__pyx_t_9); ++ __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("netCDF4._netCDF4._read_vlen", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; +@@ -59091,7 +55974,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8EnumType___init__(struct __pyx_obj_7netC + */ + __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_n_s_typeid); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4975, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); +- __pyx_t_4 = __Pyx_PyInt_As_nc_type(__pyx_t_3); if (unlikely((__pyx_t_4 == ((nc_type)-1)) && PyErr_Occurred())) __PYX_ERR(0, 4975, __pyx_L1_error) ++ __pyx_t_4 = __Pyx_PyInt_As_nc_type(__pyx_t_3); if (unlikely((__pyx_t_4 == (nc_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 4975, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_xtype = __pyx_t_4; + +@@ -59117,7 +56000,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8EnumType___init__(struct __pyx_obj_7netC + __Pyx_GOTREF(__pyx_t_3); + if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { + PyObject* sequence = __pyx_t_3; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -59127,7 +56010,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8EnumType___init__(struct __pyx_obj_7netC + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 4977, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); +@@ -59165,7 +56048,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8EnumType___init__(struct __pyx_obj_7netC + __PYX_ERR(0, 4977, __pyx_L1_error) + __pyx_L5_unpacking_done:; + } +- __pyx_t_4 = __Pyx_PyInt_As_nc_type(__pyx_t_5); if (unlikely((__pyx_t_4 == ((nc_type)-1)) && PyErr_Occurred())) __PYX_ERR(0, 4977, __pyx_L1_error) ++ __pyx_t_4 = __Pyx_PyInt_As_nc_type(__pyx_t_5); if (unlikely((__pyx_t_4 == (nc_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 4977, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_xtype = __pyx_t_4; + __Pyx_DECREF_SET(__pyx_v_dt, __pyx_t_6); +@@ -59301,7 +56184,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8EnumType_2__repr__(struct __pyx_ob + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4985, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -59354,7 +56237,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8EnumType_2__repr__(struct __pyx_ob + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_default_encoding); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4987, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -59368,35 +56251,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8EnumType_2__repr__(struct __pyx_ob + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4987, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4987, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4987, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; +- __Pyx_GIVEREF(__pyx_t_4); +- PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_4); +- __pyx_t_4 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4987, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } ++ __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4987, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; ++ __Pyx_GIVEREF(__pyx_t_4); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_4); ++ __pyx_t_4 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4987, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_1; +@@ -59653,7 +56516,7 @@ static int __pyx_pf_7netCDF4_8_netCDF4_8EnumType_8_nc_type_2__set__(struct __pyx + __Pyx_RefNannyDeclarations + nc_type __pyx_t_1; + __Pyx_RefNannySetupContext("__set__", 0); +- __pyx_t_1 = __Pyx_PyInt_As_nc_type(__pyx_v_value); if (unlikely((__pyx_t_1 == ((nc_type)-1)) && PyErr_Occurred())) __PYX_ERR(0, 4944, __pyx_L1_error) ++ __pyx_t_1 = __Pyx_PyInt_As_nc_type(__pyx_v_value); if (unlikely((__pyx_t_1 == (nc_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 4944, __pyx_L1_error) + __pyx_v_self->_nc_type = __pyx_t_1; + + /* function exit code */ +@@ -59967,7 +56830,8 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_enum(PyObject *__pyx_v_grp, PyO + Py_ssize_t __pyx_t_10; + PyObject *(*__pyx_t_11)(PyObject *); + PyObject *__pyx_t_12 = NULL; +- PyObject *__pyx_t_13 = NULL; ++ Py_ssize_t __pyx_t_13; ++ PyObject *__pyx_t_14 = NULL; + __Pyx_RefNannySetupContext("_def_enum", 0); + __Pyx_INCREF(__pyx_v_dt); + +@@ -60006,7 +56870,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_enum(PyObject *__pyx_v_grp, PyO + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -60019,33 +56883,15 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_enum(PyObject *__pyx_v_grp, PyO + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_dt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5007, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_dt}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5007, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_dt}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5007, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5007, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_5); +- __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; +- __Pyx_INCREF(__pyx_v_dt); +- __Pyx_GIVEREF(__pyx_v_dt); +- PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_dt); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5007, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- } ++ __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5007, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_5); ++ __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; ++ __Pyx_INCREF(__pyx_v_dt); ++ __Pyx_GIVEREF(__pyx_v_dt); ++ PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_dt); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5007, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_dt, __pyx_t_1); +@@ -60069,7 +56915,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_enum(PyObject *__pyx_v_grp, PyO + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -60110,7 +56956,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_enum(PyObject *__pyx_v_grp, PyO + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- __pyx_t_8 = __Pyx_PyInt_As_nc_type(__pyx_t_4); if (unlikely((__pyx_t_8 == ((nc_type)-1)) && PyErr_Occurred())) __PYX_ERR(0, 5011, __pyx_L1_error) ++ __pyx_t_8 = __Pyx_PyInt_As_nc_type(__pyx_t_4); if (unlikely((__pyx_t_8 == (nc_type)-1) && PyErr_Occurred())) __PYX_ERR(0, 5011, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_xtype_tmp = __pyx_t_8; + +@@ -60230,7 +57076,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_enum(PyObject *__pyx_v_grp, PyO + if (likely(!__pyx_t_11)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_3)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 5019, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5019, __pyx_L1_error) +@@ -60238,7 +57084,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_enum(PyObject *__pyx_v_grp, PyO + #endif + } else { + if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_3)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 5019, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5019, __pyx_L1_error) +@@ -60275,51 +57121,31 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_enum(PyObject *__pyx_v_grp, PyO + __pyx_t_1 = PyObject_GetItem(__pyx_v_enum_dict, __pyx_v_field); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_12 = NULL; +- __pyx_t_9 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { ++ __pyx_t_13 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_12)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_12); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); +- __pyx_t_9 = 1; ++ __pyx_t_13 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_t_1, __pyx_v_dt}; +- __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5020, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_t_1, __pyx_v_dt}; +- __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5020, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } else +- #endif +- { +- __pyx_t_13 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5020, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_13); +- if (__pyx_t_12) { +- __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __pyx_t_12 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_1); +- PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_9, __pyx_t_1); +- __Pyx_INCREF(__pyx_v_dt); +- __Pyx_GIVEREF(__pyx_v_dt); +- PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_9, __pyx_v_dt); +- __pyx_t_1 = 0; +- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_13, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5020, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; ++ __pyx_t_14 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5020, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_14); ++ if (__pyx_t_12) { ++ __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_12); __pyx_t_12 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_1); ++ PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_13, __pyx_t_1); ++ __Pyx_INCREF(__pyx_v_dt); ++ __Pyx_GIVEREF(__pyx_v_dt); ++ PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_13, __pyx_v_dt); ++ __pyx_t_1 = 0; ++ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5020, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_7netCDF4_8_netCDF4_ndarray))))) __PYX_ERR(0, 5020, __pyx_L1_error) + __Pyx_XDECREF_SET(__pyx_v_value_arr, ((PyArrayObject *)__pyx_t_4)); +@@ -60449,7 +57275,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__def_enum(PyObject *__pyx_v_grp, PyO + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_12); +- __Pyx_XDECREF(__pyx_t_13); ++ __Pyx_XDECREF(__pyx_t_14); + __Pyx_AddTraceback("netCDF4._netCDF4._def_enum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; +@@ -60494,12 +57320,13 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_enum(PyObject *__pyx_v_group, + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; +- PyObject *__pyx_t_9 = NULL; ++ Py_ssize_t __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; +- int __pyx_t_13; +- size_t __pyx_t_14; ++ PyObject *__pyx_t_13 = NULL; ++ int __pyx_t_14; ++ size_t __pyx_t_15; + __Pyx_RefNannySetupContext("_read_enum", 0); + if (__pyx_optional_args) { + if (__pyx_optional_args->__pyx_n > 0) { +@@ -60621,53 +57448,31 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_enum(PyObject *__pyx_v_group, + __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_unicode_error); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5045, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = NULL; +- __pyx_t_2 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ __pyx_t_9 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); +- __pyx_t_2 = 1; ++ __pyx_t_9 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5045, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5045, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- { +- __pyx_t_9 = PyTuple_New(2+__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5045, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); +- if (__pyx_t_8) { +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_5); +- PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_2, __pyx_t_5); +- __Pyx_GIVEREF(__pyx_t_7); +- PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_2, __pyx_t_7); +- __pyx_t_5 = 0; +- __pyx_t_7 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5045, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; ++ __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5045, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ if (__pyx_t_8) { ++ __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_5); ++ PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_5); ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_7); ++ __pyx_t_5 = 0; ++ __pyx_t_7 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5045, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_name = __pyx_t_1; + __pyx_t_1 = 0; +@@ -60682,10 +57487,10 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_enum(PyObject *__pyx_v_group, + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign +- __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); +- __Pyx_XGOTREF(__pyx_t_10); ++ __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); ++ __Pyx_XGOTREF(__pyx_t_13); + /*try:*/ { + + /* "netCDF4/_netCDF4.pyx":5047 +@@ -60711,8 +57516,8 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_enum(PyObject *__pyx_v_group, + * except KeyError: + */ + __pyx_t_3 = (__pyx_v_endian != Py_None); +- __pyx_t_13 = (__pyx_t_3 != 0); +- if (__pyx_t_13) { ++ __pyx_t_14 = (__pyx_t_3 != 0); ++ if (__pyx_t_14) { + __pyx_t_6 = PyNumber_Add(__pyx_v_endian, __pyx_v_datatype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5048, __pyx_L7_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF_SET(__pyx_v_datatype, __pyx_t_6); +@@ -60728,52 +57533,34 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_enum(PyObject *__pyx_v_group, + */ + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5049, __pyx_L7_error) + __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5049, __pyx_L7_error) +- __Pyx_GOTREF(__pyx_t_9); ++ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_dtype); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5049, __pyx_L7_error) ++ __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { +- __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_9); ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_10))) { ++ __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_10); + if (likely(__pyx_t_1)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_9, function); ++ __Pyx_DECREF_SET(__pyx_t_10, function); + } + } + if (!__pyx_t_1) { +- __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_v_datatype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5049, __pyx_L7_error) ++ __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_datatype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5049, __pyx_L7_error) + __Pyx_GOTREF(__pyx_t_6); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_9)) { +- PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_datatype}; +- __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5049, __pyx_L7_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { +- PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_datatype}; +- __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5049, __pyx_L7_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- } else +- #endif +- { +- __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5049, __pyx_L7_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); __pyx_t_1 = NULL; +- __Pyx_INCREF(__pyx_v_datatype); +- __Pyx_GIVEREF(__pyx_v_datatype); +- PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_datatype); +- __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5049, __pyx_L7_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } ++ __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5049, __pyx_L7_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); __pyx_t_1 = NULL; ++ __Pyx_INCREF(__pyx_v_datatype); ++ __Pyx_GIVEREF(__pyx_v_datatype); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_datatype); ++ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_7, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5049, __pyx_L7_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_v_dt = __pyx_t_6; + __pyx_t_6 = 0; + +@@ -60785,9 +57572,9 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_enum(PyObject *__pyx_v_group, + * if endian is not None: datatype = endian + datatype + */ + } +- __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; ++ __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + goto __pyx_L14_try_end; + __pyx_L7_error:; + __Pyx_PyThreadState_assign +@@ -60795,7 +57582,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_enum(PyObject *__pyx_v_group, + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; ++ __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "netCDF4/_netCDF4.pyx":5050 +@@ -60808,9 +57595,9 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_enum(PyObject *__pyx_v_group, + __pyx_t_2 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); + if (__pyx_t_2) { + __Pyx_AddTraceback("netCDF4._netCDF4._read_enum", __pyx_clineno, __pyx_lineno, __pyx_filename); +- if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_9, &__pyx_t_7) < 0) __PYX_ERR(0, 5050, __pyx_L9_except_error) ++ if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_10, &__pyx_t_7) < 0) __PYX_ERR(0, 5050, __pyx_L9_except_error) + __Pyx_GOTREF(__pyx_t_6); +- __Pyx_GOTREF(__pyx_t_9); ++ __Pyx_GOTREF(__pyx_t_10); + __Pyx_GOTREF(__pyx_t_7); + + /* "netCDF4/_netCDF4.pyx":5051 +@@ -60837,10 +57624,10 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_enum(PyObject *__pyx_v_group, + * if endian is not None: datatype = endian + datatype + */ + __Pyx_PyThreadState_assign +- __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); +- __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); ++ __Pyx_XGIVEREF(__pyx_t_13); ++ __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); + goto __pyx_L1_error; + __pyx_L14_try_end:; + } +@@ -60864,8 +57651,8 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_enum(PyObject *__pyx_v_group, + * with nogil: + * ierr = nc_inq_enum_member(_grpid, xtype, nmem, \ + */ +- __pyx_t_14 = __pyx_v_nmembers; +- for (__pyx_v_nmem = 0; __pyx_v_nmem < __pyx_t_14; __pyx_v_nmem++) { ++ __pyx_t_15 = __pyx_v_nmembers; ++ for (__pyx_v_nmem = 0; __pyx_v_nmem < __pyx_t_15; __pyx_v_nmem++) { + + /* "netCDF4/_netCDF4.pyx":5055 + * enum_dict = {} +@@ -60916,8 +57703,8 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_enum(PyObject *__pyx_v_group, + * raise RuntimeError((nc_strerror(ierr)).decode('ascii')) + * name = enum_namstring.decode(default_encoding,unicode_error) + */ +- __pyx_t_13 = ((__pyx_v_ierr != NC_NOERR) != 0); +- if (__pyx_t_13) { ++ __pyx_t_14 = ((__pyx_v_ierr != NC_NOERR) != 0); ++ if (__pyx_t_14) { + + /* "netCDF4/_netCDF4.pyx":5059 + * enum_namstring, &enum_val) +@@ -60929,15 +57716,15 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_enum(PyObject *__pyx_v_group, + __pyx_t_4 = ((char *)nc_strerror(__pyx_v_ierr)); + __pyx_t_7 = __Pyx_decode_c_string(__pyx_t_4, 0, strlen(__pyx_t_4), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5059, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); +- __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5059, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); ++ __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5059, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); + __Pyx_INCREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_7); +- PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_9, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5059, __pyx_L1_error) ++ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_10, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5059, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_Raise(__pyx_t_7, 0, 0, 0); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __PYX_ERR(0, 5059, __pyx_L1_error) +@@ -60958,63 +57745,41 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_enum(PyObject *__pyx_v_group, + * enum_dict[name] = int(enum_val) + * return EnumType(group, dt, name, enum_dict, typeid=xtype) + */ +- __pyx_t_9 = __Pyx_PyObject_FromString(__pyx_v_enum_namstring); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5060, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); +- __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_decode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5060, __pyx_L1_error) ++ __pyx_t_10 = __Pyx_PyObject_FromString(__pyx_v_enum_namstring); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5060, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_decode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5060, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +- __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_default_encoding); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5060, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; ++ __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s_default_encoding); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5060, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_unicode_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5060, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = NULL; +- __pyx_t_2 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ __pyx_t_9 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); +- __pyx_t_2 = 1; ++ __pyx_t_9 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_9, __pyx_t_1}; +- __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5060, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_9, __pyx_t_1}; +- __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5060, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } else +- #endif +- { +- __pyx_t_8 = PyTuple_New(2+__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5060, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- if (__pyx_t_5) { +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_9); +- PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_2, __pyx_t_9); +- __Pyx_GIVEREF(__pyx_t_1); +- PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_2, __pyx_t_1); +- __pyx_t_9 = 0; +- __pyx_t_1 = 0; +- __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5060, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __pyx_t_8 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5060, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_8); ++ if (__pyx_t_5) { ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_10); ++ PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_9, __pyx_t_10); ++ __Pyx_GIVEREF(__pyx_t_1); ++ PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_9, __pyx_t_1); ++ __pyx_t_10 = 0; ++ __pyx_t_1 = 0; ++ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5060, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_7); + __pyx_t_7 = 0; +@@ -61091,7 +57856,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__read_enum(PyObject *__pyx_v_group, + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); +- __Pyx_XDECREF(__pyx_t_9); ++ __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("netCDF4._netCDF4._read_enum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; +@@ -61193,7 +57958,7 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__strencode(PyObject *__pyx_v_pystr, + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_pystr, __pyx_n_s_encode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5070, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); +@@ -61206,33 +57971,15 @@ static PyObject *__pyx_f_7netCDF4_8_netCDF4__strencode(PyObject *__pyx_v_pystr, + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_encoding); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5070, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_3); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_v_encoding}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5070, __pyx_L4_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_v_encoding}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5070, __pyx_L4_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- { +- __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5070, __pyx_L4_error) +- __Pyx_GOTREF(__pyx_t_9); +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; +- __Pyx_INCREF(__pyx_v_encoding); +- __Pyx_GIVEREF(__pyx_v_encoding); +- PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_v_encoding); +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5070, __pyx_L4_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +- } ++ __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5070, __pyx_L4_error) ++ __Pyx_GOTREF(__pyx_t_9); ++ __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; ++ __Pyx_INCREF(__pyx_v_encoding); ++ __Pyx_GIVEREF(__pyx_v_encoding); ++ PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_v_encoding); ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5070, __pyx_L4_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_r = __pyx_t_3; +@@ -61505,7 +58252,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8_dateparse(CYTHON_UNUSED PyObject + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *(*__pyx_t_11)(PyObject *); +- int __pyx_t_12; ++ Py_ssize_t __pyx_t_12; + int __pyx_t_13; + __Pyx_RefNannySetupContext("_dateparse", 0); + +@@ -61519,7 +58266,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8_dateparse(CYTHON_UNUSED PyObject + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_timestr, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -61552,7 +58299,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8_dateparse(CYTHON_UNUSED PyObject + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -61585,7 +58332,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8_dateparse(CYTHON_UNUSED PyObject + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -61670,7 +58417,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8_dateparse(CYTHON_UNUSED PyObject + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_isostring, __pyx_n_s_strip); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -61688,7 +58435,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8_dateparse(CYTHON_UNUSED PyObject + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -61702,40 +58449,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8_dateparse(CYTHON_UNUSED PyObject + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_3}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5104, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_t_3}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5104, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5104, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; +- __Pyx_GIVEREF(__pyx_t_3); +- PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_3); +- __pyx_t_3 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5104, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } ++ __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5104, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; ++ __Pyx_GIVEREF(__pyx_t_3); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_3); ++ __pyx_t_3 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5104, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -61745,7 +58472,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8_dateparse(CYTHON_UNUSED PyObject + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 5103, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); +@@ -61854,7 +58581,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8_dateparse(CYTHON_UNUSED PyObject + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = NULL; + __pyx_t_12 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -61864,50 +58591,32 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8_dateparse(CYTHON_UNUSED PyObject + __pyx_t_12 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[7] = {__pyx_t_8, __pyx_v_year, __pyx_v_month, __pyx_v_day, __pyx_v_hour, __pyx_v_minute, __pyx_v_second}; +- __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_12, 6+__pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5106, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_9); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[7] = {__pyx_t_8, __pyx_v_year, __pyx_v_month, __pyx_v_day, __pyx_v_hour, __pyx_v_minute, __pyx_v_second}; +- __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_12, 6+__pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5106, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_9); +- } else +- #endif +- { +- __pyx_t_7 = PyTuple_New(6+__pyx_t_12); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5106, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- if (__pyx_t_8) { +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8); __pyx_t_8 = NULL; +- } +- __Pyx_INCREF(__pyx_v_year); +- __Pyx_GIVEREF(__pyx_v_year); +- PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_12, __pyx_v_year); +- __Pyx_INCREF(__pyx_v_month); +- __Pyx_GIVEREF(__pyx_v_month); +- PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_12, __pyx_v_month); +- __Pyx_INCREF(__pyx_v_day); +- __Pyx_GIVEREF(__pyx_v_day); +- PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_12, __pyx_v_day); +- __Pyx_INCREF(__pyx_v_hour); +- __Pyx_GIVEREF(__pyx_v_hour); +- PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_12, __pyx_v_hour); +- __Pyx_INCREF(__pyx_v_minute); +- __Pyx_GIVEREF(__pyx_v_minute); +- PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_12, __pyx_v_minute); +- __Pyx_INCREF(__pyx_v_second); +- __Pyx_GIVEREF(__pyx_v_second); +- PyTuple_SET_ITEM(__pyx_t_7, 5+__pyx_t_12, __pyx_v_second); +- __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5106, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } ++ __pyx_t_7 = PyTuple_New(6+__pyx_t_12); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5106, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ if (__pyx_t_8) { ++ __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8); __pyx_t_8 = NULL; ++ } ++ __Pyx_INCREF(__pyx_v_year); ++ __Pyx_GIVEREF(__pyx_v_year); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_12, __pyx_v_year); ++ __Pyx_INCREF(__pyx_v_month); ++ __Pyx_GIVEREF(__pyx_v_month); ++ PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_12, __pyx_v_month); ++ __Pyx_INCREF(__pyx_v_day); ++ __Pyx_GIVEREF(__pyx_v_day); ++ PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_12, __pyx_v_day); ++ __Pyx_INCREF(__pyx_v_hour); ++ __Pyx_GIVEREF(__pyx_v_hour); ++ PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_12, __pyx_v_hour); ++ __Pyx_INCREF(__pyx_v_minute); ++ __Pyx_GIVEREF(__pyx_v_minute); ++ PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_12, __pyx_v_minute); ++ __Pyx_INCREF(__pyx_v_second); ++ __Pyx_GIVEREF(__pyx_v_second); ++ PyTuple_SET_ITEM(__pyx_t_7, 5+__pyx_t_12, __pyx_v_second); ++ __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5106, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_9); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_basedate = __pyx_t_9; + __pyx_t_9 = 0; +@@ -61973,7 +58682,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8_dateparse(CYTHON_UNUSED PyObject + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = NULL; + __pyx_t_12 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_9))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_9); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); +@@ -61983,50 +58692,32 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_8_dateparse(CYTHON_UNUSED PyObject + __pyx_t_12 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_9)) { +- PyObject *__pyx_temp[7] = {__pyx_t_7, __pyx_v_year, __pyx_v_month, __pyx_v_day, __pyx_v_hour, __pyx_v_minute, __pyx_v_second}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_12, 6+__pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5111, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { +- PyObject *__pyx_temp[7] = {__pyx_t_7, __pyx_v_year, __pyx_v_month, __pyx_v_day, __pyx_v_hour, __pyx_v_minute, __pyx_v_second}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_12, 6+__pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5111, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_8 = PyTuple_New(6+__pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5111, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- if (__pyx_t_7) { +- __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL; +- } +- __Pyx_INCREF(__pyx_v_year); +- __Pyx_GIVEREF(__pyx_v_year); +- PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_12, __pyx_v_year); +- __Pyx_INCREF(__pyx_v_month); +- __Pyx_GIVEREF(__pyx_v_month); +- PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_12, __pyx_v_month); +- __Pyx_INCREF(__pyx_v_day); +- __Pyx_GIVEREF(__pyx_v_day); +- PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_12, __pyx_v_day); +- __Pyx_INCREF(__pyx_v_hour); +- __Pyx_GIVEREF(__pyx_v_hour); +- PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_12, __pyx_v_hour); +- __Pyx_INCREF(__pyx_v_minute); +- __Pyx_GIVEREF(__pyx_v_minute); +- PyTuple_SET_ITEM(__pyx_t_8, 4+__pyx_t_12, __pyx_v_minute); +- __Pyx_INCREF(__pyx_v_second); +- __Pyx_GIVEREF(__pyx_v_second); +- PyTuple_SET_ITEM(__pyx_t_8, 5+__pyx_t_12, __pyx_v_second); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5111, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __pyx_t_8 = PyTuple_New(6+__pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5111, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_8); ++ if (__pyx_t_7) { ++ __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL; + } ++ __Pyx_INCREF(__pyx_v_year); ++ __Pyx_GIVEREF(__pyx_v_year); ++ PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_12, __pyx_v_year); ++ __Pyx_INCREF(__pyx_v_month); ++ __Pyx_GIVEREF(__pyx_v_month); ++ PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_12, __pyx_v_month); ++ __Pyx_INCREF(__pyx_v_day); ++ __Pyx_GIVEREF(__pyx_v_day); ++ PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_12, __pyx_v_day); ++ __Pyx_INCREF(__pyx_v_hour); ++ __Pyx_GIVEREF(__pyx_v_hour); ++ PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_12, __pyx_v_hour); ++ __Pyx_INCREF(__pyx_v_minute); ++ __Pyx_GIVEREF(__pyx_v_minute); ++ PyTuple_SET_ITEM(__pyx_t_8, 4+__pyx_t_12, __pyx_v_minute); ++ __Pyx_INCREF(__pyx_v_second); ++ __Pyx_GIVEREF(__pyx_v_second); ++ PyTuple_SET_ITEM(__pyx_t_8, 5+__pyx_t_12, __pyx_v_second); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5111, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_v_basedate = __pyx_t_1; + __pyx_t_1 = 0; +@@ -62200,9 +58891,8 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_10stringtoarr(CYTHON_UNUSED PyObjec + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; +- int __pyx_t_7; ++ Py_ssize_t __pyx_t_7; + PyObject *__pyx_t_8 = NULL; +- Py_ssize_t __pyx_t_9; + __Pyx_RefNannySetupContext("stringtoarr", 0); + + /* "netCDF4/_netCDF4.pyx":5133 +@@ -62265,7 +58955,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_10stringtoarr(CYTHON_UNUSED PyObjec + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = NULL; + __pyx_t_7 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -62275,40 +58965,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_10stringtoarr(CYTHON_UNUSED PyObjec + __pyx_t_7 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_NUMCHARS, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5135, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_NUMCHARS, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5135, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- { +- __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5135, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_8); +- if (__pyx_t_6) { +- __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; +- } +- __Pyx_INCREF(__pyx_v_NUMCHARS); +- __Pyx_GIVEREF(__pyx_v_NUMCHARS); +- PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_NUMCHARS); +- __Pyx_GIVEREF(__pyx_t_4); +- PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_4); +- __pyx_t_4 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5135, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; ++ __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5135, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_8); ++ if (__pyx_t_6) { ++ __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; + } ++ __Pyx_INCREF(__pyx_v_NUMCHARS); ++ __Pyx_GIVEREF(__pyx_v_NUMCHARS); ++ PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_NUMCHARS); ++ __Pyx_GIVEREF(__pyx_t_4); ++ PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_4); ++ __pyx_t_4 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5135, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_arr = __pyx_t_1; + __pyx_t_1 = 0; +@@ -62322,8 +58992,8 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_10stringtoarr(CYTHON_UNUSED PyObjec + */ + __pyx_t_1 = PySequence_Tuple(__pyx_v_string); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5136, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_9 = PyObject_Length(__pyx_v_string); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 5136, __pyx_L1_error) +- if (__Pyx_PyObject_SetSlice(__pyx_v_arr, __pyx_t_1, 0, __pyx_t_9, NULL, NULL, NULL, 1, 1, 1) < 0) __PYX_ERR(0, 5136, __pyx_L1_error) ++ __pyx_t_7 = PyObject_Length(__pyx_v_string); if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 5136, __pyx_L1_error) ++ if (__Pyx_PyObject_SetSlice(__pyx_v_arr, __pyx_t_1, 0, __pyx_t_7, NULL, NULL, NULL, 1, 1, 1) < 0) __PYX_ERR(0, 5136, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "netCDF4/_netCDF4.pyx":5137 +@@ -62399,7 +59069,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_12stringtochar(CYTHON_UNUSED PyObje + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; +- int __pyx_t_10; ++ Py_ssize_t __pyx_t_10; + __Pyx_RefNannySetupContext("stringtochar", 0); + + /* "netCDF4/_netCDF4.pyx":5151 +@@ -62476,7 +59146,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_12stringtochar(CYTHON_UNUSED PyObje + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_a, __pyx_n_s_tostring); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); +@@ -62499,7 +59169,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_12stringtochar(CYTHON_UNUSED PyObje + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_default_encoding); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); +@@ -62513,35 +59183,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_12stringtochar(CYTHON_UNUSED PyObje + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_t_6}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5154, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_t_6}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5154, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } else +- #endif +- { +- __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5154, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_9); +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; +- __Pyx_GIVEREF(__pyx_t_6); +- PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_6); +- __pyx_t_6 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5154, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; +- } ++ __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5154, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_9); ++ __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; ++ __Pyx_GIVEREF(__pyx_t_6); ++ PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_6); ++ __pyx_t_6 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5154, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PySequence_Tuple(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5154, __pyx_L1_error) +@@ -62551,7 +59201,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_12stringtochar(CYTHON_UNUSED PyObje + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_9 = NULL; + __pyx_t_10 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -62561,42 +59211,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_12stringtochar(CYTHON_UNUSED PyObje + __pyx_t_10 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_7, __pyx_t_1}; +- __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5154, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_7, __pyx_t_1}; +- __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5154, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5154, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- if (__pyx_t_9) { +- __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_9); __pyx_t_9 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_7); +- PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_10, __pyx_t_7); +- __Pyx_GIVEREF(__pyx_t_1); +- PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_10, __pyx_t_1); +- __pyx_t_7 = 0; +- __pyx_t_1 = 0; +- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5154, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; ++ __pyx_t_6 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5154, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ if (__pyx_t_9) { ++ __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_9); __pyx_t_9 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_10, __pyx_t_7); ++ __Pyx_GIVEREF(__pyx_t_1); ++ PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_10, __pyx_t_1); ++ __pyx_t_7 = 0; ++ __pyx_t_1 = 0; ++ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5154, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_b = __pyx_t_2; + __pyx_t_2 = 0; +@@ -62704,7 +59332,6 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_14chartostring(CYTHON_UNUSED PyObje + Py_ssize_t __pyx_t_8; + PyObject *(*__pyx_t_9)(PyObject *); + PyObject *__pyx_t_10 = NULL; +- int __pyx_t_11; + __Pyx_RefNannySetupContext("chartostring", 0); + + /* "netCDF4/_netCDF4.pyx":5170 +@@ -62776,7 +59403,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_14chartostring(CYTHON_UNUSED PyObje + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_b, __pyx_n_s_tostring); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -62799,7 +59426,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_14chartostring(CYTHON_UNUSED PyObje + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_default_encoding); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -62813,35 +59440,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_14chartostring(CYTHON_UNUSED PyObje + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_1}; +- __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5173, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_1}; +- __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5173, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } else +- #endif +- { +- __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5173, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; +- __Pyx_GIVEREF(__pyx_t_1); +- PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_1); +- __pyx_t_1 = 0; +- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5173, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } ++ __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5173, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; ++ __Pyx_GIVEREF(__pyx_t_1); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_1); ++ __pyx_t_1 = 0; ++ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5173, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_bs = __pyx_t_2; +@@ -62909,7 +59516,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_14chartostring(CYTHON_UNUSED PyObje + if (likely(!__pyx_t_9)) { + if (likely(PyList_CheckExact(__pyx_t_6))) { + if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_6)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 5175, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5175, __pyx_L1_error) +@@ -62917,7 +59524,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_14chartostring(CYTHON_UNUSED PyObje + #endif + } else { + if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_6)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 5175, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5175, __pyx_L1_error) +@@ -62953,53 +59560,31 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_14chartostring(CYTHON_UNUSED PyObje + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = NULL; +- __pyx_t_11 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { ++ __pyx_t_8 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); +- __pyx_t_11 = 1; ++ __pyx_t_8 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_10}; +- __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5175, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_10}; +- __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5175, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; +- } else +- #endif +- { +- __pyx_t_1 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5175, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- if (__pyx_t_6) { +- __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); __pyx_t_6 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_5); +- PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_11, __pyx_t_5); +- __Pyx_GIVEREF(__pyx_t_10); +- PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_11, __pyx_t_10); +- __pyx_t_5 = 0; +- __pyx_t_10 = 0; +- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5175, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; ++ __pyx_t_1 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5175, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ if (__pyx_t_6) { ++ __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); __pyx_t_6 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_5); ++ PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_8, __pyx_t_5); ++ __Pyx_GIVEREF(__pyx_t_10); ++ PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_8, __pyx_t_10); ++ __pyx_t_5 = 0; ++ __pyx_t_10 = 0; ++ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5175, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_v_a = __pyx_t_2; + __pyx_t_2 = 0; +@@ -63170,7 +59755,6 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_16date2num(CYTHON_UNUSED PyObject * + PyObject *(*__pyx_t_13)(PyObject *); + int __pyx_t_14; + PyObject *__pyx_t_15 = NULL; +- int __pyx_t_16; + __Pyx_RefNannySetupContext("date2num", 0); + __Pyx_INCREF(__pyx_v_dates); + __Pyx_INCREF(__pyx_v_calendar); +@@ -63185,7 +59769,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_16date2num(CYTHON_UNUSED PyObject * + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_calendar, __pyx_n_s_lower); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -63215,7 +59799,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_16date2num(CYTHON_UNUSED PyObject * + __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_dateparse); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -63228,33 +59812,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_16date2num(CYTHON_UNUSED PyObject * + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_units); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_units}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5209, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_units}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5209, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5209, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; +- __Pyx_INCREF(__pyx_v_units); +- __Pyx_GIVEREF(__pyx_v_units); +- PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_units); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5209, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } ++ __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5209, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; ++ __Pyx_INCREF(__pyx_v_units); ++ __Pyx_GIVEREF(__pyx_v_units); ++ PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_units); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5209, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_basedate = __pyx_t_1; +@@ -63270,7 +59836,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_16date2num(CYTHON_UNUSED PyObject * + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_units, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -63294,7 +59860,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_16date2num(CYTHON_UNUSED PyObject * + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -63669,7 +60235,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_16date2num(CYTHON_UNUSED PyObject * + __Pyx_GIVEREF(__pyx_v_dates); + PyList_SET_ITEM(__pyx_t_4, 0, __pyx_v_dates); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -63683,35 +60249,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_16date2num(CYTHON_UNUSED PyObject * + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5229, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5229, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- { +- __pyx_t_11 = PyTuple_New(1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5229, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_3); __pyx_t_3 = NULL; +- __Pyx_GIVEREF(__pyx_t_4); +- PyTuple_SET_ITEM(__pyx_t_11, 0+1, __pyx_t_4); +- __pyx_t_4 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5229, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; +- } ++ __pyx_t_11 = PyTuple_New(1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5229, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_3); __pyx_t_3 = NULL; ++ __Pyx_GIVEREF(__pyx_t_4); ++ PyTuple_SET_ITEM(__pyx_t_11, 0+1, __pyx_t_4); ++ __pyx_t_4 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5229, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF_SET(__pyx_v_dates, __pyx_t_1); +@@ -63741,7 +60287,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_16date2num(CYTHON_UNUSED PyObject * + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_11))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_11); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); +@@ -63754,33 +60300,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_16date2num(CYTHON_UNUSED PyObject * + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_v_dates); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5231, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_11)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_dates}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_11, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5231, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_dates}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_11, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5231, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5231, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; +- __Pyx_INCREF(__pyx_v_dates); +- __Pyx_GIVEREF(__pyx_v_dates); +- PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_dates); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5231, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } ++ __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5231, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; ++ __Pyx_INCREF(__pyx_v_dates); ++ __Pyx_GIVEREF(__pyx_v_dates); ++ PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_dates); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5231, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF_SET(__pyx_v_dates, __pyx_t_1); +@@ -63884,7 +60412,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_16date2num(CYTHON_UNUSED PyObject * + if (likely(!__pyx_t_13)) { + if (likely(PyList_CheckExact(__pyx_t_11))) { + if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_11)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_12); __Pyx_INCREF(__pyx_t_1); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5238, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_11, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5238, __pyx_L1_error) +@@ -63892,7 +60420,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_16date2num(CYTHON_UNUSED PyObject * + #endif + } else { + if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_11)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_12); __Pyx_INCREF(__pyx_t_1); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5238, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_11, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5238, __pyx_L1_error) +@@ -64304,7 +60832,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_16date2num(CYTHON_UNUSED PyObject * + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -64317,82 +60845,44 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_16date2num(CYTHON_UNUSED PyObject * + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_times); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5262, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_times}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5262, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_times}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5262, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- { +- __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5262, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_15); +- __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_1); __pyx_t_1 = NULL; +- __Pyx_INCREF(__pyx_v_times); +- __Pyx_GIVEREF(__pyx_v_times); +- PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_v_times); +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_15, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5262, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; +- } ++ __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5262, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_15); ++ __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_1); __pyx_t_1 = NULL; ++ __Pyx_INCREF(__pyx_v_times); ++ __Pyx_GIVEREF(__pyx_v_times); ++ PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_v_times); ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_15, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5262, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_v_shape)) { __Pyx_RaiseUnboundLocalError("shape"); __PYX_ERR(0, 5262, __pyx_L1_error) } + __pyx_t_4 = NULL; +- __pyx_t_16 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { ++ __pyx_t_12 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); +- __pyx_t_16 = 1; ++ __pyx_t_12 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_3, __pyx_v_shape}; +- __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_16, 2+__pyx_t_16); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5262, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_3, __pyx_v_shape}; +- __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_16, 2+__pyx_t_16); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5262, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } else +- #endif +- { +- __pyx_t_15 = PyTuple_New(2+__pyx_t_16); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5262, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_15); +- if (__pyx_t_4) { +- __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_4); __pyx_t_4 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_3); +- PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_16, __pyx_t_3); +- __Pyx_INCREF(__pyx_v_shape); +- __Pyx_GIVEREF(__pyx_v_shape); +- PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_16, __pyx_v_shape); +- __pyx_t_3 = 0; +- __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_15, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5262, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; ++ __pyx_t_15 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5262, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_15); ++ if (__pyx_t_4) { ++ __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_4); __pyx_t_4 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_3); ++ PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_12, __pyx_t_3); ++ __Pyx_INCREF(__pyx_v_shape); ++ __Pyx_GIVEREF(__pyx_v_shape); ++ PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_12, __pyx_v_shape); ++ __pyx_t_3 = 0; ++ __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_15, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5262, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_11; + __pyx_t_11 = 0; +@@ -64448,7 +60938,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_16date2num(CYTHON_UNUSED PyObject * + __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_cdftime, __pyx_n_s_date2num); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5265, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_11 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_15))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_15))) { + __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_15); + if (likely(__pyx_t_11)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); +@@ -64461,33 +60951,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_16date2num(CYTHON_UNUSED PyObject * + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_v_dates); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5265, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_15)) { +- PyObject *__pyx_temp[2] = {__pyx_t_11, __pyx_v_dates}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5265, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) { +- PyObject *__pyx_temp[2] = {__pyx_t_11, __pyx_v_dates}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5265, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- } else +- #endif +- { +- __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5265, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_11); __pyx_t_11 = NULL; +- __Pyx_INCREF(__pyx_v_dates); +- __Pyx_GIVEREF(__pyx_v_dates); +- PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_v_dates); +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5265, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } ++ __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5265, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_11); __pyx_t_11 = NULL; ++ __Pyx_INCREF(__pyx_v_dates); ++ __Pyx_GIVEREF(__pyx_v_dates); ++ PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_v_dates); ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5265, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __pyx_r = __pyx_t_3; +@@ -64646,7 +61118,6 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_18num2date(CYTHON_UNUSED PyObject * + int __pyx_t_13; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; +- int __pyx_t_16; + __Pyx_RefNannySetupContext("num2date", 0); + __Pyx_INCREF(__pyx_v_times); + __Pyx_INCREF(__pyx_v_calendar); +@@ -64661,7 +61132,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_18num2date(CYTHON_UNUSED PyObject * + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_calendar, __pyx_n_s_lower); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5304, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -64691,7 +61162,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_18num2date(CYTHON_UNUSED PyObject * + __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_dateparse); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5305, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -64704,33 +61175,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_18num2date(CYTHON_UNUSED PyObject * + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_units); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5305, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_units}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5305, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_units}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5305, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5305, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; +- __Pyx_INCREF(__pyx_v_units); +- __Pyx_GIVEREF(__pyx_v_units); +- PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_units); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5305, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } ++ __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5305, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; ++ __Pyx_INCREF(__pyx_v_units); ++ __Pyx_GIVEREF(__pyx_v_units); ++ PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_units); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5305, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_basedate = __pyx_t_1; +@@ -64746,7 +61199,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_18num2date(CYTHON_UNUSED PyObject * + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_units, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5306, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -64770,7 +61223,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_18num2date(CYTHON_UNUSED PyObject * + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -65297,7 +61750,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_18num2date(CYTHON_UNUSED PyObject * + if (likely(!__pyx_t_12)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5334, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5334, __pyx_L1_error) +@@ -65305,7 +61758,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_18num2date(CYTHON_UNUSED PyObject * + #endif + } else { + if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5334, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5334, __pyx_L1_error) +@@ -65659,7 +62112,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_18num2date(CYTHON_UNUSED PyObject * + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -65673,35 +62126,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_18num2date(CYTHON_UNUSED PyObject * + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_GOTREF(__pyx_t_3); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_14}; +- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5357, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_14}; +- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5357, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; +- } else +- #endif +- { +- __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5357, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_15); +- __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_1); __pyx_t_1 = NULL; +- __Pyx_GIVEREF(__pyx_t_14); +- PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_t_14); +- __pyx_t_14 = 0; +- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_15, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5357, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; +- } ++ __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5357, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_15); ++ __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_1); __pyx_t_1 = NULL; ++ __Pyx_GIVEREF(__pyx_t_14); ++ PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_t_14); ++ __pyx_t_14 = 0; ++ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_15, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5357, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF_SET(__pyx_v_msecs, __pyx_t_3); +@@ -65814,7 +62247,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_18num2date(CYTHON_UNUSED PyObject * + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_14))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_14); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); +@@ -65827,82 +62260,44 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_18num2date(CYTHON_UNUSED PyObject * + __pyx_t_15 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_v_dates); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_14)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_dates}; +- __pyx_t_15 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5365, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_15); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_dates}; +- __pyx_t_15 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5365, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_15); +- } else +- #endif +- { +- __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5365, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __pyx_t_3 = NULL; +- __Pyx_INCREF(__pyx_v_dates); +- __Pyx_GIVEREF(__pyx_v_dates); +- PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_dates); +- __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_1, NULL); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5365, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_15); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } ++ __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5365, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __pyx_t_3 = NULL; ++ __Pyx_INCREF(__pyx_v_dates); ++ __Pyx_GIVEREF(__pyx_v_dates); ++ PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_dates); ++ __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_1, NULL); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5365, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_15); ++ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (unlikely(!__pyx_v_shape)) { __Pyx_RaiseUnboundLocalError("shape"); __PYX_ERR(0, 5365, __pyx_L1_error) } + __pyx_t_14 = NULL; +- __pyx_t_16 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { ++ __pyx_t_11 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_14)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_14); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); +- __pyx_t_16 = 1; ++ __pyx_t_11 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_t_15, __pyx_v_shape}; +- __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_16, 2+__pyx_t_16); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5365, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_t_15, __pyx_v_shape}; +- __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_16, 2+__pyx_t_16); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5365, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; +- } else +- #endif +- { +- __pyx_t_1 = PyTuple_New(2+__pyx_t_16); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5365, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- if (__pyx_t_14) { +- __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_14); __pyx_t_14 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_15); +- PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_16, __pyx_t_15); +- __Pyx_INCREF(__pyx_v_shape); +- __Pyx_GIVEREF(__pyx_v_shape); +- PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_16, __pyx_v_shape); +- __pyx_t_15 = 0; +- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5365, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; ++ __pyx_t_1 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5365, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ if (__pyx_t_14) { ++ __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_14); __pyx_t_14 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_15); ++ PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_11, __pyx_t_15); ++ __Pyx_INCREF(__pyx_v_shape); ++ __Pyx_GIVEREF(__pyx_v_shape); ++ PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_11, __pyx_v_shape); ++ __pyx_t_15 = 0; ++ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5365, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; +@@ -65958,7 +62353,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_18num2date(CYTHON_UNUSED PyObject * + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_cdftime, __pyx_n_s_num2date); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -65971,33 +62366,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_18num2date(CYTHON_UNUSED PyObject * + __pyx_t_15 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_times); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_times}; +- __pyx_t_15 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5368, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_15); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_times}; +- __pyx_t_15 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5368, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_15); +- } else +- #endif +- { +- __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5368, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; +- __Pyx_INCREF(__pyx_v_times); +- __Pyx_GIVEREF(__pyx_v_times); +- PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_times); +- __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5368, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_15); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } ++ __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5368, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; ++ __Pyx_INCREF(__pyx_v_times); ++ __Pyx_GIVEREF(__pyx_v_times); ++ PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_times); ++ __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5368, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_15); ++ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_15; +@@ -66154,6 +62531,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_20date2index(CYTHON_UNUSED PyObject + PyObject *__pyx_t_10 = NULL; + int __pyx_t_11; + int __pyx_t_12; ++ Py_ssize_t __pyx_t_13; + __Pyx_RefNannySetupContext("date2index", 0); + __Pyx_INCREF(__pyx_v_calendar); + +@@ -66290,7 +62668,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_20date2index(CYTHON_UNUSED PyObject + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_calendar, __pyx_n_s_lower); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -66322,7 +62700,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_20date2index(CYTHON_UNUSED PyObject + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_nctime, __pyx_n_s_units); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_8 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -66336,35 +62714,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_20date2index(CYTHON_UNUSED PyObject + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_7); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_t_4}; +- __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5408, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_t_4}; +- __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5408, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- { +- __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5408, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_10); +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; +- __Pyx_GIVEREF(__pyx_t_4); +- PyTuple_SET_ITEM(__pyx_t_10, 0+1, __pyx_t_4); +- __pyx_t_4 = 0; +- __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5408, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; +- } ++ __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5408, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; ++ __Pyx_GIVEREF(__pyx_t_4); ++ PyTuple_SET_ITEM(__pyx_t_10, 0+1, __pyx_t_4); ++ __pyx_t_4 = 0; ++ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5408, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_basedate = __pyx_t_7; +@@ -66635,55 +62993,37 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_20date2index(CYTHON_UNUSED PyObject + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = NULL; +- __pyx_t_5 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { ++ __pyx_t_13 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_10)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_10); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); +- __pyx_t_5 = 1; +- } +- } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[5] = {__pyx_t_10, __pyx_v_times, __pyx_v_nctime, __pyx_v_calendar, __pyx_v_select}; +- __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5422, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { +- PyObject *__pyx_temp[5] = {__pyx_t_10, __pyx_v_times, __pyx_v_nctime, __pyx_v_calendar, __pyx_v_select}; +- __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5422, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5422, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- if (__pyx_t_10) { +- __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_10); __pyx_t_10 = NULL; ++ __pyx_t_13 = 1; + } +- __Pyx_INCREF(__pyx_v_times); +- __Pyx_GIVEREF(__pyx_v_times); +- PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_times); +- __Pyx_INCREF(__pyx_v_nctime); +- __Pyx_GIVEREF(__pyx_v_nctime); +- PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_nctime); +- __Pyx_INCREF(__pyx_v_calendar); +- __Pyx_GIVEREF(__pyx_v_calendar); +- PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, __pyx_v_calendar); +- __Pyx_INCREF(__pyx_v_select); +- __Pyx_GIVEREF(__pyx_v_select); +- PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_5, __pyx_v_select); +- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5422, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } ++ __pyx_t_6 = PyTuple_New(4+__pyx_t_13); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5422, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ if (__pyx_t_10) { ++ __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_10); __pyx_t_10 = NULL; ++ } ++ __Pyx_INCREF(__pyx_v_times); ++ __Pyx_GIVEREF(__pyx_v_times); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_13, __pyx_v_times); ++ __Pyx_INCREF(__pyx_v_nctime); ++ __Pyx_GIVEREF(__pyx_v_nctime); ++ PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_13, __pyx_v_nctime); ++ __Pyx_INCREF(__pyx_v_calendar); ++ __Pyx_GIVEREF(__pyx_v_calendar); ++ PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_13, __pyx_v_calendar); ++ __Pyx_INCREF(__pyx_v_select); ++ __Pyx_GIVEREF(__pyx_v_select); ++ PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_13, __pyx_v_select); ++ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5422, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; +@@ -66713,55 +63053,37 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_20date2index(CYTHON_UNUSED PyObject + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = NULL; +- __pyx_t_5 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { ++ __pyx_t_13 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); +- __pyx_t_5 = 1; ++ __pyx_t_13 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_v_dates, __pyx_v_nctime, __pyx_v_calendar, __pyx_v_select}; +- __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5424, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_v_dates, __pyx_v_nctime, __pyx_v_calendar, __pyx_v_select}; +- __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5424, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- { +- __pyx_t_10 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5424, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_10); +- if (__pyx_t_7) { +- __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7); __pyx_t_7 = NULL; +- } +- __Pyx_INCREF(__pyx_v_dates); +- __Pyx_GIVEREF(__pyx_v_dates); +- PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_5, __pyx_v_dates); +- __Pyx_INCREF(__pyx_v_nctime); +- __Pyx_GIVEREF(__pyx_v_nctime); +- PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_5, __pyx_v_nctime); +- __Pyx_INCREF(__pyx_v_calendar); +- __Pyx_GIVEREF(__pyx_v_calendar); +- PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_5, __pyx_v_calendar); +- __Pyx_INCREF(__pyx_v_select); +- __Pyx_GIVEREF(__pyx_v_select); +- PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_5, __pyx_v_select); +- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5424, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; ++ __pyx_t_10 = PyTuple_New(4+__pyx_t_13); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5424, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ if (__pyx_t_7) { ++ __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7); __pyx_t_7 = NULL; + } ++ __Pyx_INCREF(__pyx_v_dates); ++ __Pyx_GIVEREF(__pyx_v_dates); ++ PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_13, __pyx_v_dates); ++ __Pyx_INCREF(__pyx_v_nctime); ++ __Pyx_GIVEREF(__pyx_v_nctime); ++ PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_13, __pyx_v_nctime); ++ __Pyx_INCREF(__pyx_v_calendar); ++ __Pyx_GIVEREF(__pyx_v_calendar); ++ PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_13, __pyx_v_calendar); ++ __Pyx_INCREF(__pyx_v_select); ++ __Pyx_GIVEREF(__pyx_v_select); ++ PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_13, __pyx_v_select); ++ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5424, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; +@@ -66803,7 +63125,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_20date2index(CYTHON_UNUSED PyObject + * **`__init__(self, files, check=False, aggdim=None, exclude=[])`** + */ + +-static PyObject *__pyx_pf_7netCDF4_8_netCDF4_25__defaults__(CYTHON_UNUSED PyObject *__pyx_self) { ++static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset_14__defaults__(CYTHON_UNUSED PyObject *__pyx_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; +@@ -66837,7 +63159,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_25__defaults__(CYTHON_UNUSED PyObje + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); +- __Pyx_AddTraceback("netCDF4._netCDF4.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename); ++ __Pyx_AddTraceback("netCDF4._netCDF4.MFDataset.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); +@@ -66989,7 +63311,6 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + PyObject *__pyx_t_15 = NULL; + Py_ssize_t __pyx_t_16; + Py_ssize_t __pyx_t_17; +- int __pyx_t_18; + __Pyx_RefNannySetupContext("__init__", 0); + __Pyx_INCREF(__pyx_v_files); + +@@ -67069,7 +63390,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_glob); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -67082,33 +63403,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_files); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_files}; +- __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5494, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_files}; +- __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5494, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- { +- __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5494, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; +- __Pyx_INCREF(__pyx_v_files); +- __Pyx_GIVEREF(__pyx_v_files); +- PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_files); +- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5494, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } ++ __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5494, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; ++ __Pyx_INCREF(__pyx_v_files); ++ __Pyx_GIVEREF(__pyx_v_files); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_files); ++ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5494, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = PySequence_List(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5494, __pyx_L1_error) +@@ -67173,7 +63476,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -67203,7 +63506,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + if (likely(!__pyx_t_10)) { + if (likely(PyList_CheckExact(__pyx_t_4))) { + if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_5 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5502, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5502, __pyx_L1_error) +@@ -67211,7 +63514,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + #endif + } else { + if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5502, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5502, __pyx_L1_error) +@@ -67232,7 +63535,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + } + if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { + PyObject* sequence = __pyx_t_5; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -67242,7 +63545,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 5502, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); +@@ -67327,7 +63630,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_cdfm->dimensions, __pyx_n_s_items); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -67357,7 +63660,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + if (likely(!__pyx_t_10)) { + if (likely(PyList_CheckExact(__pyx_t_5))) { + if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_5)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5508, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5508, __pyx_L1_error) +@@ -67365,7 +63668,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + #endif + } else { + if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_5)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5508, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5508, __pyx_L1_error) +@@ -67386,7 +63689,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + } + if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) { + PyObject* sequence = __pyx_t_4; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -67396,7 +63699,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 5508, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); +@@ -67460,7 +63763,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_dim, __pyx_n_s_isunlimited); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5510, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_7 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -67637,7 +63940,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_cdfm->variables, __pyx_n_s_items); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -67667,7 +63970,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + if (likely(!__pyx_t_10)) { + if (likely(PyList_CheckExact(__pyx_t_4))) { + if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_5 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5523, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5523, __pyx_L1_error) +@@ -67675,7 +63978,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + #endif + } else { + if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5523, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5523, __pyx_L1_error) +@@ -67696,7 +63999,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + } + if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { + PyObject* sequence = __pyx_t_5; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -67706,7 +64009,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 5523, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); +@@ -67981,7 +64284,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + if (likely(!__pyx_t_10)) { + if (likely(PyList_CheckExact(__pyx_t_4))) { + if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5546, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5546, __pyx_L1_error) +@@ -67989,7 +64292,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + #endif + } else { + if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5546, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5546, __pyx_L1_error) +@@ -68060,7 +64363,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + if (likely(!__pyx_t_10)) { + if (likely(PyList_CheckExact(__pyx_t_5))) { + if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_5)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5552, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5552, __pyx_L1_error) +@@ -68068,7 +64371,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + #endif + } else { + if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_5)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5552, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5552, __pyx_L1_error) +@@ -68142,7 +64445,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + if (likely(!__pyx_t_13)) { + if (likely(PyList_CheckExact(__pyx_t_4))) { + if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_12); __Pyx_INCREF(__pyx_t_7); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5555, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5555, __pyx_L1_error) +@@ -68150,7 +64453,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + #endif + } else { + if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_12); __Pyx_INCREF(__pyx_t_7); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5555, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5555, __pyx_L1_error) +@@ -68192,7 +64495,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_varInfo, __pyx_n_s_keys); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5558, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -68267,7 +64570,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) { + PyObject* sequence = __pyx_t_7; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -68277,7 +64580,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 5563, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); +@@ -68879,7 +65182,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); +@@ -68909,7 +65212,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + if (likely(!__pyx_t_10)) { + if (likely(PyList_CheckExact(__pyx_t_7))) { + if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_7)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_4 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5611, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5611, __pyx_L1_error) +@@ -68917,7 +65220,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + #endif + } else { + if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_7)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5611, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5611, __pyx_L1_error) +@@ -68938,7 +65241,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + } + if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) { + PyObject* sequence = __pyx_t_4; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -68948,7 +65251,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 5611, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); +@@ -69018,59 +65321,37 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cdfTLen); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_3 = NULL; +- __pyx_t_18 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { ++ __pyx_t_12 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); +- __pyx_t_18 = 1; ++ __pyx_t_12 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_dimname, __pyx_v_dim, __pyx_t_5, __pyx_t_14}; +- __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_18, 4+__pyx_t_18); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5613, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_dimname, __pyx_v_dim, __pyx_t_5, __pyx_t_14}; +- __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_18, 4+__pyx_t_18); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5613, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; +- } else +- #endif +- { +- __pyx_t_15 = PyTuple_New(4+__pyx_t_18); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5613, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_15); +- if (__pyx_t_3) { +- __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3); __pyx_t_3 = NULL; +- } +- __Pyx_INCREF(__pyx_v_dimname); +- __Pyx_GIVEREF(__pyx_v_dimname); +- PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_18, __pyx_v_dimname); +- __Pyx_INCREF(__pyx_v_dim); +- __Pyx_GIVEREF(__pyx_v_dim); +- PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_18, __pyx_v_dim); +- __Pyx_GIVEREF(__pyx_t_5); +- PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_18, __pyx_t_5); +- __Pyx_GIVEREF(__pyx_t_14); +- PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_18, __pyx_t_14); +- __pyx_t_5 = 0; +- __pyx_t_14 = 0; +- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5613, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; ++ __pyx_t_15 = PyTuple_New(4+__pyx_t_12); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5613, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_15); ++ if (__pyx_t_3) { ++ __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3); __pyx_t_3 = NULL; + } ++ __Pyx_INCREF(__pyx_v_dimname); ++ __Pyx_GIVEREF(__pyx_v_dimname); ++ PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_12, __pyx_v_dimname); ++ __Pyx_INCREF(__pyx_v_dim); ++ __Pyx_GIVEREF(__pyx_v_dim); ++ PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_12, __pyx_v_dim); ++ __Pyx_GIVEREF(__pyx_t_5); ++ PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_12, __pyx_t_5); ++ __Pyx_GIVEREF(__pyx_t_14); ++ PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_12, __pyx_t_14); ++ __pyx_t_5 = 0; ++ __pyx_t_14 = 0; ++ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5613, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dims); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); +@@ -69122,7 +65403,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -69152,7 +65433,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + if (likely(!__pyx_t_10)) { + if (likely(PyList_CheckExact(__pyx_t_6))) { + if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_6)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_7 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5615, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5615, __pyx_L1_error) +@@ -69160,7 +65441,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + #endif + } else { + if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_6)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5615, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5615, __pyx_L1_error) +@@ -69181,7 +65462,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + } + if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) { + PyObject* sequence = __pyx_t_7; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -69191,7 +65472,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 5615, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); +@@ -69247,7 +65528,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __pyx_t_15 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_15)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -69280,55 +65561,37 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + __Pyx_GOTREF(__pyx_t_4); + if (unlikely(!__pyx_v_aggDimName)) { __Pyx_RaiseUnboundLocalError("aggDimName"); __PYX_ERR(0, 5617, __pyx_L1_error) } + __pyx_t_15 = NULL; +- __pyx_t_18 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { ++ __pyx_t_12 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_15)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_15); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); +- __pyx_t_18 = 1; ++ __pyx_t_12 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[5] = {__pyx_t_15, __pyx_v_self, __pyx_v_varname, __pyx_v_var, __pyx_v_aggDimName}; +- __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_18, 4+__pyx_t_18); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5617, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[5] = {__pyx_t_15, __pyx_v_self, __pyx_v_varname, __pyx_v_var, __pyx_v_aggDimName}; +- __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_18, 4+__pyx_t_18); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5617, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- { +- __pyx_t_14 = PyTuple_New(4+__pyx_t_18); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5617, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_14); +- if (__pyx_t_15) { +- __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_15); __pyx_t_15 = NULL; +- } +- __Pyx_INCREF(__pyx_v_self); +- __Pyx_GIVEREF(__pyx_v_self); +- PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_18, __pyx_v_self); +- __Pyx_INCREF(__pyx_v_varname); +- __Pyx_GIVEREF(__pyx_v_varname); +- PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_18, __pyx_v_varname); +- __Pyx_INCREF(__pyx_v_var); +- __Pyx_GIVEREF(__pyx_v_var); +- PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_18, __pyx_v_var); +- __Pyx_INCREF(__pyx_v_aggDimName); +- __Pyx_GIVEREF(__pyx_v_aggDimName); +- PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_18, __pyx_v_aggDimName); +- __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_14, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5617, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; ++ __pyx_t_14 = PyTuple_New(4+__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5617, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_14); ++ if (__pyx_t_15) { ++ __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_15); __pyx_t_15 = NULL; + } ++ __Pyx_INCREF(__pyx_v_self); ++ __Pyx_GIVEREF(__pyx_v_self); ++ PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_12, __pyx_v_self); ++ __Pyx_INCREF(__pyx_v_varname); ++ __Pyx_GIVEREF(__pyx_v_varname); ++ PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_12, __pyx_v_varname); ++ __Pyx_INCREF(__pyx_v_var); ++ __Pyx_GIVEREF(__pyx_v_var); ++ PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_12, __pyx_v_var); ++ __Pyx_INCREF(__pyx_v_aggDimName); ++ __Pyx_GIVEREF(__pyx_v_aggDimName); ++ PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_12, __pyx_v_aggDimName); ++ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_14, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5617, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_vars); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5617, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); +@@ -69413,7 +65676,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + if (likely(!__pyx_t_10)) { + if (likely(PyList_CheckExact(__pyx_t_7))) { + if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_7)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_6 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5621, __pyx_L1_error) + #else + __pyx_t_6 = PySequence_ITEM(__pyx_t_7, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5621, __pyx_L1_error) +@@ -69421,7 +65684,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset___init__(CYTHON_UNUSED P + #endif + } else { + if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_7)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5621, __pyx_L1_error) + #else + __pyx_t_6 = PySequence_ITEM(__pyx_t_7, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5621, __pyx_L1_error) +@@ -69803,7 +66066,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset_4__getattribute__(CYTHON + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; +- int __pyx_t_6; ++ Py_ssize_t __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + __Pyx_RefNannySetupContext("__getattribute__", 0); + +@@ -70001,7 +66264,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset_4__getattribute__(CYTHON + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + __pyx_t_6 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -70011,38 +66274,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset_4__getattribute__(CYTHON + __pyx_t_6 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_self, __pyx_v_name}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5644, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_self, __pyx_v_name}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5644, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5644, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- if (__pyx_t_5) { +- __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; +- } +- __Pyx_INCREF(__pyx_v_self); +- __Pyx_GIVEREF(__pyx_v_self); +- PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_self); +- __Pyx_INCREF(__pyx_v_name); +- __Pyx_GIVEREF(__pyx_v_name); +- PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_name); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5644, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; ++ __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5644, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ if (__pyx_t_5) { ++ __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; + } ++ __Pyx_INCREF(__pyx_v_self); ++ __Pyx_GIVEREF(__pyx_v_self); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_self); ++ __Pyx_INCREF(__pyx_v_name); ++ __Pyx_GIVEREF(__pyx_v_name); ++ PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_name); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5644, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; +@@ -70125,7 +66370,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset_6ncattrs(CYTHON_UNUSED P + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -70224,7 +66469,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset_8close(CYTHON_UNUSED PyO + if (likely(!__pyx_t_4)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5660, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5660, __pyx_L1_error) +@@ -70232,7 +66477,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset_8close(CYTHON_UNUSED PyO + #endif + } else { + if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5660, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5660, __pyx_L1_error) +@@ -70264,7 +66509,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset_8close(CYTHON_UNUSED PyO + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_dset, __pyx_n_s_close); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5661, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -70393,7 +66638,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset_10__repr__(CYTHON_UNUSED + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -70423,7 +66668,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset_10__repr__(CYTHON_UNUSED + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_4))) { + if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5665, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5665, __pyx_L1_error) +@@ -70431,7 +66676,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset_10__repr__(CYTHON_UNUSED + #endif + } else { + if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5665, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5665, __pyx_L1_error) +@@ -70485,7 +66730,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset_10__repr__(CYTHON_UNUSED + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -70515,7 +66760,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset_10__repr__(CYTHON_UNUSED + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5666, __pyx_L1_error) + #else + __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5666, __pyx_L1_error) +@@ -70523,7 +66768,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset_10__repr__(CYTHON_UNUSED + #endif + } else { + if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5666, __pyx_L1_error) + #else + __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5666, __pyx_L1_error) +@@ -70672,7 +66917,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset_10__repr__(CYTHON_UNUSED + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ncattrs); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -70702,7 +66947,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset_10__repr__(CYTHON_UNUSED + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_4))) { + if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5674, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5674, __pyx_L1_error) +@@ -70710,7 +66955,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9MFDataset_10__repr__(CYTHON_UNUSED + #endif + } else { + if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5674, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5674, __pyx_L1_error) +@@ -71244,7 +67489,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_10_Dimension_6__repr__(CYTHON_UNUSE + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isunlimited); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5695, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -71587,7 +67832,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable___init__(CYTHON_UNUSED P + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -71617,7 +67862,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable___init__(CYTHON_UNUSED P + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5712, __pyx_L1_error) + #else + __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5712, __pyx_L1_error) +@@ -71625,7 +67870,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable___init__(CYTHON_UNUSED P + #endif + } else { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5712, __pyx_L1_error) + #else + __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5712, __pyx_L1_error) +@@ -71646,7 +67891,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable___init__(CYTHON_UNUSED P + } + if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { + PyObject* sequence = __pyx_t_2; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -71656,7 +67901,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable___init__(CYTHON_UNUSED P + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 5712, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); +@@ -71856,7 +68101,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_4ncattrs(CYTHON_UNUSED P + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -71993,7 +68238,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_6__getattr__(CYTHON_UNUS + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shape_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5719, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -72028,7 +68273,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_6__getattr__(CYTHON_UNUS + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shape_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -72221,7 +68466,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_8__repr__(CYTHON_UNUSED + PyObject *__pyx_t_6 = NULL; + int __pyx_t_7; + PyObject *__pyx_t_8 = NULL; +- int __pyx_t_9; ++ Py_ssize_t __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + int __pyx_t_11; + __Pyx_RefNannySetupContext("__repr__", 0); +@@ -72267,7 +68512,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_8__repr__(CYTHON_UNUSED + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5727, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5727, __pyx_L1_error) +@@ -72275,7 +68520,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_8__repr__(CYTHON_UNUSED + #endif + } else { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5727, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5727, __pyx_L1_error) +@@ -72334,7 +68579,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_8__repr__(CYTHON_UNUSED + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ncattrs); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -72364,7 +68609,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_8__repr__(CYTHON_UNUSED + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_6))) { + if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_6)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_2 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5729, __pyx_L1_error) + #else + __pyx_t_2 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5729, __pyx_L1_error) +@@ -72372,7 +68617,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_8__repr__(CYTHON_UNUSED + #endif + } else { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_6)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5729, __pyx_L1_error) + #else + __pyx_t_2 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5729, __pyx_L1_error) +@@ -72506,7 +68751,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_8__repr__(CYTHON_UNUSED + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5734, __pyx_L1_error) + #else + __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5734, __pyx_L1_error) +@@ -72514,7 +68759,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_8__repr__(CYTHON_UNUSED + #endif + } else { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5734, __pyx_L1_error) + #else + __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5734, __pyx_L1_error) +@@ -72549,7 +68794,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_8__repr__(CYTHON_UNUSED + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_8 = NULL; + __pyx_t_9 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -72559,40 +68804,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_8__repr__(CYTHON_UNUSED + __pyx_t_9 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_2, __pyx_v_dimname}; +- __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5735, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_2, __pyx_v_dimname}; +- __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5735, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } else +- #endif +- { +- __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5735, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_10); +- if (__pyx_t_8) { +- __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_2); +- PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_2); +- __Pyx_INCREF(__pyx_v_dimname); +- __Pyx_GIVEREF(__pyx_v_dimname); +- PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_v_dimname); +- __pyx_t_2 = 0; +- __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_10, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5735, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; ++ __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5735, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_10); ++ if (__pyx_t_8) { ++ __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_2); ++ PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_2); ++ __Pyx_INCREF(__pyx_v_dimname); ++ __Pyx_GIVEREF(__pyx_v_dimname); ++ PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_v_dimname); ++ __pyx_t_2 = 0; ++ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_10, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5735, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF_SET(__pyx_v_dim, __pyx_t_6); + __pyx_t_6 = 0; +@@ -72607,7 +68832,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_8__repr__(CYTHON_UNUSED + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_dim, __pyx_n_s_isunlimited); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5736, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_10 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_10)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -72826,7 +69051,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_10__len__(CYTHON_UNUSED + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shape_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5745, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -73080,7 +69305,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_14set_auto_maskandscale( + if (likely(!__pyx_t_4)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5750, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5750, __pyx_L1_error) +@@ -73088,7 +69313,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_14set_auto_maskandscale( + #endif + } else { + if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5750, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5750, __pyx_L1_error) +@@ -73120,7 +69345,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_14set_auto_maskandscale( + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_v, __pyx_n_s_set_auto_maskandscale); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -73133,33 +69358,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_14set_auto_maskandscale( + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_val}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5751, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_val}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5751, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5751, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; +- __Pyx_INCREF(__pyx_v_val); +- __Pyx_GIVEREF(__pyx_v_val); +- PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_val); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5751, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } ++ __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5751, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; ++ __Pyx_INCREF(__pyx_v_val); ++ __Pyx_GIVEREF(__pyx_v_val); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_val); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5751, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +@@ -73302,7 +69509,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_16set_auto_mask(CYTHON_U + if (likely(!__pyx_t_4)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5753, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5753, __pyx_L1_error) +@@ -73310,7 +69517,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_16set_auto_mask(CYTHON_U + #endif + } else { + if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5753, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5753, __pyx_L1_error) +@@ -73342,7 +69549,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_16set_auto_mask(CYTHON_U + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_v, __pyx_n_s_set_auto_mask); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5754, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -73355,33 +69562,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_16set_auto_mask(CYTHON_U + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5754, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_val}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5754, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_val}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5754, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5754, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; +- __Pyx_INCREF(__pyx_v_val); +- __Pyx_GIVEREF(__pyx_v_val); +- PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_val); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5754, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } ++ __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5754, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; ++ __Pyx_INCREF(__pyx_v_val); ++ __Pyx_GIVEREF(__pyx_v_val); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_val); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5754, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +@@ -73524,7 +69713,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_18set_auto_scale(CYTHON_ + if (likely(!__pyx_t_4)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5756, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5756, __pyx_L1_error) +@@ -73532,7 +69721,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_18set_auto_scale(CYTHON_ + #endif + } else { + if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5756, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5756, __pyx_L1_error) +@@ -73564,7 +69753,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_18set_auto_scale(CYTHON_ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_v, __pyx_n_s_set_auto_scale); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); +@@ -73577,33 +69766,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_18set_auto_scale(CYTHON_ + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_val}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5757, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_val}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5757, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5757, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; +- __Pyx_INCREF(__pyx_v_val); +- __Pyx_GIVEREF(__pyx_v_val); +- PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_val); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5757, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } ++ __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5757, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; ++ __Pyx_INCREF(__pyx_v_val); ++ __Pyx_GIVEREF(__pyx_v_val); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_val); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5757, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +@@ -73747,24 +69918,24 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; +- int __pyx_t_5; ++ Py_ssize_t __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); +- Py_ssize_t __pyx_t_9; +- PyObject *(*__pyx_t_10)(PyObject *); ++ PyObject *(*__pyx_t_9)(PyObject *); ++ int __pyx_t_10; + int __pyx_t_11; +- int __pyx_t_12; +- PyObject *__pyx_t_13 = NULL; +- Py_ssize_t __pyx_t_14; +- PyObject *(*__pyx_t_15)(PyObject *); +- int __pyx_t_16; +- Py_ssize_t __pyx_t_17; +- PyObject *(*__pyx_t_18)(PyObject *); ++ PyObject *__pyx_t_12 = NULL; ++ Py_ssize_t __pyx_t_13; ++ PyObject *(*__pyx_t_14)(PyObject *); ++ int __pyx_t_15; ++ Py_ssize_t __pyx_t_16; ++ PyObject *(*__pyx_t_17)(PyObject *); ++ PyObject *__pyx_t_18 = NULL; + PyObject *__pyx_t_19 = NULL; + PyObject *__pyx_t_20 = NULL; + PyObject *__pyx_t_21 = NULL; +- PyObject *__pyx_t_22 = NULL; ++ int __pyx_t_22; + int __pyx_t_23; + __Pyx_RefNannySetupContext("__getitem__", 0); + +@@ -73781,7 +69952,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; + __pyx_t_5 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -73791,44 +69962,24 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __pyx_t_5 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_elem, __pyx_t_3}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5767, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_elem, __pyx_t_3}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5767, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5767, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- if (__pyx_t_4) { +- __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; +- } +- __Pyx_INCREF(__pyx_v_elem); +- __Pyx_GIVEREF(__pyx_v_elem); +- PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_elem); +- __Pyx_GIVEREF(__pyx_t_3); +- PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_3); +- __pyx_t_3 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5767, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; ++ __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5767, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ if (__pyx_t_4) { ++ __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; + } ++ __Pyx_INCREF(__pyx_v_elem); ++ __Pyx_GIVEREF(__pyx_v_elem); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_elem); ++ __Pyx_GIVEREF(__pyx_t_3); ++ PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_3); ++ __pyx_t_3 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5767, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -73838,7 +69989,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 5766, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); +@@ -73916,7 +70067,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_out_array_shape); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -73929,33 +70080,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_count}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5768, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_count}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5768, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5768, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL; +- __Pyx_INCREF(__pyx_v_count); +- __Pyx_GIVEREF(__pyx_v_count); +- PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_count); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5768, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- } ++ __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5768, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL; ++ __Pyx_INCREF(__pyx_v_count); ++ __Pyx_GIVEREF(__pyx_v_count); ++ PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_count); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5768, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_datashape = __pyx_t_1; +@@ -74028,35 +70161,35 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { +- __pyx_t_6 = __pyx_t_3; __Pyx_INCREF(__pyx_t_6); __pyx_t_9 = 0; +- __pyx_t_10 = NULL; ++ __pyx_t_6 = __pyx_t_3; __Pyx_INCREF(__pyx_t_6); __pyx_t_5 = 0; ++ __pyx_t_9 = NULL; + } else { +- __pyx_t_9 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5776, __pyx_L1_error) ++ __pyx_t_5 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); +- __pyx_t_10 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5776, __pyx_L1_error) ++ __pyx_t_9 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5776, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + for (;;) { +- if (likely(!__pyx_t_10)) { ++ if (likely(!__pyx_t_9)) { + if (likely(PyList_CheckExact(__pyx_t_6))) { +- if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_6)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_3 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5776, __pyx_L1_error) ++ if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_6)) break; ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_3 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5776, __pyx_L1_error) + #else +- __pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5776, __pyx_L1_error) ++ __pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + } else { +- if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_6)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5776, __pyx_L1_error) ++ if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_6)) break; ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5776, __pyx_L1_error) + #else +- __pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5776, __pyx_L1_error) ++ __pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + } + } else { +- __pyx_t_3 = __pyx_t_10(__pyx_t_6); ++ __pyx_t_3 = __pyx_t_9(__pyx_t_6); + if (unlikely(!__pyx_t_3)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { +@@ -74086,11 +70219,11 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + */ + __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_v_n, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5777, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); +- __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5777, __pyx_L1_error) ++ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5777, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- if (__pyx_t_12) { ++ if (__pyx_t_11) { + } else { +- __pyx_t_11 = __pyx_t_12; ++ __pyx_t_10 = __pyx_t_11; + goto __pyx_L8_bool_binop_done; + } + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5777, __pyx_L1_error) +@@ -74108,7 +70241,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); +@@ -74131,11 +70264,11 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_t_4, __pyx_int_neg_1, -1L, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5777, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5777, __pyx_L1_error) ++ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5777, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- __pyx_t_11 = __pyx_t_12; ++ __pyx_t_10 = __pyx_t_11; + __pyx_L8_bool_binop_done:; +- if (__pyx_t_11) { ++ if (__pyx_t_10) { + + /* "netCDF4/_netCDF4.pyx":5778 + * for i,n in enumerate(put_ind.shape[:-1]): +@@ -74177,8 +70310,8 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ndim); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5781, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); +- __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5781, __pyx_L1_error) +- if (!__pyx_t_11) { ++ __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 5781, __pyx_L1_error) ++ if (!__pyx_t_10) { + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else { + __Pyx_INCREF(__pyx_t_4); +@@ -74200,7 +70333,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_3 = 0; + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -74214,35 +70347,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5781, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5781, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- { +- __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5781, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL; +- __Pyx_GIVEREF(__pyx_t_4); +- PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_t_4); +- __pyx_t_4 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5781, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } ++ __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5781, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL; ++ __Pyx_GIVEREF(__pyx_t_4); ++ PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_t_4); ++ __pyx_t_4 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5781, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_strt = __pyx_t_1; +@@ -74259,8 +70372,8 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ndim); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); +- __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5782, __pyx_L1_error) +- if (!__pyx_t_11) { ++ __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 5782, __pyx_L1_error) ++ if (!__pyx_t_10) { + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else { + __Pyx_INCREF(__pyx_t_4); +@@ -74282,7 +70395,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); + __pyx_t_2 = 0; + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -74296,35 +70409,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5782, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5782, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- { +- __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5782, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = NULL; +- __Pyx_GIVEREF(__pyx_t_4); +- PyTuple_SET_ITEM(__pyx_t_3, 0+1, __pyx_t_4); +- __pyx_t_4 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5782, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } ++ __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5782, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = NULL; ++ __Pyx_GIVEREF(__pyx_t_4); ++ PyTuple_SET_ITEM(__pyx_t_3, 0+1, __pyx_t_4); ++ __pyx_t_4 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5782, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_cnt = __pyx_t_1; +@@ -74341,8 +70434,8 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ndim); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5783, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); +- __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5783, __pyx_L1_error) +- if (!__pyx_t_11) { ++ __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 5783, __pyx_L1_error) ++ if (!__pyx_t_10) { + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else { + __Pyx_INCREF(__pyx_t_4); +@@ -74364,7 +70457,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_3 = 0; + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -74378,35 +70471,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5783, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5783, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- { +- __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5783, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL; +- __Pyx_GIVEREF(__pyx_t_4); +- PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_t_4); +- __pyx_t_4 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5783, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } ++ __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5783, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL; ++ __Pyx_GIVEREF(__pyx_t_4); ++ PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_t_4); ++ __pyx_t_4 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5783, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_strd = __pyx_t_1; +@@ -74423,8 +70496,8 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ndim); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); +- __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5784, __pyx_L1_error) +- if (!__pyx_t_11) { ++ __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 5784, __pyx_L1_error) ++ if (!__pyx_t_10) { + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else { + __Pyx_INCREF(__pyx_t_4); +@@ -74446,7 +70519,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); + __pyx_t_2 = 0; + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -74460,35 +70533,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5784, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_t_4}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5784, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- { +- __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5784, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = NULL; +- __Pyx_GIVEREF(__pyx_t_4); +- PyTuple_SET_ITEM(__pyx_t_3, 0+1, __pyx_t_4); +- __pyx_t_4 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5784, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } ++ __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5784, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_3); ++ __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = NULL; ++ __Pyx_GIVEREF(__pyx_t_4); ++ PyTuple_SET_ITEM(__pyx_t_3, 0+1, __pyx_t_4); ++ __pyx_t_4 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5784, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF_SET(__pyx_v_put_ind, __pyx_t_1); +@@ -74503,9 +70556,9 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_recLen); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_9 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 5788, __pyx_L1_error) ++ __pyx_t_5 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 5788, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- __pyx_v_nv = __pyx_t_9; ++ __pyx_v_nv = __pyx_t_5; + + /* "netCDF4/_netCDF4.pyx":5789 + * # Number of variables making up the MFVariable.Variable. +@@ -74518,7 +70571,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = NULL; + __pyx_t_5 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); +@@ -74528,75 +70581,57 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __pyx_t_5 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_strt, __pyx_v_cnt, __pyx_v_strd, __pyx_v_put_ind}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5789, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_strt, __pyx_v_cnt, __pyx_v_strd, __pyx_v_put_ind}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5789, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_4 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5789, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- if (__pyx_t_3) { +- __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; +- } +- __Pyx_INCREF(__pyx_v_strt); +- __Pyx_GIVEREF(__pyx_v_strt); +- PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_5, __pyx_v_strt); +- __Pyx_INCREF(__pyx_v_cnt); +- __Pyx_GIVEREF(__pyx_v_cnt); +- PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_5, __pyx_v_cnt); +- __Pyx_INCREF(__pyx_v_strd); +- __Pyx_GIVEREF(__pyx_v_strd); +- PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_5, __pyx_v_strd); +- __Pyx_INCREF(__pyx_v_put_ind); +- __Pyx_GIVEREF(__pyx_v_put_ind); +- PyTuple_SET_ITEM(__pyx_t_4, 3+__pyx_t_5, __pyx_v_put_ind); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5789, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } ++ __pyx_t_4 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5789, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ if (__pyx_t_3) { ++ __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; ++ } ++ __Pyx_INCREF(__pyx_v_strt); ++ __Pyx_GIVEREF(__pyx_v_strt); ++ PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_5, __pyx_v_strt); ++ __Pyx_INCREF(__pyx_v_cnt); ++ __Pyx_GIVEREF(__pyx_v_cnt); ++ PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_5, __pyx_v_cnt); ++ __Pyx_INCREF(__pyx_v_strd); ++ __Pyx_GIVEREF(__pyx_v_strd); ++ PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_5, __pyx_v_strd); ++ __Pyx_INCREF(__pyx_v_put_ind); ++ __Pyx_GIVEREF(__pyx_v_put_ind); ++ PyTuple_SET_ITEM(__pyx_t_4, 3+__pyx_t_5, __pyx_v_put_ind); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5789, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { +- __pyx_t_6 = __pyx_t_1; __Pyx_INCREF(__pyx_t_6); __pyx_t_9 = 0; +- __pyx_t_10 = NULL; ++ __pyx_t_6 = __pyx_t_1; __Pyx_INCREF(__pyx_t_6); __pyx_t_5 = 0; ++ __pyx_t_9 = NULL; + } else { +- __pyx_t_9 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5789, __pyx_L1_error) ++ __pyx_t_5 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5789, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); +- __pyx_t_10 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5789, __pyx_L1_error) ++ __pyx_t_9 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5789, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { +- if (likely(!__pyx_t_10)) { ++ if (likely(!__pyx_t_9)) { + if (likely(PyList_CheckExact(__pyx_t_6))) { +- if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_6)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_1 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5789, __pyx_L1_error) ++ if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_6)) break; ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_1 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5789, __pyx_L1_error) + #else +- __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5789, __pyx_L1_error) ++ __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5789, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + #endif + } else { +- if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_6)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 5789, __pyx_L1_error) ++ if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_6)) break; ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5789, __pyx_L1_error) + #else +- __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5789, __pyx_L1_error) ++ __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5789, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + #endif + } + } else { +- __pyx_t_1 = __pyx_t_10(__pyx_t_6); ++ __pyx_t_1 = __pyx_t_9(__pyx_t_6); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { +@@ -74609,7 +70644,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + } + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -74619,7 +70654,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 5789, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); +@@ -74650,21 +70685,21 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + } else { + Py_ssize_t index = -1; + PyObject** temps[4] = {&__pyx_t_4,&__pyx_t_3,&__pyx_t_2,&__pyx_t_7}; +- __pyx_t_13 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5789, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_13); ++ __pyx_t_12 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5789, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- __pyx_t_8 = Py_TYPE(__pyx_t_13)->tp_iternext; ++ __pyx_t_8 = Py_TYPE(__pyx_t_12)->tp_iternext; + for (index=0; index < 4; index++) { +- PyObject* item = __pyx_t_8(__pyx_t_13); if (unlikely(!item)) goto __pyx_L20_unpacking_failed; ++ PyObject* item = __pyx_t_8(__pyx_t_12); if (unlikely(!item)) goto __pyx_L20_unpacking_failed; + __Pyx_GOTREF(item); + *(temps[index]) = item; + } +- if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_13), 4) < 0) __PYX_ERR(0, 5789, __pyx_L1_error) ++ if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_12), 4) < 0) __PYX_ERR(0, 5789, __pyx_L1_error) + __pyx_t_8 = NULL; +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; ++ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + goto __pyx_L21_unpacking_done; + __pyx_L20_unpacking_failed:; +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; ++ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(0, 5789, __pyx_L1_error) +@@ -74689,34 +70724,34 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5791, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (likely(PyList_CheckExact(__pyx_v_count)) || PyTuple_CheckExact(__pyx_v_count)) { +- __pyx_t_7 = __pyx_v_count; __Pyx_INCREF(__pyx_t_7); __pyx_t_14 = 0; +- __pyx_t_15 = NULL; ++ __pyx_t_7 = __pyx_v_count; __Pyx_INCREF(__pyx_t_7); __pyx_t_13 = 0; ++ __pyx_t_14 = NULL; + } else { +- __pyx_t_14 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_count); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5791, __pyx_L1_error) ++ __pyx_t_13 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_count); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5791, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); +- __pyx_t_15 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5791, __pyx_L1_error) ++ __pyx_t_14 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5791, __pyx_L1_error) + } + for (;;) { +- if (likely(!__pyx_t_15)) { ++ if (likely(!__pyx_t_14)) { + if (likely(PyList_CheckExact(__pyx_t_7))) { +- if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_7)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_2 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_14); __Pyx_INCREF(__pyx_t_2); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5791, __pyx_L1_error) ++ if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_7)) break; ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_2 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_13); __Pyx_INCREF(__pyx_t_2); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 5791, __pyx_L1_error) + #else +- __pyx_t_2 = PySequence_ITEM(__pyx_t_7, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5791, __pyx_L1_error) ++ __pyx_t_2 = PySequence_ITEM(__pyx_t_7, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5791, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #endif + } else { +- if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_7)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_14); __Pyx_INCREF(__pyx_t_2); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5791, __pyx_L1_error) ++ if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_7)) break; ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_13); __Pyx_INCREF(__pyx_t_2); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 5791, __pyx_L1_error) + #else +- __pyx_t_2 = PySequence_ITEM(__pyx_t_7, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5791, __pyx_L1_error) ++ __pyx_t_2 = PySequence_ITEM(__pyx_t_7, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5791, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #endif + } + } else { +- __pyx_t_2 = __pyx_t_15(__pyx_t_7); ++ __pyx_t_2 = __pyx_t_14(__pyx_t_7); + if (unlikely(!__pyx_t_2)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { +@@ -74751,7 +70786,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -74764,33 +70799,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_stride); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_stride}; +- __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5792, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_stride}; +- __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5792, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- } else +- #endif +- { +- __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5792, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; +- __Pyx_INCREF(__pyx_v_stride); +- __Pyx_GIVEREF(__pyx_v_stride); +- PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_stride); +- __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5792, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } ++ __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5792, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; ++ __Pyx_INCREF(__pyx_v_stride); ++ __Pyx_GIVEREF(__pyx_v_stride); ++ PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_stride); ++ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5792, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = PyObject_RichCompare(__pyx_t_7, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5792, __pyx_L1_error) +@@ -74799,7 +70816,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); +@@ -74816,9 +70833,9 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5792, __pyx_L1_error) ++ __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 5792, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- if (__pyx_t_11) { ++ if (__pyx_t_10) { + + /* "netCDF4/_netCDF4.pyx":5793 + * count = [abs(cnt) for cnt in count] +@@ -74926,35 +70943,35 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { +- __pyx_t_7 = __pyx_t_1; __Pyx_INCREF(__pyx_t_7); __pyx_t_14 = 0; +- __pyx_t_15 = NULL; ++ __pyx_t_7 = __pyx_t_1; __Pyx_INCREF(__pyx_t_7); __pyx_t_13 = 0; ++ __pyx_t_14 = NULL; + } else { +- __pyx_t_14 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5807, __pyx_L1_error) ++ __pyx_t_13 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5807, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); +- __pyx_t_15 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5807, __pyx_L1_error) ++ __pyx_t_14 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5807, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { +- if (likely(!__pyx_t_15)) { ++ if (likely(!__pyx_t_14)) { + if (likely(PyList_CheckExact(__pyx_t_7))) { +- if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_7)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_1 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_14); __Pyx_INCREF(__pyx_t_1); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5807, __pyx_L1_error) ++ if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_7)) break; ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_1 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 5807, __pyx_L1_error) + #else +- __pyx_t_1 = PySequence_ITEM(__pyx_t_7, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5807, __pyx_L1_error) ++ __pyx_t_1 = PySequence_ITEM(__pyx_t_7, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5807, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + #endif + } else { +- if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_7)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_14); __Pyx_INCREF(__pyx_t_1); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5807, __pyx_L1_error) ++ if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_7)) break; ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 5807, __pyx_L1_error) + #else +- __pyx_t_1 = PySequence_ITEM(__pyx_t_7, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5807, __pyx_L1_error) ++ __pyx_t_1 = PySequence_ITEM(__pyx_t_7, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5807, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + #endif + } + } else { +- __pyx_t_1 = __pyx_t_15(__pyx_t_7); ++ __pyx_t_1 = __pyx_t_14(__pyx_t_7); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { +@@ -74998,7 +71015,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5809, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- __pyx_t_16 = __Pyx_PyList_Extend(__pyx_v_idx, __pyx_t_1); if (unlikely(__pyx_t_16 == -1)) __PYX_ERR(0, 5809, __pyx_L1_error) ++ __pyx_t_15 = __Pyx_PyList_Extend(__pyx_v_idx, __pyx_t_1); if (unlikely(__pyx_t_15 == -1)) __PYX_ERR(0, 5809, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "netCDF4/_netCDF4.pyx":5810 +@@ -75018,7 +71035,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_DECREF(__pyx_t_1); + __pyx_t_1 = __pyx_temp; + } +- __pyx_t_16 = __Pyx_PyList_Extend(__pyx_v_vid, __pyx_t_1); if (unlikely(__pyx_t_16 == -1)) __PYX_ERR(0, 5810, __pyx_L1_error) ++ __pyx_t_15 = __Pyx_PyList_Extend(__pyx_v_vid, __pyx_t_1); if (unlikely(__pyx_t_15 == -1)) __PYX_ERR(0, 5810, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "netCDF4/_netCDF4.pyx":5807 +@@ -75041,49 +71058,31 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_zip); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5814, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; +- __pyx_t_5 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { ++ __pyx_t_13 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); +- __pyx_t_5 = 1; ++ __pyx_t_13 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_idx, __pyx_v_vid}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5814, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { +- PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_idx, __pyx_v_vid}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5814, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- } else +- #endif +- { +- __pyx_t_2 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5814, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- if (__pyx_t_4) { +- __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL; +- } +- __Pyx_INCREF(__pyx_v_idx); +- __Pyx_GIVEREF(__pyx_v_idx); +- PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_5, __pyx_v_idx); +- __Pyx_INCREF(__pyx_v_vid); +- __Pyx_GIVEREF(__pyx_v_vid); +- PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_5, __pyx_v_vid); +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5814, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; ++ __pyx_t_2 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5814, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ if (__pyx_t_4) { ++ __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL; + } ++ __Pyx_INCREF(__pyx_v_idx); ++ __Pyx_GIVEREF(__pyx_v_idx); ++ PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_13, __pyx_v_idx); ++ __Pyx_INCREF(__pyx_v_vid); ++ __Pyx_GIVEREF(__pyx_v_vid); ++ PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_13, __pyx_v_vid); ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5814, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = PySequence_List(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5814, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); +@@ -75094,7 +71093,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __pyx_t_3 = PySlice_New(__pyx_v_sta, __pyx_v_stop, __pyx_v_step); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5814, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -75108,35 +71107,15 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_7); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_t_3}; +- __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5814, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_t_3}; +- __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5814, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } else +- #endif +- { +- __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5814, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; +- __Pyx_GIVEREF(__pyx_t_3); +- PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_t_3); +- __pyx_t_3 = 0; +- __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5814, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } ++ __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5814, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; ++ __Pyx_GIVEREF(__pyx_t_3); ++ PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_t_3); ++ __pyx_t_3 = 0; ++ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5814, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF_SET(__pyx_v_lst, __pyx_t_7); +@@ -75164,8 +71143,8 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + * s = slice(start[n],start[n] + count[n] * stride[n], stride[n]) + * newSlice.append(s) + */ +- __pyx_t_14 = PyObject_Length(__pyx_v_start); if (unlikely(__pyx_t_14 == -1)) __PYX_ERR(0, 5818, __pyx_L1_error) +- __pyx_t_7 = PyInt_FromSsize_t(__pyx_t_14); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5818, __pyx_L1_error) ++ __pyx_t_13 = PyObject_Length(__pyx_v_start); if (unlikely(__pyx_t_13 == -1)) __PYX_ERR(0, 5818, __pyx_L1_error) ++ __pyx_t_7 = PyInt_FromSsize_t(__pyx_t_13); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); +@@ -75179,35 +71158,35 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) { +- __pyx_t_1 = __pyx_t_7; __Pyx_INCREF(__pyx_t_1); __pyx_t_14 = 0; +- __pyx_t_15 = NULL; ++ __pyx_t_1 = __pyx_t_7; __Pyx_INCREF(__pyx_t_1); __pyx_t_13 = 0; ++ __pyx_t_14 = NULL; + } else { +- __pyx_t_14 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5818, __pyx_L1_error) ++ __pyx_t_13 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_15 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5818, __pyx_L1_error) ++ __pyx_t_14 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5818, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + for (;;) { +- if (likely(!__pyx_t_15)) { ++ if (likely(!__pyx_t_14)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { +- if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_14); __Pyx_INCREF(__pyx_t_7); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5818, __pyx_L1_error) ++ if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_1)) break; ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_7); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 5818, __pyx_L1_error) + #else +- __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5818, __pyx_L1_error) ++ __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + } else { +- if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_14); __Pyx_INCREF(__pyx_t_7); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5818, __pyx_L1_error) ++ if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_1)) break; ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_7); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 5818, __pyx_L1_error) + #else +- __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5818, __pyx_L1_error) ++ __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + } + } else { +- __pyx_t_7 = __pyx_t_15(__pyx_t_1); ++ __pyx_t_7 = __pyx_t_14(__pyx_t_1); + if (unlikely(!__pyx_t_7)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { +@@ -75236,21 +71215,21 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = PyObject_GetItem(__pyx_v_stride, __pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5819, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __pyx_t_13 = PyNumber_Multiply(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5819, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_13); ++ __pyx_t_12 = PyNumber_Multiply(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5819, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __pyx_t_2 = PyNumber_Add(__pyx_t_4, __pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5819, __pyx_L1_error) ++ __pyx_t_2 = PyNumber_Add(__pyx_t_4, __pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5819, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; +- __pyx_t_13 = PyObject_GetItem(__pyx_v_stride, __pyx_v_n); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5819, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_13); +- __pyx_t_4 = PySlice_New(__pyx_t_7, __pyx_t_2, __pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5819, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; ++ __pyx_t_12 = PyObject_GetItem(__pyx_v_stride, __pyx_v_n); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5819, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_12); ++ __pyx_t_4 = PySlice_New(__pyx_t_7, __pyx_t_2, __pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5819, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; ++ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_XDECREF_SET(__pyx_v_s, ((PyObject*)__pyx_t_4)); + __pyx_t_4 = 0; + +@@ -75261,7 +71240,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + * + * # Apply the slicing expression to each var in turn, extracting records + */ +- __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_newSlice, __pyx_v_s); if (unlikely(__pyx_t_16 == -1)) __PYX_ERR(0, 5820, __pyx_L1_error) ++ __pyx_t_15 = __Pyx_PyList_Append(__pyx_v_newSlice, __pyx_v_s); if (unlikely(__pyx_t_15 == -1)) __PYX_ERR(0, 5820, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5818 + * # Rebuild the slicing expression for dimensions 1 and ssq. +@@ -75312,35 +71291,35 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { +- __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4); __pyx_t_14 = 0; +- __pyx_t_15 = NULL; ++ __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4); __pyx_t_13 = 0; ++ __pyx_t_14 = NULL; + } else { +- __pyx_t_14 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5826, __pyx_L1_error) ++ __pyx_t_13 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5826, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); +- __pyx_t_15 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5826, __pyx_L1_error) ++ __pyx_t_14 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5826, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { +- if (likely(!__pyx_t_15)) { ++ if (likely(!__pyx_t_14)) { + if (likely(PyList_CheckExact(__pyx_t_4))) { +- if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_14); __Pyx_INCREF(__pyx_t_1); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5826, __pyx_L1_error) ++ if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_4)) break; ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 5826, __pyx_L1_error) + #else +- __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5826, __pyx_L1_error) ++ __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5826, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + #endif + } else { +- if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_4)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_14); __Pyx_INCREF(__pyx_t_1); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5826, __pyx_L1_error) ++ if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_4)) break; ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 5826, __pyx_L1_error) + #else +- __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5826, __pyx_L1_error) ++ __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5826, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + #endif + } + } else { +- __pyx_t_1 = __pyx_t_15(__pyx_t_4); ++ __pyx_t_1 = __pyx_t_14(__pyx_t_4); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { +@@ -75364,34 +71343,34 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5828, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (likely(PyList_CheckExact(__pyx_v_lst)) || PyTuple_CheckExact(__pyx_v_lst)) { +- __pyx_t_13 = __pyx_v_lst; __Pyx_INCREF(__pyx_t_13); __pyx_t_17 = 0; +- __pyx_t_18 = NULL; ++ __pyx_t_12 = __pyx_v_lst; __Pyx_INCREF(__pyx_t_12); __pyx_t_16 = 0; ++ __pyx_t_17 = NULL; + } else { +- __pyx_t_17 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_v_lst); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5828, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_13); +- __pyx_t_18 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5828, __pyx_L1_error) ++ __pyx_t_16 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_v_lst); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5828, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_12); ++ __pyx_t_17 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5828, __pyx_L1_error) + } + for (;;) { +- if (likely(!__pyx_t_18)) { +- if (likely(PyList_CheckExact(__pyx_t_13))) { +- if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_13)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_2 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_17); __Pyx_INCREF(__pyx_t_2); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5828, __pyx_L1_error) ++ if (likely(!__pyx_t_17)) { ++ if (likely(PyList_CheckExact(__pyx_t_12))) { ++ if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_12)) break; ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_2 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_16); __Pyx_INCREF(__pyx_t_2); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 5828, __pyx_L1_error) + #else +- __pyx_t_2 = PySequence_ITEM(__pyx_t_13, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5828, __pyx_L1_error) ++ __pyx_t_2 = PySequence_ITEM(__pyx_t_12, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5828, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #endif + } else { +- if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_13)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_17); __Pyx_INCREF(__pyx_t_2); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5828, __pyx_L1_error) ++ if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_12)) break; ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_16); __Pyx_INCREF(__pyx_t_2); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 5828, __pyx_L1_error) + #else +- __pyx_t_2 = PySequence_ITEM(__pyx_t_13, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5828, __pyx_L1_error) ++ __pyx_t_2 = PySequence_ITEM(__pyx_t_12, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5828, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #endif + } + } else { +- __pyx_t_2 = __pyx_t_18(__pyx_t_13); ++ __pyx_t_2 = __pyx_t_17(__pyx_t_12); + if (unlikely(!__pyx_t_2)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { +@@ -75404,7 +71383,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + } + if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { + PyObject* sequence = __pyx_t_2; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -75414,7 +71393,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 5828, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); +@@ -75433,20 +71412,20 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } else { + Py_ssize_t index = -1; +- __pyx_t_19 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5828, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_19); ++ __pyx_t_18 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5828, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_18); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __pyx_t_8 = Py_TYPE(__pyx_t_19)->tp_iternext; +- index = 0; __pyx_t_7 = __pyx_t_8(__pyx_t_19); if (unlikely(!__pyx_t_7)) goto __pyx_L33_unpacking_failed; ++ __pyx_t_8 = Py_TYPE(__pyx_t_18)->tp_iternext; ++ index = 0; __pyx_t_7 = __pyx_t_8(__pyx_t_18); if (unlikely(!__pyx_t_7)) goto __pyx_L33_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); +- index = 1; __pyx_t_3 = __pyx_t_8(__pyx_t_19); if (unlikely(!__pyx_t_3)) goto __pyx_L33_unpacking_failed; ++ index = 1; __pyx_t_3 = __pyx_t_8(__pyx_t_18); if (unlikely(!__pyx_t_3)) goto __pyx_L33_unpacking_failed; + __Pyx_GOTREF(__pyx_t_3); +- if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_19), 2) < 0) __PYX_ERR(0, 5828, __pyx_L1_error) ++ if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_18), 2) < 0) __PYX_ERR(0, 5828, __pyx_L1_error) + __pyx_t_8 = NULL; +- __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; ++ __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + goto __pyx_L34_unpacking_done; + __pyx_L33_unpacking_failed:; +- __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; ++ __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(0, 5828, __pyx_L1_error) +@@ -75457,13 +71436,13 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_XDECREF_SET(__pyx_v_numv, __pyx_t_3); + __pyx_t_3 = 0; + __pyx_t_2 = PyObject_RichCompare(__pyx_v_numv, __pyx_v_n, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5828, __pyx_L1_error) +- __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5828, __pyx_L1_error) ++ __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 5828, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- if (__pyx_t_11) { ++ if (__pyx_t_10) { + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_v_i))) __PYX_ERR(0, 5828, __pyx_L1_error) + } + } +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; ++ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF_SET(__pyx_v_idx, ((PyObject*)__pyx_t_1)); + __pyx_t_1 = 0; + +@@ -75474,8 +71453,8 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + * # Rebuild slicing expression for dimension 0. + * newSlice[0] = slice(idx[0], idx[-1] + 1, step) + */ +- __pyx_t_11 = (__pyx_v_idx != Py_None) && (PyList_GET_SIZE(__pyx_v_idx) != 0); +- if (__pyx_t_11) { ++ __pyx_t_10 = (__pyx_v_idx != Py_None) && (PyList_GET_SIZE(__pyx_v_idx) != 0); ++ if (__pyx_t_10) { + + /* "netCDF4/_netCDF4.pyx":5831 + * if idx: +@@ -75486,17 +71465,17 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + */ + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_idx, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5831, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_13 = __Pyx_GetItemInt_List(__pyx_v_idx, -1L, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5831, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_13); +- __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_t_13, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5831, __pyx_L1_error) ++ __pyx_t_12 = __Pyx_GetItemInt_List(__pyx_v_idx, -1L, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5831, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_12); ++ __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_t_12, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5831, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; +- __pyx_t_13 = PySlice_New(__pyx_t_1, __pyx_t_2, __pyx_v_step); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5831, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_13); ++ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; ++ __pyx_t_12 = PySlice_New(__pyx_t_1, __pyx_t_2, __pyx_v_step); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5831, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- if (unlikely(__Pyx_SetItemInt(__pyx_v_newSlice, 0, __pyx_t_13, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 5831, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; ++ if (unlikely(__Pyx_SetItemInt(__pyx_v_newSlice, 0, __pyx_t_12, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 5831, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + + /* "netCDF4/_netCDF4.pyx":5834 + * # Extract records from the var, and append them to a list +@@ -75515,56 +71494,34 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __pyx_t_1 = PyList_AsTuple(__pyx_v_newSlice); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5834, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = NULL; +- __pyx_t_5 = 0; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ __pyx_t_16 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); +- __pyx_t_5 = 1; ++ __pyx_t_16 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_3, __pyx_t_1}; +- __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5834, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_13); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_3, __pyx_t_1}; +- __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5834, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_13); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } else +- #endif +- { +- __pyx_t_19 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5834, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_19); +- if (__pyx_t_7) { +- __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_7); __pyx_t_7 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_3); +- PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_5, __pyx_t_3); +- __Pyx_GIVEREF(__pyx_t_1); +- PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_5, __pyx_t_1); +- __pyx_t_3 = 0; +- __pyx_t_1 = 0; +- __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_19, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5834, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_13); +- __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; ++ __pyx_t_18 = PyTuple_New(2+__pyx_t_16); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5834, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_18); ++ if (__pyx_t_7) { ++ __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_7); __pyx_t_7 = NULL; + } ++ __Pyx_GIVEREF(__pyx_t_3); ++ PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_16, __pyx_t_3); ++ __Pyx_GIVEREF(__pyx_t_1); ++ PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_16, __pyx_t_1); ++ __pyx_t_3 = 0; ++ __pyx_t_1 = 0; ++ __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_18, NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5834, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_12); ++ __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_XDECREF_SET(__pyx_v_dat, __pyx_t_13); +- __pyx_t_13 = 0; ++ __Pyx_XDECREF_SET(__pyx_v_dat, __pyx_t_12); ++ __pyx_t_12 = 0; + + /* "netCDF4/_netCDF4.pyx":5835 + * # of arrays. +@@ -75575,63 +71532,45 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + */ + __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_ma); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5835, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_isMA); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5835, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_19); ++ __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_isMA); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5835, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_18); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_19))) { +- __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_19); ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_18))) { ++ __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_18); + if (likely(__pyx_t_2)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19); ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_19, function); ++ __Pyx_DECREF_SET(__pyx_t_18, function); + } + } + if (!__pyx_t_2) { +- __pyx_t_13 = __Pyx_PyObject_CallOneArg(__pyx_t_19, __pyx_v_dat); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5835, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_13); ++ __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_t_18, __pyx_v_dat); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5835, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_12); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_19)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_dat}; +- __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_19, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5835, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_13); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_19)) { +- PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_dat}; +- __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_19, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5835, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- __Pyx_GOTREF(__pyx_t_13); +- } else +- #endif +- { +- __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5835, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __pyx_t_2 = NULL; +- __Pyx_INCREF(__pyx_v_dat); +- __Pyx_GIVEREF(__pyx_v_dat); +- PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_dat); +- __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_1, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5835, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_13); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } ++ __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5835, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __pyx_t_2 = NULL; ++ __Pyx_INCREF(__pyx_v_dat); ++ __Pyx_GIVEREF(__pyx_v_dat); ++ PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_dat); ++ __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_1, NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5835, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_12); ++ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } +- __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; +- __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5835, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; +- if (__pyx_t_12) { ++ __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; ++ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5835, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; ++ if (__pyx_t_11) { + } else { +- __pyx_t_11 = __pyx_t_12; ++ __pyx_t_10 = __pyx_t_11; + goto __pyx_L38_bool_binop_done; + } +- __pyx_t_12 = ((!(__pyx_v_ismasked != 0)) != 0); +- __pyx_t_11 = __pyx_t_12; ++ __pyx_t_11 = ((!(__pyx_v_ismasked != 0)) != 0); ++ __pyx_t_10 = __pyx_t_11; + __pyx_L38_bool_binop_done:; +- if (__pyx_t_11) { ++ if (__pyx_t_10) { + + /* "netCDF4/_netCDF4.pyx":5836 + * dat = Variable.__getitem__(self._recVar[n],tuple(newSlice)) +@@ -75649,10 +71588,10 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + * lstArr.append(dat) + * if ismasked: + */ +- __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_dat, __pyx_n_s_fill_value); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5837, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_13); +- __Pyx_XDECREF_SET(__pyx_v_fill_value, __pyx_t_13); +- __pyx_t_13 = 0; ++ __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_dat, __pyx_n_s_fill_value); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5837, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_12); ++ __Pyx_XDECREF_SET(__pyx_v_fill_value, __pyx_t_12); ++ __pyx_t_12 = 0; + + /* "netCDF4/_netCDF4.pyx":5835 + * # of arrays. +@@ -75670,7 +71609,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + * if ismasked: + * lstArr = ma.concatenate(lstArr) + */ +- __pyx_t_16 = __Pyx_PyObject_Append(__pyx_v_lstArr, __pyx_v_dat); if (unlikely(__pyx_t_16 == -1)) __PYX_ERR(0, 5838, __pyx_L1_error) ++ __pyx_t_15 = __Pyx_PyObject_Append(__pyx_v_lstArr, __pyx_v_dat); if (unlikely(__pyx_t_15 == -1)) __PYX_ERR(0, 5838, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5829 + * # Get the list of indices for variable 'n'. +@@ -75698,8 +71637,8 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + * lstArr = ma.concatenate(lstArr) + * else: + */ +- __pyx_t_11 = (__pyx_v_ismasked != 0); +- if (__pyx_t_11) { ++ __pyx_t_10 = (__pyx_v_ismasked != 0); ++ if (__pyx_t_10) { + + /* "netCDF4/_netCDF4.pyx":5840 + * lstArr.append(dat) +@@ -75708,54 +71647,36 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + * else: + * lstArr = numpy.concatenate(lstArr) + */ +- __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_ma); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5840, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_13); +- __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5840, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_19); +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; +- __pyx_t_13 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_19))) { +- __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_19); +- if (likely(__pyx_t_13)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19); +- __Pyx_INCREF(__pyx_t_13); ++ __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_ma); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5840, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_12); ++ __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5840, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_18); ++ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; ++ __pyx_t_12 = NULL; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_18))) { ++ __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_18); ++ if (likely(__pyx_t_12)) { ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18); ++ __Pyx_INCREF(__pyx_t_12); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_19, function); ++ __Pyx_DECREF_SET(__pyx_t_18, function); + } + } +- if (!__pyx_t_13) { +- __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_19, __pyx_v_lstArr); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5840, __pyx_L1_error) ++ if (!__pyx_t_12) { ++ __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_18, __pyx_v_lstArr); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5840, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_19)) { +- PyObject *__pyx_temp[2] = {__pyx_t_13, __pyx_v_lstArr}; +- __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_19, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5840, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_19)) { +- PyObject *__pyx_temp[2] = {__pyx_t_13, __pyx_v_lstArr}; +- __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_19, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5840, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- { +- __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5840, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13); __pyx_t_13 = NULL; +- __Pyx_INCREF(__pyx_v_lstArr); +- __Pyx_GIVEREF(__pyx_v_lstArr); +- PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_lstArr); +- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5840, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- } ++ __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5840, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_12); __pyx_t_12 = NULL; ++ __Pyx_INCREF(__pyx_v_lstArr); ++ __Pyx_GIVEREF(__pyx_v_lstArr); ++ PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_lstArr); ++ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5840, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } +- __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; ++ __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_DECREF_SET(__pyx_v_lstArr, __pyx_t_4); + __pyx_t_4 = 0; + +@@ -75777,52 +71698,34 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + * # sometimes there are legitimate singleton dimensions, in which + */ + /*else*/ { +- __pyx_t_19 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5842, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_19); +- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5842, __pyx_L1_error) ++ __pyx_t_18 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5842, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_18); ++ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5842, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; +- __pyx_t_19 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { +- __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_1); +- if (likely(__pyx_t_19)) { ++ __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; ++ __pyx_t_18 = NULL; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_1))) { ++ __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_1); ++ if (likely(__pyx_t_18)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +- __Pyx_INCREF(__pyx_t_19); ++ __Pyx_INCREF(__pyx_t_18); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + } + } +- if (!__pyx_t_19) { ++ if (!__pyx_t_18) { + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_lstArr); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5842, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_19, __pyx_v_lstArr}; +- __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5842, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_19, __pyx_v_lstArr}; +- __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5842, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; +- __Pyx_GOTREF(__pyx_t_4); +- } else +- #endif +- { +- __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5842, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_13); +- __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_19); __pyx_t_19 = NULL; +- __Pyx_INCREF(__pyx_v_lstArr); +- __Pyx_GIVEREF(__pyx_v_lstArr); +- PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_v_lstArr); +- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_13, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5842, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_4); +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; +- } ++ __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5842, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_12); ++ __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_18); __pyx_t_18 = NULL; ++ __Pyx_INCREF(__pyx_v_lstArr); ++ __Pyx_GIVEREF(__pyx_v_lstArr); ++ PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_v_lstArr); ++ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_12, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5842, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_4); ++ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_lstArr, __pyx_t_4); +@@ -75841,64 +71744,44 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5843, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_13 = PyObject_RichCompare(__pyx_t_4, __pyx_t_1, Py_NE); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5843, __pyx_L1_error) ++ __pyx_t_12 = PyObject_RichCompare(__pyx_t_4, __pyx_t_1, Py_NE); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5843, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5843, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; +- if (__pyx_t_11) { ++ __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 5843, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; ++ if (__pyx_t_10) { + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_astype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5843, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_lstArr, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5843, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); +- __pyx_t_19 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { +- __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_1); +- if (likely(__pyx_t_19)) { ++ __pyx_t_18 = NULL; ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { ++ __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_1); ++ if (likely(__pyx_t_18)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +- __Pyx_INCREF(__pyx_t_19); ++ __Pyx_INCREF(__pyx_t_18); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + } + } +- if (!__pyx_t_19) { +- __pyx_t_13 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5843, __pyx_L1_error) ++ if (!__pyx_t_18) { ++ __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5843, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_GOTREF(__pyx_t_13); ++ __Pyx_GOTREF(__pyx_t_12); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_19, __pyx_t_4}; +- __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5843, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; +- __Pyx_GOTREF(__pyx_t_13); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_19, __pyx_t_4}; +- __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5843, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; +- __Pyx_GOTREF(__pyx_t_13); +- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- } else +- #endif +- { +- __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5843, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_19); __pyx_t_19 = NULL; +- __Pyx_GIVEREF(__pyx_t_4); +- PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_t_4); +- __pyx_t_4 = 0; +- __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5843, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_13); +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } ++ __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5843, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_18); __pyx_t_18 = NULL; ++ __Pyx_GIVEREF(__pyx_t_4); ++ PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_t_4); ++ __pyx_t_4 = 0; ++ __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5843, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_12); ++ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_13); +- __pyx_t_13 = 0; ++ __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_12); ++ __pyx_t_12 = 0; + } + + /* "netCDF4/_netCDF4.pyx":5847 +@@ -75911,10 +71794,10 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign +- __Pyx_ExceptionSave(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); ++ __Pyx_ExceptionSave(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21); ++ __Pyx_XGOTREF(__pyx_t_19); + __Pyx_XGOTREF(__pyx_t_20); + __Pyx_XGOTREF(__pyx_t_21); +- __Pyx_XGOTREF(__pyx_t_22); + /*try:*/ { + + /* "netCDF4/_netCDF4.pyx":5848 +@@ -75927,7 +71810,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_lstArr, __pyx_n_s_squeeze); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5848, __pyx_L42_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -75937,18 +71820,18 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + } + } + if (__pyx_t_2) { +- __pyx_t_13 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5848, __pyx_L42_error) ++ __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5848, __pyx_L42_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } else { +- __pyx_t_13 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5848, __pyx_L42_error) ++ __pyx_t_12 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5848, __pyx_L42_error) + } +- __Pyx_GOTREF(__pyx_t_13); ++ __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PySequence_Tuple(__pyx_v_ind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5848, __pyx_L42_error) + __Pyx_GOTREF(__pyx_t_1); +- if (unlikely(PyObject_SetItem(__pyx_v_data, __pyx_t_1, __pyx_t_13) < 0)) __PYX_ERR(0, 5848, __pyx_L42_error) ++ if (unlikely(PyObject_SetItem(__pyx_v_data, __pyx_t_1, __pyx_t_12) < 0)) __PYX_ERR(0, 5848, __pyx_L42_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; ++ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + + /* "netCDF4/_netCDF4.pyx":5847 + * # case the array shapes won't conform. If so, a ValueError will +@@ -75958,19 +71841,19 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + * except ValueError: + */ + } ++ __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; + __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; +- __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; + goto __pyx_L49_try_end; + __pyx_L42_error:; + __Pyx_PyThreadState_assign + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; ++ __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +- __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; ++ __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + + /* "netCDF4/_netCDF4.pyx":5849 + * try: +@@ -75979,11 +71862,11 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + * data[tuple(ind)] = lstArr + * + */ +- __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ValueError); +- if (__pyx_t_5) { ++ __pyx_t_22 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ValueError); ++ if (__pyx_t_22) { + __Pyx_AddTraceback("netCDF4._netCDF4._Variable.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); +- if (__Pyx_GetException(&__pyx_t_13, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(0, 5849, __pyx_L44_except_error) +- __Pyx_GOTREF(__pyx_t_13); ++ if (__Pyx_GetException(&__pyx_t_12, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(0, 5849, __pyx_L44_except_error) ++ __Pyx_GOTREF(__pyx_t_12); + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_t_2); + +@@ -75998,7 +71881,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_GOTREF(__pyx_t_4); + if (unlikely(PyObject_SetItem(__pyx_v_data, __pyx_t_4, __pyx_v_lstArr) < 0)) __PYX_ERR(0, 5850, __pyx_L44_except_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; ++ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + goto __pyx_L43_exception_handled; +@@ -76014,17 +71897,17 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + * except ValueError: + */ + __Pyx_PyThreadState_assign ++ __Pyx_XGIVEREF(__pyx_t_19); + __Pyx_XGIVEREF(__pyx_t_20); + __Pyx_XGIVEREF(__pyx_t_21); +- __Pyx_XGIVEREF(__pyx_t_22); +- __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22); ++ __Pyx_ExceptionReset(__pyx_t_19, __pyx_t_20, __pyx_t_21); + goto __pyx_L1_error; + __pyx_L43_exception_handled:; + __Pyx_PyThreadState_assign ++ __Pyx_XGIVEREF(__pyx_t_19); + __Pyx_XGIVEREF(__pyx_t_20); + __Pyx_XGIVEREF(__pyx_t_21); +- __Pyx_XGIVEREF(__pyx_t_22); +- __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22); ++ __Pyx_ExceptionReset(__pyx_t_19, __pyx_t_20, __pyx_t_21); + __pyx_L49_try_end:; + } + +@@ -76066,7 +71949,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -76079,71 +71962,53 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5856, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_data}; +- __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5856, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { +- PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_data}; +- __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5856, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- } else +- #endif +- { +- __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5856, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_13); +- __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_6); __pyx_t_6 = NULL; +- __Pyx_INCREF(__pyx_v_data); +- __Pyx_GIVEREF(__pyx_v_data); +- PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_v_data); +- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_13, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5856, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; +- } ++ __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5856, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_12); ++ __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_6); __pyx_t_6 = NULL; ++ __Pyx_INCREF(__pyx_v_data); ++ __Pyx_GIVEREF(__pyx_v_data); ++ PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_v_data); ++ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_12, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5856, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5856, __pyx_L1_error) ++ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5856, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- if (__pyx_t_12) { ++ if (__pyx_t_11) { + } else { +- __pyx_t_11 = __pyx_t_12; ++ __pyx_t_10 = __pyx_t_11; + goto __pyx_L53_bool_binop_done; + } + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_mask); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5856, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_any); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5856, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_13); ++ __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_any); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5856, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) { +- __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_13); ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_12))) { ++ __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_12); + if (likely(__pyx_t_1)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_13, function); ++ __Pyx_DECREF_SET(__pyx_t_12, function); + } + } + if (__pyx_t_1) { +- __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5856, __pyx_L1_error) ++ __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5856, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else { +- __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5856, __pyx_L1_error) ++ __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5856, __pyx_L1_error) + } + __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; +- __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5856, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; ++ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5856, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __pyx_t_23 = ((!__pyx_t_12) != 0); +- __pyx_t_11 = __pyx_t_23; ++ __pyx_t_23 = ((!__pyx_t_11) != 0); ++ __pyx_t_10 = __pyx_t_23; + __pyx_L53_bool_binop_done:; +- if (__pyx_t_11) { ++ if (__pyx_t_10) { + + /* "netCDF4/_netCDF4.pyx":5857 + * # if no masked elements, return numpy array. +@@ -76152,26 +72017,26 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + * + * return data + */ +- __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_filled); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5857, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_13); ++ __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_filled); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5857, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_12); + __pyx_t_1 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) { +- __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_13); ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_12))) { ++ __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_12); + if (likely(__pyx_t_1)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_13, function); ++ __Pyx_DECREF_SET(__pyx_t_12, function); + } + } + if (__pyx_t_1) { +- __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5857, __pyx_L1_error) ++ __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5857, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else { +- __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5857, __pyx_L1_error) ++ __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5857, __pyx_L1_error) + } + __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; ++ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_2); + __pyx_t_2 = 0; + +@@ -76212,8 +72077,8 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_9_Variable_20__getitem__(CYTHON_UNU + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); +- __Pyx_XDECREF(__pyx_t_13); +- __Pyx_XDECREF(__pyx_t_19); ++ __Pyx_XDECREF(__pyx_t_12); ++ __Pyx_XDECREF(__pyx_t_18); + __Pyx_AddTraceback("netCDF4._netCDF4._Variable.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; +@@ -76353,9 +72218,9 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_6MFTime___init__(CYTHON_UNUSED PyOb + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_t_9; + int __pyx_t_10; +- int __pyx_t_11; ++ PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; +- PyObject *__pyx_t_13 = NULL; ++ Py_ssize_t __pyx_t_13; + PyObject *__pyx_t_14 = NULL; + __Pyx_RefNannySetupContext("__init__", 0); + +@@ -76393,7 +72258,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_6MFTime___init__(CYTHON_UNUSED PyOb + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); +@@ -76423,7 +72288,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_6MFTime___init__(CYTHON_UNUSED PyOb + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5913, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5913, __pyx_L1_error) +@@ -76431,7 +72296,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_6MFTime___init__(CYTHON_UNUSED PyOb + #endif + } else { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5913, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5913, __pyx_L1_error) +@@ -76452,7 +72317,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_6MFTime___init__(CYTHON_UNUSED PyOb + } + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -76462,7 +72327,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_6MFTime___init__(CYTHON_UNUSED PyOb + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 5913, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); +@@ -76549,7 +72414,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_6MFTime___init__(CYTHON_UNUSED PyOb + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5917, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5917, __pyx_L1_error) +@@ -76557,7 +72422,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_6MFTime___init__(CYTHON_UNUSED PyOb + #endif + } else { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5917, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5917, __pyx_L1_error) +@@ -76646,7 +72511,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_6MFTime___init__(CYTHON_UNUSED PyOb + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_6))) { + if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_6)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_3 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5922, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5922, __pyx_L1_error) +@@ -76654,7 +72519,7 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_6MFTime___init__(CYTHON_UNUSED PyOb + #endif + } else { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_6)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5922, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5922, __pyx_L1_error) +@@ -76763,56 +72628,34 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_6MFTime___init__(CYTHON_UNUSED PyOb + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calendar); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5930, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = NULL; +- __pyx_t_11 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { ++ __pyx_t_4 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); +- __pyx_t_11 = 1; ++ __pyx_t_4 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_ref_date, __pyx_t_3, __pyx_t_2}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5930, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { +- PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_ref_date, __pyx_t_3, __pyx_t_2}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5930, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } else +- #endif +- { +- __pyx_t_12 = PyTuple_New(3+__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5930, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- if (__pyx_t_7) { +- __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_7); __pyx_t_7 = NULL; +- } +- __Pyx_INCREF(__pyx_v_ref_date); +- __Pyx_GIVEREF(__pyx_v_ref_date); +- PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_11, __pyx_v_ref_date); +- __Pyx_GIVEREF(__pyx_t_3); +- PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_11, __pyx_t_3); +- __Pyx_GIVEREF(__pyx_t_2); +- PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_11, __pyx_t_2); +- __pyx_t_3 = 0; +- __pyx_t_2 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_12, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5930, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; ++ __pyx_t_11 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5930, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ if (__pyx_t_7) { ++ __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_7); __pyx_t_7 = NULL; + } ++ __Pyx_INCREF(__pyx_v_ref_date); ++ __Pyx_GIVEREF(__pyx_v_ref_date); ++ PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_4, __pyx_v_ref_date); ++ __Pyx_GIVEREF(__pyx_t_3); ++ PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_4, __pyx_t_3); ++ __Pyx_GIVEREF(__pyx_t_2); ++ PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_4, __pyx_t_2); ++ __pyx_t_3 = 0; ++ __pyx_t_2 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5930, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_ref_num = __pyx_t_1; + __pyx_t_1 = 0; +@@ -76826,8 +72669,8 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_6MFTime___init__(CYTHON_UNUSED PyOb + */ + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_numpy); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5934, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); +- __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5934, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); ++ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5934, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_4 = PyObject_Length(__pyx_v_self); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(0, 5934, __pyx_L1_error) + __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5934, __pyx_L1_error) +@@ -76835,54 +72678,32 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_6MFTime___init__(CYTHON_UNUSED PyOb + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_time, __pyx_n_s_dtype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5934, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; +- __pyx_t_11 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { +- __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_12); ++ __pyx_t_4 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_11))) { ++ __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_11); + if (likely(__pyx_t_3)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_12, function); +- __pyx_t_11 = 1; ++ __Pyx_DECREF_SET(__pyx_t_11, function); ++ __pyx_t_4 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_12)) { +- PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_6, __pyx_t_2}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5934, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { +- PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_6, __pyx_t_2}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5934, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- } else +- #endif +- { +- __pyx_t_7 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5934, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_7); +- if (__pyx_t_3) { +- __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3); __pyx_t_3 = NULL; +- } +- __Pyx_GIVEREF(__pyx_t_6); +- PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_11, __pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_2); +- PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_11, __pyx_t_2); +- __pyx_t_6 = 0; +- __pyx_t_2 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5934, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; ++ __pyx_t_7 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5934, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_7); ++ if (__pyx_t_3) { ++ __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3); __pyx_t_3 = NULL; + } +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; ++ __Pyx_GIVEREF(__pyx_t_6); ++ PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_4, __pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_2); ++ PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_4, __pyx_t_2); ++ __pyx_t_6 = 0; ++ __pyx_t_2 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5934, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_MFTime__delta, __pyx_t_1) < 0) __PYX_ERR(0, 5934, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + +@@ -76907,39 +72728,39 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_6MFTime___init__(CYTHON_UNUSED PyOb + */ + __Pyx_INCREF(__pyx_int_0); + __pyx_t_1 = __pyx_int_0; +- __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_recVar); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5937, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- if (likely(PyList_CheckExact(__pyx_t_12)) || PyTuple_CheckExact(__pyx_t_12)) { +- __pyx_t_7 = __pyx_t_12; __Pyx_INCREF(__pyx_t_7); __pyx_t_4 = 0; ++ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_recVar); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5937, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) { ++ __pyx_t_7 = __pyx_t_11; __Pyx_INCREF(__pyx_t_7); __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { +- __pyx_t_4 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5937, __pyx_L1_error) ++ __pyx_t_4 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5937, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_5 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5937, __pyx_L1_error) + } +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_7))) { + if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_7)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_12 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_4); __Pyx_INCREF(__pyx_t_12); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5937, __pyx_L1_error) ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_11 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_4); __Pyx_INCREF(__pyx_t_11); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5937, __pyx_L1_error) + #else +- __pyx_t_12 = PySequence_ITEM(__pyx_t_7, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5937, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); ++ __pyx_t_11 = PySequence_ITEM(__pyx_t_7, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5937, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); + #endif + } else { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_7)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_4); __Pyx_INCREF(__pyx_t_12); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5937, __pyx_L1_error) ++ #if CYTHON_COMPILING_IN_CPYTHON ++ __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_4); __Pyx_INCREF(__pyx_t_11); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5937, __pyx_L1_error) + #else +- __pyx_t_12 = PySequence_ITEM(__pyx_t_7, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5937, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); ++ __pyx_t_11 = PySequence_ITEM(__pyx_t_7, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5937, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); + #endif + } + } else { +- __pyx_t_12 = __pyx_t_5(__pyx_t_7); +- if (unlikely(!__pyx_t_12)) { ++ __pyx_t_11 = __pyx_t_5(__pyx_t_7); ++ if (unlikely(!__pyx_t_11)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); +@@ -76947,17 +72768,17 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_6MFTime___init__(CYTHON_UNUSED PyOb + } + break; + } +- __Pyx_GOTREF(__pyx_t_12); ++ __Pyx_GOTREF(__pyx_t_11); + } +- __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_12); +- __pyx_t_12 = 0; ++ __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_11); ++ __pyx_t_11 = 0; + __Pyx_INCREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); +- __pyx_t_12 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5937, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); ++ __pyx_t_11 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5937, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_1); +- __pyx_t_1 = __pyx_t_12; +- __pyx_t_12 = 0; ++ __pyx_t_1 = __pyx_t_11; ++ __pyx_t_11 = 0; + + /* "netCDF4/_netCDF4.pyx":5938 + * i0 = 0; i1 = 0 +@@ -76966,11 +72787,11 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_6MFTime___init__(CYTHON_UNUSED PyOb + * num = date2num(ref_date, v.units, self.calendar) + * i1 += n + */ +- __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_recLen); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5938, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- __pyx_t_2 = PyObject_GetItem(__pyx_t_12, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5938, __pyx_L1_error) ++ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_recLen); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5938, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ __pyx_t_2 = PyObject_GetItem(__pyx_t_11, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5938, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_XDECREF_SET(__pyx_v_n, __pyx_t_2); + __pyx_t_2 = 0; + +@@ -76981,64 +72802,42 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_6MFTime___init__(CYTHON_UNUSED PyOb + * i1 += n + * self.__delta[i0:i1] = ref_num - num + */ +- __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_date2num); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5939, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); ++ __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_date2num); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5939, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_v, __pyx_n_s_units); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5939, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calendar); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5939, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); +- __pyx_t_13 = NULL; +- __pyx_t_11 = 0; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { +- __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_12); +- if (likely(__pyx_t_13)) { +- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); +- __Pyx_INCREF(__pyx_t_13); ++ __pyx_t_12 = NULL; ++ __pyx_t_13 = 0; ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_11))) { ++ __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11); ++ if (likely(__pyx_t_12)) { ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); ++ __Pyx_INCREF(__pyx_t_12); + __Pyx_INCREF(function); +- __Pyx_DECREF_SET(__pyx_t_12, function); +- __pyx_t_11 = 1; ++ __Pyx_DECREF_SET(__pyx_t_11, function); ++ __pyx_t_13 = 1; + } + } +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_12)) { +- PyObject *__pyx_temp[4] = {__pyx_t_13, __pyx_v_ref_date, __pyx_t_6, __pyx_t_3}; +- __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5939, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { +- PyObject *__pyx_temp[4] = {__pyx_t_13, __pyx_v_ref_date, __pyx_t_6, __pyx_t_3}; +- __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5939, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +- } else +- #endif +- { +- __pyx_t_14 = PyTuple_New(3+__pyx_t_11); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5939, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_14); +- if (__pyx_t_13) { +- __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_13); __pyx_t_13 = NULL; +- } +- __Pyx_INCREF(__pyx_v_ref_date); +- __Pyx_GIVEREF(__pyx_v_ref_date); +- PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_11, __pyx_v_ref_date); +- __Pyx_GIVEREF(__pyx_t_6); +- PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_11, __pyx_t_6); +- __Pyx_GIVEREF(__pyx_t_3); +- PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_11, __pyx_t_3); +- __pyx_t_6 = 0; +- __pyx_t_3 = 0; +- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_14, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5939, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_2); +- __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; ++ __pyx_t_14 = PyTuple_New(3+__pyx_t_13); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5939, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_14); ++ if (__pyx_t_12) { ++ __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_12); __pyx_t_12 = NULL; + } +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; ++ __Pyx_INCREF(__pyx_v_ref_date); ++ __Pyx_GIVEREF(__pyx_v_ref_date); ++ PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_13, __pyx_v_ref_date); ++ __Pyx_GIVEREF(__pyx_t_6); ++ PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_13, __pyx_t_6); ++ __Pyx_GIVEREF(__pyx_t_3); ++ PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_13, __pyx_t_3); ++ __pyx_t_6 = 0; ++ __pyx_t_3 = 0; ++ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_14, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5939, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_XDECREF_SET(__pyx_v_num, __pyx_t_2); + __pyx_t_2 = 0; + +@@ -77063,10 +72862,10 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_6MFTime___init__(CYTHON_UNUSED PyOb + */ + __pyx_t_2 = PyNumber_Subtract(__pyx_v_ref_num, __pyx_v_num); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5941, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_MFTime__delta); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5941, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_12); +- if (__Pyx_PyObject_SetSlice(__pyx_t_12, __pyx_t_2, 0, 0, &__pyx_v_i0, &__pyx_v_i1, NULL, 0, 0, 1) < 0) __PYX_ERR(0, 5941, __pyx_L1_error) +- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; ++ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_MFTime__delta); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5941, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ if (__Pyx_PyObject_SetSlice(__pyx_t_11, __pyx_t_2, 0, 0, &__pyx_v_i0, &__pyx_v_i1, NULL, 0, 0, 1) < 0) __PYX_ERR(0, 5941, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "netCDF4/_netCDF4.pyx":5942 +@@ -77109,8 +72908,8 @@ static PyObject *__pyx_pf_7netCDF4_8_netCDF4_6MFTime___init__(CYTHON_UNUSED PyOb + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); ++ __Pyx_XDECREF(__pyx_t_11); + __Pyx_XDECREF(__pyx_t_12); +- __Pyx_XDECREF(__pyx_t_13); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_AddTraceback("netCDF4._netCDF4.MFTime.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; +@@ -79469,6 +75268,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { + {&__pyx_n_s_UnicodeDecodeError, __pyx_k_UnicodeDecodeError, sizeof(__pyx_k_UnicodeDecodeError), 0, 0, 1, 1}, + {&__pyx_n_s_UnicodeError, __pyx_k_UnicodeError, sizeof(__pyx_k_UnicodeError), 0, 0, 1, 1}, + {&__pyx_kp_s_Unsupported_compound_type_elemen, __pyx_k_Unsupported_compound_type_elemen, sizeof(__pyx_k_Unsupported_compound_type_elemen), 0, 0, 1, 0}, ++ {&__pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_k_Users_jswhit_python_netcdf4_pyt, sizeof(__pyx_k_Users_jswhit_python_netcdf4_pyt), 0, 0, 1, 0}, + {&__pyx_n_s_V, __pyx_k_V, sizeof(__pyx_k_V), 0, 0, 1, 1}, + {&__pyx_kp_s_VLType_dtype, __pyx_k_VLType_dtype, sizeof(__pyx_k_VLType_dtype), 0, 0, 1, 0}, + {&__pyx_kp_s_VLType_is_not_picklable, __pyx_k_VLType_is_not_picklable, sizeof(__pyx_k_VLType_is_not_picklable), 0, 0, 1, 0}, +@@ -79500,7 +75300,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { + {&__pyx_kp_s_Variable_shape, __pyx_k_Variable_shape, sizeof(__pyx_k_Variable_shape), 0, 0, 1, 0}, + {&__pyx_kp_s_Variable_size, __pyx_k_Variable_size, sizeof(__pyx_k_Variable_size), 0, 0, 1, 0}, + {&__pyx_n_s_Variable_typecode, __pyx_k_Variable_typecode, sizeof(__pyx_k_Variable_typecode), 0, 0, 1, 1}, +- {&__pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_k_Volumes_Drobo_python_netcdf4_py, sizeof(__pyx_k_Volumes_Drobo_python_netcdf4_py), 0, 0, 1, 0}, + {&__pyx_kp_s_WARNING_Backwards_incompatible, __pyx_k_WARNING_Backwards_incompatible, sizeof(__pyx_k_WARNING_Backwards_incompatible), 0, 0, 1, 0}, + {&__pyx_kp_s_WARNING_unsupported_Compound_typ, __pyx_k_WARNING_unsupported_Compound_typ, sizeof(__pyx_k_WARNING_unsupported_Compound_typ), 0, 0, 1, 0}, + {&__pyx_kp_s_WARNING_unsupported_Enum_type_sk, __pyx_k_WARNING_unsupported_Enum_type_sk, sizeof(__pyx_k_WARNING_unsupported_Enum_type_sk), 0, 0, 1, 0}, +@@ -81348,7 +77147,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__130 = PyTuple_Pack(4, __pyx_n_s_majorvers, __pyx_n_s_minorvers, __pyx_n_s_releasevers, __pyx_n_s_patchstring); if (unlikely(!__pyx_tuple__130)) __PYX_ERR(0, 958, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__130); + __Pyx_GIVEREF(__pyx_tuple__130); +- __pyx_codeobj__131 = (PyObject*)__Pyx_PyCode_New(0, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__130, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_gethdf5libversion, 958, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__131)) __PYX_ERR(0, 958, __pyx_L1_error) ++ __pyx_codeobj__131 = (PyObject*)__Pyx_PyCode_New(0, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__130, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_gethdf5libversion, 958, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__131)) __PYX_ERR(0, 958, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":968 + * return '%d.%d.%d-%s' % (majorvers,minorvers,releasevers,patchstring) +@@ -81357,7 +77156,7 @@ static int __Pyx_InitCachedConstants(void) { + * """ + * **`getlibversion()`** + */ +- __pyx_codeobj__132 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_getlibversion, 968, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__132)) __PYX_ERR(0, 968, __pyx_L1_error) ++ __pyx_codeobj__132 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_getlibversion, 968, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__132)) __PYX_ERR(0, 968, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":984 + * __has_cdf5__ = HAS_CDF5_FORMAT +@@ -81424,7 +77223,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__138 = PyTuple_Pack(1, __pyx_n_s_format); if (unlikely(!__pyx_tuple__138)) __PYX_ERR(0, 1183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__138); + __Pyx_GIVEREF(__pyx_tuple__138); +- __pyx_codeobj__139 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__138, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_set_default_format, 1183, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__139)) __PYX_ERR(0, 1183, __pyx_L1_error) ++ __pyx_codeobj__139 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__138, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_set_default_format, 1183, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__139)) __PYX_ERR(0, 1183, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5074 + * return pystr # already bytes or unicode? +@@ -81436,7 +77235,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__140 = PyTuple_Pack(1, __pyx_n_s_bytestr); if (unlikely(!__pyx_tuple__140)) __PYX_ERR(0, 5074, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__140); + __Pyx_GIVEREF(__pyx_tuple__140); +- __pyx_codeobj__141 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__140, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_to_ascii, 5074, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__141)) __PYX_ERR(0, 5074, __pyx_L1_error) ++ __pyx_codeobj__141 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__140, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_to_ascii, 5074, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__141)) __PYX_ERR(0, 5074, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5089 + * +@@ -81459,7 +77258,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__143 = PyTuple_Pack(13, __pyx_n_s_timestr, __pyx_n_s_timestr_split, __pyx_n_s_units, __pyx_n_s_n, __pyx_n_s_isostring, __pyx_n_s_year, __pyx_n_s_month, __pyx_n_s_day, __pyx_n_s_hour, __pyx_n_s_minute, __pyx_n_s_second, __pyx_n_s_utc_offset, __pyx_n_s_basedate); if (unlikely(!__pyx_tuple__143)) __PYX_ERR(0, 5091, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__143); + __Pyx_GIVEREF(__pyx_tuple__143); +- __pyx_codeobj__144 = (PyObject*)__Pyx_PyCode_New(1, 0, 13, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__143, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_dateparse, 5091, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__144)) __PYX_ERR(0, 5091, __pyx_L1_error) ++ __pyx_codeobj__144 = (PyObject*)__Pyx_PyCode_New(1, 0, 13, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__143, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_dateparse, 5091, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__144)) __PYX_ERR(0, 5091, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5116 + * return basedate +@@ -81471,7 +77270,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__145 = PyTuple_Pack(4, __pyx_n_s_string, __pyx_n_s_NUMCHARS, __pyx_n_s_dtype, __pyx_n_s_arr); if (unlikely(!__pyx_tuple__145)) __PYX_ERR(0, 5116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__145); + __Pyx_GIVEREF(__pyx_tuple__145); +- __pyx_codeobj__146 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__145, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_stringtoarr, 5116, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__146)) __PYX_ERR(0, 5116, __pyx_L1_error) ++ __pyx_codeobj__146 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__145, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_stringtoarr, 5116, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__146)) __PYX_ERR(0, 5116, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5139 + * return arr +@@ -81483,7 +77282,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__147 = PyTuple_Pack(3, __pyx_n_s_a, __pyx_n_s_dtype, __pyx_n_s_b); if (unlikely(!__pyx_tuple__147)) __PYX_ERR(0, 5139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__147); + __Pyx_GIVEREF(__pyx_tuple__147); +- __pyx_codeobj__148 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__147, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_stringtochar, 5139, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__148)) __PYX_ERR(0, 5139, __pyx_L1_error) ++ __pyx_codeobj__148 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__147, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_stringtochar, 5139, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__148)) __PYX_ERR(0, 5139, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5158 + * return b +@@ -81495,7 +77294,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__149 = PyTuple_Pack(6, __pyx_n_s_b, __pyx_n_s_dtype, __pyx_n_s_bs, __pyx_n_s_slen, __pyx_n_s_a, __pyx_n_s_n1); if (unlikely(!__pyx_tuple__149)) __PYX_ERR(0, 5158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__149); + __Pyx_GIVEREF(__pyx_tuple__149); +- __pyx_codeobj__150 = (PyObject*)__Pyx_PyCode_New(1, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__149, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_chartostring, 5158, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__150)) __PYX_ERR(0, 5158, __pyx_L1_error) ++ __pyx_codeobj__150 = (PyObject*)__Pyx_PyCode_New(1, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__149, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_chartostring, 5158, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__150)) __PYX_ERR(0, 5158, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5179 + * return a +@@ -81507,7 +77306,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__151 = PyTuple_Pack(15, __pyx_n_s_dates, __pyx_n_s_units, __pyx_n_s_calendar, __pyx_n_s_basedate, __pyx_n_s_unit, __pyx_n_s_msg, __pyx_n_s_isscalar, __pyx_n_s_shape, __pyx_n_s_ismasked, __pyx_n_s_mask, __pyx_n_s_times, __pyx_n_s_date, __pyx_n_s_td, __pyx_n_s_totaltime, __pyx_n_s_cdftime); if (unlikely(!__pyx_tuple__151)) __PYX_ERR(0, 5179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__151); + __Pyx_GIVEREF(__pyx_tuple__151); +- __pyx_codeobj__152 = (PyObject*)__Pyx_PyCode_New(3, 0, 15, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__151, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_date2num, 5179, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__152)) __PYX_ERR(0, 5179, __pyx_L1_error) ++ __pyx_codeobj__152 = (PyObject*)__Pyx_PyCode_New(3, 0, 15, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__151, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_date2num, 5179, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__152)) __PYX_ERR(0, 5179, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5267 + * return cdftime.date2num(dates) +@@ -81519,7 +77318,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__153 = PyTuple_Pack(20, __pyx_n_s_times, __pyx_n_s_units, __pyx_n_s_calendar, __pyx_n_s_basedate, __pyx_n_s_unit, __pyx_n_s_msg, __pyx_n_s_isscalar, __pyx_n_s_shape, __pyx_n_s_ismasked, __pyx_n_s_mask, __pyx_n_s_dates, __pyx_n_s_time, __pyx_n_s_tsecs, __pyx_n_s_days, __pyx_n_s_msecsd, __pyx_n_s_secs, __pyx_n_s_msecs, __pyx_n_s_td, __pyx_n_s_date, __pyx_n_s_cdftime); if (unlikely(!__pyx_tuple__153)) __PYX_ERR(0, 5267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__153); + __Pyx_GIVEREF(__pyx_tuple__153); +- __pyx_codeobj__154 = (PyObject*)__Pyx_PyCode_New(3, 0, 20, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__153, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_num2date, 5267, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__154)) __PYX_ERR(0, 5267, __pyx_L1_error) ++ __pyx_codeobj__154 = (PyObject*)__Pyx_PyCode_New(3, 0, 20, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__153, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_num2date, 5267, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__154)) __PYX_ERR(0, 5267, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5370 + * return cdftime.num2date(times) +@@ -81531,7 +77330,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__155 = PyTuple_Pack(7, __pyx_n_s_dates, __pyx_n_s_nctime, __pyx_n_s_calendar, __pyx_n_s_select, __pyx_n_s_basedate, __pyx_n_s_msg, __pyx_n_s_times); if (unlikely(!__pyx_tuple__155)) __PYX_ERR(0, 5370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__155); + __Pyx_GIVEREF(__pyx_tuple__155); +- __pyx_codeobj__156 = (PyObject*)__Pyx_PyCode_New(4, 0, 7, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__155, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_date2index, 5370, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__156)) __PYX_ERR(0, 5370, __pyx_L1_error) ++ __pyx_codeobj__156 = (PyObject*)__Pyx_PyCode_New(4, 0, 7, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__155, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_date2index, 5370, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__156)) __PYX_ERR(0, 5370, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5456 + * """ +@@ -81543,7 +77342,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__157 = PyTuple_Pack(36, __pyx_n_s_self, __pyx_n_s_files, __pyx_n_s_check, __pyx_n_s_aggdim, __pyx_n_s_exclude, __pyx_n_s_msg, __pyx_n_s_master, __pyx_n_s_cdfm, __pyx_n_s_name, __pyx_n_s_value, __pyx_n_s_aggDimId, __pyx_n_s_dimname, __pyx_n_s_dim, __pyx_n_s_aggDimName, __pyx_n_s_masterRecVar, __pyx_n_s_vName, __pyx_n_s_v, __pyx_n_s_dims_2, __pyx_n_s_shape, __pyx_n_s_dtype, __pyx_n_s_cdf_2, __pyx_n_s_cdfVLen_2, __pyx_n_s_cdfRecVar_2, __pyx_n_s_f, __pyx_n_s_part, __pyx_n_s_varInfo, __pyx_n_s_masterDims, __pyx_n_s_masterShape, __pyx_n_s_masterType, __pyx_n_s_extDims, __pyx_n_s_extShape, __pyx_n_s_extType, __pyx_n_s_vInst, __pyx_n_s_varname, __pyx_n_s_var, __pyx_n_s_dset); if (unlikely(!__pyx_tuple__157)) __PYX_ERR(0, 5456, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__157); + __Pyx_GIVEREF(__pyx_tuple__157); +- __pyx_codeobj__158 = (PyObject*)__Pyx_PyCode_New(5, 0, 36, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__157, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_init, 5456, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__158)) __PYX_ERR(0, 5456, __pyx_L1_error) ++ __pyx_codeobj__158 = (PyObject*)__Pyx_PyCode_New(5, 0, 36, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__157, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_init, 5456, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__158)) __PYX_ERR(0, 5456, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5629 + * self._path = '/' +@@ -81555,7 +77354,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__159 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_name, __pyx_n_s_value); if (unlikely(!__pyx_tuple__159)) __PYX_ERR(0, 5629, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__159); + __Pyx_GIVEREF(__pyx_tuple__159); +- __pyx_codeobj__160 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__159, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_setattr, 5629, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__160)) __PYX_ERR(0, 5629, __pyx_L1_error) ++ __pyx_codeobj__160 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__159, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_setattr, 5629, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__160)) __PYX_ERR(0, 5629, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5633 + * self.__dict__[name] = value +@@ -81567,7 +77366,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__161 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_name); if (unlikely(!__pyx_tuple__161)) __PYX_ERR(0, 5633, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__161); + __Pyx_GIVEREF(__pyx_tuple__161); +- __pyx_codeobj__162 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__161, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_getattribute, 5633, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__162)) __PYX_ERR(0, 5633, __pyx_L1_error) ++ __pyx_codeobj__162 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__161, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_getattribute, 5633, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__162)) __PYX_ERR(0, 5633, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5646 + * return Dataset.__getattribute__(self, name) +@@ -81579,7 +77378,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__163 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__163)) __PYX_ERR(0, 5646, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__163); + __Pyx_GIVEREF(__pyx_tuple__163); +- __pyx_codeobj__164 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__163, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_ncattrs, 5646, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__164)) __PYX_ERR(0, 5646, __pyx_L1_error) ++ __pyx_codeobj__164 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__163, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_ncattrs, 5646, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__164)) __PYX_ERR(0, 5646, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5654 + * return self._cdf[0].__dict__.keys() +@@ -81591,7 +77390,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__165 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_dset); if (unlikely(!__pyx_tuple__165)) __PYX_ERR(0, 5654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__165); + __Pyx_GIVEREF(__pyx_tuple__165); +- __pyx_codeobj__166 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__165, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_close, 5654, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__166)) __PYX_ERR(0, 5654, __pyx_L1_error) ++ __pyx_codeobj__166 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__165, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_close, 5654, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__166)) __PYX_ERR(0, 5654, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5663 + * dset.close() +@@ -81603,7 +77402,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__167 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_ncdump, __pyx_n_s_dimnames, __pyx_n_s_varnames, __pyx_n_s_grpnames, __pyx_n_s_attrs, __pyx_n_s_dimname, __pyx_n_s_varname, __pyx_n_s_name); if (unlikely(!__pyx_tuple__167)) __PYX_ERR(0, 5663, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__167); + __Pyx_GIVEREF(__pyx_tuple__167); +- __pyx_codeobj__168 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__167, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_repr, 5663, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__168)) __PYX_ERR(0, 5663, __pyx_L1_error) ++ __pyx_codeobj__168 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__167, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_repr, 5663, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__168)) __PYX_ERR(0, 5663, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5681 + * return ''.join(ncdump) +@@ -81615,7 +77414,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__169 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__169)) __PYX_ERR(0, 5681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__169); + __Pyx_GIVEREF(__pyx_tuple__169); +- __pyx_codeobj__170 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__169, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_reduce, 5681, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__170)) __PYX_ERR(0, 5681, __pyx_L1_error) ++ __pyx_codeobj__170 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__169, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_reduce, 5681, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__170)) __PYX_ERR(0, 5681, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5686 + * +@@ -81627,7 +77426,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__171 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_dimname, __pyx_n_s_dim, __pyx_n_s_dimlens, __pyx_n_s_dimtotlen); if (unlikely(!__pyx_tuple__171)) __PYX_ERR(0, 5686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__171); + __Pyx_GIVEREF(__pyx_tuple__171); +- __pyx_codeobj__172 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__171, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_init, 5686, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__172)) __PYX_ERR(0, 5686, __pyx_L1_error) ++ __pyx_codeobj__172 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__171, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_init, 5686, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__172)) __PYX_ERR(0, 5686, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5690 + * self.dimtotlen = dimtotlen +@@ -81639,7 +77438,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__173 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__173)) __PYX_ERR(0, 5690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__173); + __Pyx_GIVEREF(__pyx_tuple__173); +- __pyx_codeobj__174 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__173, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_len, 5690, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__174)) __PYX_ERR(0, 5690, __pyx_L1_error) ++ __pyx_codeobj__174 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__173, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_len, 5690, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__174)) __PYX_ERR(0, 5690, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5692 + * def __len__(self): +@@ -81651,7 +77450,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__175 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__175)) __PYX_ERR(0, 5692, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__175); + __Pyx_GIVEREF(__pyx_tuple__175); +- __pyx_codeobj__176 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__175, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_isunlimited, 5692, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__176)) __PYX_ERR(0, 5692, __pyx_L1_error) ++ __pyx_codeobj__176 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__175, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_isunlimited, 5692, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__176)) __PYX_ERR(0, 5692, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5694 + * def isunlimited(self): +@@ -81663,7 +77462,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__177 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__177)) __PYX_ERR(0, 5694, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__177); + __Pyx_GIVEREF(__pyx_tuple__177); +- __pyx_codeobj__178 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__177, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_repr, 5694, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__178)) __PYX_ERR(0, 5694, __pyx_L1_error) ++ __pyx_codeobj__178 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__177, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_repr, 5694, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__178)) __PYX_ERR(0, 5694, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5701 + * +@@ -81675,7 +77474,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__179 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_dset, __pyx_n_s_varname, __pyx_n_s_var, __pyx_n_s_recdimname, __pyx_n_s_name, __pyx_n_s_value); if (unlikely(!__pyx_tuple__179)) __PYX_ERR(0, 5701, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__179); + __Pyx_GIVEREF(__pyx_tuple__179); +- __pyx_codeobj__180 = (PyObject*)__Pyx_PyCode_New(5, 0, 7, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__179, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_init, 5701, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__180)) __PYX_ERR(0, 5701, __pyx_L1_error) ++ __pyx_codeobj__180 = (PyObject*)__Pyx_PyCode_New(5, 0, 7, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__179, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_init, 5701, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__180)) __PYX_ERR(0, 5701, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5714 + * for name, value in var.__dict__.items(): +@@ -81687,7 +77486,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__181 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__181)) __PYX_ERR(0, 5714, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__181); + __Pyx_GIVEREF(__pyx_tuple__181); +- __pyx_codeobj__182 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__181, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_typecode, 5714, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__182)) __PYX_ERR(0, 5714, __pyx_L1_error) ++ __pyx_codeobj__182 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__181, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_typecode, 5714, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__182)) __PYX_ERR(0, 5714, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5716 + * def typecode(self): +@@ -81699,7 +77498,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__183 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__183)) __PYX_ERR(0, 5716, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__183); + __Pyx_GIVEREF(__pyx_tuple__183); +- __pyx_codeobj__184 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__183, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_ncattrs, 5716, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__184)) __PYX_ERR(0, 5716, __pyx_L1_error) ++ __pyx_codeobj__184 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__183, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_ncattrs, 5716, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__184)) __PYX_ERR(0, 5716, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5718 + * def ncattrs(self): +@@ -81711,7 +77510,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__185 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_name); if (unlikely(!__pyx_tuple__185)) __PYX_ERR(0, 5718, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__185); + __Pyx_GIVEREF(__pyx_tuple__185); +- __pyx_codeobj__186 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__185, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_getattr, 5718, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__186)) __PYX_ERR(0, 5718, __pyx_L1_error) ++ __pyx_codeobj__186 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__185, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_getattr, 5718, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__186)) __PYX_ERR(0, 5718, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5725 + * except: +@@ -81723,7 +77522,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__187 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_ncdump_var, __pyx_n_s_dimnames, __pyx_n_s_attrs, __pyx_n_s_unlimdims, __pyx_n_s_dimname, __pyx_n_s_dim, __pyx_n_s_name); if (unlikely(!__pyx_tuple__187)) __PYX_ERR(0, 5725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__187); + __Pyx_GIVEREF(__pyx_tuple__187); +- __pyx_codeobj__188 = (PyObject*)__Pyx_PyCode_New(1, 0, 8, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__187, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_repr, 5725, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__188)) __PYX_ERR(0, 5725, __pyx_L1_error) ++ __pyx_codeobj__188 = (PyObject*)__Pyx_PyCode_New(1, 0, 8, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__187, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_repr, 5725, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__188)) __PYX_ERR(0, 5725, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5741 + * ncdump_var.append('current size = %s\n' % repr(self.shape)) +@@ -81735,7 +77534,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__189 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__189)) __PYX_ERR(0, 5741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__189); + __Pyx_GIVEREF(__pyx_tuple__189); +- __pyx_codeobj__190 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__189, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_len, 5741, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__190)) __PYX_ERR(0, 5741, __pyx_L1_error) ++ __pyx_codeobj__190 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__189, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_len, 5741, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__190)) __PYX_ERR(0, 5741, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5746 + * else: +@@ -81747,7 +77546,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__191 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_recdimlen); if (unlikely(!__pyx_tuple__191)) __PYX_ERR(0, 5746, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__191); + __Pyx_GIVEREF(__pyx_tuple__191); +- __pyx_codeobj__192 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__191, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_shape_2, 5746, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__192)) __PYX_ERR(0, 5746, __pyx_L1_error) ++ __pyx_codeobj__192 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__191, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_shape_2, 5746, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__192)) __PYX_ERR(0, 5746, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5749 + * recdimlen = len(self._dset.dimensions[self._recdimname]) +@@ -81759,7 +77558,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__193 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_val, __pyx_n_s_v); if (unlikely(!__pyx_tuple__193)) __PYX_ERR(0, 5749, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__193); + __Pyx_GIVEREF(__pyx_tuple__193); +- __pyx_codeobj__194 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__193, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_set_auto_maskandscale, 5749, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__194)) __PYX_ERR(0, 5749, __pyx_L1_error) ++ __pyx_codeobj__194 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__193, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_set_auto_maskandscale, 5749, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__194)) __PYX_ERR(0, 5749, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5752 + * for v in self._recVar: +@@ -81771,7 +77570,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__195 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_val, __pyx_n_s_v); if (unlikely(!__pyx_tuple__195)) __PYX_ERR(0, 5752, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__195); + __Pyx_GIVEREF(__pyx_tuple__195); +- __pyx_codeobj__196 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__195, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_set_auto_mask, 5752, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__196)) __PYX_ERR(0, 5752, __pyx_L1_error) ++ __pyx_codeobj__196 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__195, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_set_auto_mask, 5752, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__196)) __PYX_ERR(0, 5752, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5755 + * for v in self._recVar: +@@ -81783,7 +77582,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__197 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_val, __pyx_n_s_v); if (unlikely(!__pyx_tuple__197)) __PYX_ERR(0, 5755, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__197); + __Pyx_GIVEREF(__pyx_tuple__197); +- __pyx_codeobj__198 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__197, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_set_auto_scale, 5755, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__198)) __PYX_ERR(0, 5755, __pyx_L1_error) ++ __pyx_codeobj__198 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__197, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_set_auto_scale, 5755, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__198)) __PYX_ERR(0, 5755, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5758 + * for v in self._recVar: +@@ -81795,7 +77594,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__199 = PyTuple_Pack(30, __pyx_n_s_self, __pyx_n_s_elem, __pyx_n_s_start, __pyx_n_s_count, __pyx_n_s_stride, __pyx_n_s_put_ind, __pyx_n_s_datashape, __pyx_n_s_data, __pyx_n_s_squeeze, __pyx_n_s_i, __pyx_n_s_n, __pyx_n_s_strt, __pyx_n_s_cnt, __pyx_n_s_strd, __pyx_n_s_nv, __pyx_n_s_ind, __pyx_n_s_sta, __pyx_n_s_step, __pyx_n_s_stop, __pyx_n_s_idx, __pyx_n_s_vid, __pyx_n_s_k, __pyx_n_s_lst, __pyx_n_s_newSlice, __pyx_n_s_s_2, __pyx_n_s_lstArr, __pyx_n_s_ismasked, __pyx_n_s_dat, __pyx_n_s_fill_value, __pyx_n_s_numv); if (unlikely(!__pyx_tuple__199)) __PYX_ERR(0, 5758, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__199); + __Pyx_GIVEREF(__pyx_tuple__199); +- __pyx_codeobj__200 = (PyObject*)__Pyx_PyCode_New(2, 0, 30, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__199, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_getitem, 5758, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__200)) __PYX_ERR(0, 5758, __pyx_L1_error) ++ __pyx_codeobj__200 = (PyObject*)__Pyx_PyCode_New(2, 0, 30, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__199, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_getitem, 5758, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__200)) __PYX_ERR(0, 5758, __pyx_L1_error) + + /* "netCDF4/_netCDF4.pyx":5897 + * """ +@@ -81807,7 +77606,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__201 = PyTuple_Pack(15, __pyx_n_s_self, __pyx_n_s_time, __pyx_n_s_units, __pyx_n_s_datetime, __pyx_n_s_name, __pyx_n_s_value, __pyx_n_s_t, __pyx_n_s_ref_date, __pyx_n_s_ref_num, __pyx_n_s_i0, __pyx_n_s_i1, __pyx_n_s_i, __pyx_n_s_v, __pyx_n_s_n, __pyx_n_s_num); if (unlikely(!__pyx_tuple__201)) __PYX_ERR(0, 5897, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__201); + __Pyx_GIVEREF(__pyx_tuple__201); +- __pyx_codeobj__202 = (PyObject*)__Pyx_PyCode_New(3, 0, 15, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__201, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_init, 5897, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__202)) __PYX_ERR(0, 5897, __pyx_L1_error) ++ __pyx_codeobj__202 = (PyObject*)__Pyx_PyCode_New(3, 0, 15, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__201, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_init, 5897, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__202)) __PYX_ERR(0, 5897, __pyx_L1_error) + __pyx_tuple__203 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__203)) __PYX_ERR(0, 5897, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__203); + __Pyx_GIVEREF(__pyx_tuple__203); +@@ -81821,7 +77620,7 @@ static int __Pyx_InitCachedConstants(void) { + __pyx_tuple__204 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_elem); if (unlikely(!__pyx_tuple__204)) __PYX_ERR(0, 5945, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__204); + __Pyx_GIVEREF(__pyx_tuple__204); +- __pyx_codeobj__205 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__204, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Volumes_Drobo_python_netcdf4_py, __pyx_n_s_getitem, 5945, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__205)) __PYX_ERR(0, 5945, __pyx_L1_error) ++ __pyx_codeobj__205 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__204, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jswhit_python_netcdf4_pyt, __pyx_n_s_getitem, 5945, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__205)) __PYX_ERR(0, 5945, __pyx_L1_error) + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; +@@ -82602,7 +78401,7 @@ PyMODINIT_FUNC PyInit__netCDF4(void) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_getlibversion); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 977, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_13 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_13)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -82623,7 +78422,7 @@ PyMODINIT_FUNC PyInit__netCDF4(void) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = NULL; +- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); +@@ -82656,7 +78455,7 @@ PyMODINIT_FUNC PyInit__netCDF4(void) + __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_gethdf5libversion); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -82852,7 +78651,7 @@ PyMODINIT_FUNC PyInit__netCDF4(void) + __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_msg); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 995, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_13 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_13)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -82866,35 +78665,15 @@ PyMODINIT_FUNC PyInit__netCDF4(void) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else { +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[2] = {__pyx_t_13, __pyx_t_7}; +- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 995, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { +- PyObject *__pyx_temp[2] = {__pyx_t_13, __pyx_t_7}; +- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 995, __pyx_L1_error) +- __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; +- } else +- #endif +- { +- __pyx_t_11 = PyTuple_New(1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 995, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_11); +- __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13); __pyx_t_13 = NULL; +- __Pyx_GIVEREF(__pyx_t_7); +- PyTuple_SET_ITEM(__pyx_t_11, 0+1, __pyx_t_7); +- __pyx_t_7 = 0; +- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 995, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_1); +- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; +- } ++ __pyx_t_11 = PyTuple_New(1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 995, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_11); ++ __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13); __pyx_t_13 = NULL; ++ __Pyx_GIVEREF(__pyx_t_7); ++ PyTuple_SET_ITEM(__pyx_t_11, 0+1, __pyx_t_7); ++ __pyx_t_7 = 0; ++ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 995, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +@@ -83511,7 +79290,7 @@ PyMODINIT_FUNC PyInit__netCDF4(void) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_11))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_11); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); +@@ -83541,7 +79320,7 @@ PyMODINIT_FUNC PyInit__netCDF4(void) + if (likely(!__pyx_t_18)) { + if (likely(PyList_CheckExact(__pyx_t_11))) { + if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_11)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_17); __Pyx_INCREF(__pyx_t_1); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 1072, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_11, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1072, __pyx_L1_error) +@@ -83549,7 +79328,7 @@ PyMODINIT_FUNC PyInit__netCDF4(void) + #endif + } else { + if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_11)) break; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_17); __Pyx_INCREF(__pyx_t_1); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 1072, __pyx_L1_error) + #else + __pyx_t_1 = PySequence_ITEM(__pyx_t_11, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1072, __pyx_L1_error) +@@ -83570,7 +79349,7 @@ PyMODINIT_FUNC PyInit__netCDF4(void) + } + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + Py_ssize_t size = Py_SIZE(sequence); + #else + Py_ssize_t size = PySequence_Size(sequence); +@@ -83580,7 +79359,7 @@ PyMODINIT_FUNC PyInit__netCDF4(void) + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 1072, __pyx_L1_error) + } +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); +@@ -83664,7 +79443,7 @@ PyMODINIT_FUNC PyInit__netCDF4(void) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = NULL; +- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { ++ if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); +@@ -84447,7 +80226,7 @@ PyMODINIT_FUNC PyInit__netCDF4(void) + __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_t_7)->__pyx_arg_exclude = __pyx_t_13; + __Pyx_GIVEREF(__pyx_t_13); + __pyx_t_13 = 0; +- __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_7, __pyx_pf_7netCDF4_8_netCDF4_25__defaults__); ++ __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_7, __pyx_pf_7netCDF4_8_netCDF4_9MFDataset_14__defaults__); + if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_init, __pyx_t_7) < 0) __PYX_ERR(0, 5456, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + +@@ -84913,7 +80692,7 @@ static PyObject *__Pyx_GetBuiltinName(PyObject *name) { + + /* IterFinish */ + static CYTHON_INLINE int __Pyx_IterFinish(void) { +-#if CYTHON_FAST_THREAD_STATE ++#if CYTHON_COMPILING_IN_CPYTHON + PyThreadState *tstate = PyThreadState_GET(); + PyObject* exc_type = tstate->curexc_type; + if (unlikely(exc_type)) { +@@ -84946,126 +80725,6 @@ static CYTHON_INLINE int __Pyx_IterFinish(void) { + #endif + } + +-/* PyFunctionFastCall */ +-#if CYTHON_FAST_PYCALL +-#include "frameobject.h" +-static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, +- PyObject *globals) { +- PyFrameObject *f; +- PyThreadState *tstate = PyThreadState_GET(); +- PyObject **fastlocals; +- Py_ssize_t i; +- PyObject *result; +- assert(globals != NULL); +- /* XXX Perhaps we should create a specialized +- PyFrame_New() that doesn't take locals, but does +- take builtins without sanity checking them. +- */ +- assert(tstate != NULL); +- f = PyFrame_New(tstate, co, globals, NULL); +- if (f == NULL) { +- return NULL; +- } +- fastlocals = f->f_localsplus; +- for (i = 0; i < na; i++) { +- Py_INCREF(*args); +- fastlocals[i] = *args++; +- } +- result = PyEval_EvalFrameEx(f,0); +- ++tstate->recursion_depth; +- Py_DECREF(f); +- --tstate->recursion_depth; +- return result; +-} +-#if 1 || PY_VERSION_HEX < 0x030600B1 +-static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, int nargs, PyObject *kwargs) { +- PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); +- PyObject *globals = PyFunction_GET_GLOBALS(func); +- PyObject *argdefs = PyFunction_GET_DEFAULTS(func); +- PyObject *closure; +-#if PY_MAJOR_VERSION >= 3 +- PyObject *kwdefs; +-#endif +- PyObject *kwtuple, **k; +- PyObject **d; +- Py_ssize_t nd; +- Py_ssize_t nk; +- PyObject *result; +- assert(kwargs == NULL || PyDict_Check(kwargs)); +- nk = kwargs ? PyDict_Size(kwargs) : 0; +- if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { +- return NULL; +- } +- if ( +-#if PY_MAJOR_VERSION >= 3 +- co->co_kwonlyargcount == 0 && +-#endif +- likely(kwargs == NULL || nk == 0) && +- co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { +- if (argdefs == NULL && co->co_argcount == nargs) { +- result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); +- goto done; +- } +- else if (nargs == 0 && argdefs != NULL +- && co->co_argcount == Py_SIZE(argdefs)) { +- /* function called with no arguments, but all parameters have +- a default value: use default values as arguments .*/ +- args = &PyTuple_GET_ITEM(argdefs, 0); +- result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); +- goto done; +- } +- } +- if (kwargs != NULL) { +- Py_ssize_t pos, i; +- kwtuple = PyTuple_New(2 * nk); +- if (kwtuple == NULL) { +- result = NULL; +- goto done; +- } +- k = &PyTuple_GET_ITEM(kwtuple, 0); +- pos = i = 0; +- while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { +- Py_INCREF(k[i]); +- Py_INCREF(k[i+1]); +- i += 2; +- } +- nk = i / 2; +- } +- else { +- kwtuple = NULL; +- k = NULL; +- } +- closure = PyFunction_GET_CLOSURE(func); +-#if PY_MAJOR_VERSION >= 3 +- kwdefs = PyFunction_GET_KW_DEFAULTS(func); +-#endif +- if (argdefs != NULL) { +- d = &PyTuple_GET_ITEM(argdefs, 0); +- nd = Py_SIZE(argdefs); +- } +- else { +- d = NULL; +- nd = 0; +- } +-#if PY_MAJOR_VERSION >= 3 +- result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, +- args, nargs, +- k, (int)nk, +- d, (int)nd, kwdefs, closure); +-#else +- result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, +- args, nargs, +- k, (int)nk, +- d, (int)nd, closure); +-#endif +- Py_XDECREF(kwtuple); +-done: +- Py_LeaveRecursiveCall(); +- return result; +-} +-#endif // CPython < 3.6 +-#endif // CYTHON_FAST_PYCALL +- + /* PyObjectCall */ + #if CYTHON_COMPILING_IN_CPYTHON + static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { +@@ -85109,11 +80768,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject + /* PyObjectCallNoArg */ + #if CYTHON_COMPILING_IN_CPYTHON + static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { +-#if CYTHON_FAST_PYCALL +- if (PyFunction_Check(func)) { +- return __Pyx_PyFunction_FastCall(func, NULL, 0); +- } +-#endif + #ifdef __Pyx_CyFunction_USED + if (likely(PyCFunction_Check(func) || PyObject_TypeCheck(func, __pyx_CyFunctionType))) { + #else +@@ -85127,24 +80781,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { + } + #endif + +-/* PyCFunctionFastCall */ +- #if CYTHON_FAST_PYCCALL +-static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { +- PyCFunctionObject *func = (PyCFunctionObject*)func_obj; +- PyCFunction meth = PyCFunction_GET_FUNCTION(func); +- PyObject *self = PyCFunction_GET_SELF(func); +- assert(PyCFunction_Check(func)); +- assert(METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST))); +- assert(nargs >= 0); +- assert(nargs == 0 || args != NULL); +- /* _PyCFunction_FastCallDict() must not be called with an exception set, +- because it may clear it (directly or indirectly) and so the +- caller loses its exception */ +- assert(!PyErr_Occurred()); +- return (*((__Pyx_PyCFunctionFast)meth)) (self, args, nargs, NULL); +-} +-#endif // CYTHON_FAST_PYCCALL +- + /* PyObjectCallOneArg */ + #if CYTHON_COMPILING_IN_CPYTHON + static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { +@@ -85158,11 +80794,6 @@ static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { + return result; + } + static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { +-#if CYTHON_FAST_PYCALL +- if (PyFunction_Check(func)) { +- return __Pyx_PyFunction_FastCall(func, &arg, 1); +- } +-#endif + #ifdef __Pyx_CyFunction_USED + if (likely(PyCFunction_Check(func) || PyObject_TypeCheck(func, __pyx_CyFunctionType))) { + #else +@@ -85170,10 +80801,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec + #endif + if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { + return __Pyx_PyObject_CallMethO(func, arg); +-#if CYTHON_FAST_PYCCALL +- } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { +- return __Pyx_PyCFunction_FastCall(func, &arg, 1); +-#endif + } + } + return __Pyx__PyObject_CallOneArg(func, arg); +@@ -85194,7 +80821,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec + PyObject *method, *result = NULL; + method = __Pyx_PyObject_GetAttrStr(obj, method_name); + if (unlikely(!method)) goto bad; +-#if CYTHON_UNPACK_METHODS ++#if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyMethod_Check(method))) { + PyObject *self = PyMethod_GET_SELF(method); + if (likely(self)) { +@@ -85398,7 +81025,7 @@ static CYTHON_INLINE int __Pyx_dict_iter_next( + /* GetModuleGlobalName */ + static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name) { + PyObject *result; +-#if !CYTHON_AVOID_BORROWED_REFS ++#if CYTHON_COMPILING_IN_CPYTHON + result = PyDict_GetItem(__pyx_d, name); + if (likely(result)) { + Py_INCREF(result); +@@ -85447,7 +81074,7 @@ static CYTHON_INLINE int __Pyx_dict_iter_next( + } + + /* PyErrFetchRestore */ +- #if CYTHON_FAST_THREAD_STATE ++ #if CYTHON_COMPILING_IN_CPYTHON + static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { + PyObject *tmp_type, *tmp_value, *tmp_tb; + tmp_type = tstate->curexc_type; +@@ -85769,13 +81396,13 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject + } + + /* GetException */ +- #if CYTHON_FAST_THREAD_STATE ++ #if CYTHON_COMPILING_IN_CPYTHON + static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { + #else + static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) { + #endif + PyObject *local_type, *local_value, *local_tb; +-#if CYTHON_FAST_THREAD_STATE ++#if CYTHON_COMPILING_IN_CPYTHON + PyObject *tmp_type, *tmp_value, *tmp_tb; + local_type = tstate->curexc_type; + local_value = tstate->curexc_value; +@@ -85787,7 +81414,7 @@ static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) + PyErr_Fetch(&local_type, &local_value, &local_tb); + #endif + PyErr_NormalizeException(&local_type, &local_value, &local_tb); +-#if CYTHON_FAST_THREAD_STATE ++#if CYTHON_COMPILING_IN_CPYTHON + if (unlikely(tstate->curexc_type)) + #else + if (unlikely(PyErr_Occurred())) +@@ -85805,7 +81432,7 @@ static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) + *type = local_type; + *value = local_value; + *tb = local_tb; +-#if CYTHON_FAST_THREAD_STATE ++#if CYTHON_COMPILING_IN_CPYTHON + tmp_type = tstate->exc_type; + tmp_value = tstate->exc_value; + tmp_tb = tstate->exc_traceback; +@@ -85830,7 +81457,7 @@ static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) + } + + /* SwapException */ +- #if CYTHON_FAST_THREAD_STATE ++ #if CYTHON_COMPILING_IN_CPYTHON + static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { + PyObject *tmp_type, *tmp_value, *tmp_tb; + tmp_type = tstate->exc_type; +@@ -85855,7 +81482,7 @@ static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, + #endif + + /* SaveResetException */ +- #if CYTHON_FAST_THREAD_STATE ++ #if CYTHON_COMPILING_IN_CPYTHON + static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { + *type = tstate->exc_type; + *value = tstate->exc_value; +@@ -85889,7 +81516,7 @@ static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject + static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, + CYTHON_NCP_UNUSED int wraparound, + CYTHON_NCP_UNUSED int boundscheck) { +-#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++#if CYTHON_COMPILING_IN_CPYTHON + if (wraparound & unlikely(i < 0)) i += PyList_GET_SIZE(o); + if ((!boundscheck) || likely((0 <= i) & (i < PyList_GET_SIZE(o)))) { + PyObject *r = PyList_GET_ITEM(o, i); +@@ -85904,7 +81531,7 @@ static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_ + static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, + CYTHON_NCP_UNUSED int wraparound, + CYTHON_NCP_UNUSED int boundscheck) { +-#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++#if CYTHON_COMPILING_IN_CPYTHON + if (wraparound & unlikely(i < 0)) i += PyTuple_GET_SIZE(o); + if ((!boundscheck) || likely((0 <= i) & (i < PyTuple_GET_SIZE(o)))) { + PyObject *r = PyTuple_GET_ITEM(o, i); +@@ -85919,7 +81546,7 @@ static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize + static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, + CYTHON_NCP_UNUSED int wraparound, + CYTHON_NCP_UNUSED int boundscheck) { +-#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS ++#if CYTHON_COMPILING_IN_CPYTHON + if (is_list || PyList_CheckExact(o)) { + Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o); + if ((!boundscheck) || (likely((n >= 0) & (n < PyList_GET_SIZE(o))))) { +@@ -85960,7 +81587,7 @@ static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, + } + + /* PyErrExceptionMatches */ +- #if CYTHON_FAST_THREAD_STATE ++ #if CYTHON_COMPILING_IN_CPYTHON + static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) { + PyObject *exc_type = tstate->curexc_type; + if (exc_type == err) return 1; +@@ -86116,7 +81743,7 @@ static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tsta + Py_ssize_t cstart, Py_ssize_t cstop, + PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice, + int has_cstart, int has_cstop, CYTHON_UNUSED int wraparound) { +-#if CYTHON_USE_TYPE_SLOTS ++#if CYTHON_COMPILING_IN_CPYTHON + PyMappingMethods* mp; + #if PY_MAJOR_VERSION < 3 + PySequenceMethods* ms = Py_TYPE(obj)->tp_as_sequence; +@@ -86192,7 +81819,7 @@ static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tsta + Py_XDECREF(owned_stop); + if (unlikely(!py_slice)) goto bad; + } +-#if CYTHON_USE_TYPE_SLOTS ++#if CYTHON_COMPILING_IN_CPYTHON + result = mp->mp_subscript(obj, py_slice); + #else + result = PyObject_GetItem(obj, py_slice); +@@ -86269,7 +81896,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* value + { + PyMethodDescrObject *descr = (PyMethodDescrObject*) method; + target->func = descr->d_method->ml_meth; +- target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST); ++ target->flag = descr->d_method->ml_flags & (METH_VARARGS | METH_KEYWORDS | METH_O | METH_NOARGS); + } + #endif + return 0; +@@ -86279,7 +81906,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* value + static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) { + PyObject *args, *result = NULL; + if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL; +-#if CYTHON_ASSUME_SAFE_MACROS ++#if CYTHON_COMPILING_IN_CPYTHON + args = PyTuple_New(1); + if (unlikely(!args)) goto bad; + Py_INCREF(self); +@@ -86336,7 +81963,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* value + } + + /* PyIntBinop */ +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED int inplace) { + #if PY_MAJOR_VERSION < 3 + if (likely(PyInt_CheckExact(op1))) { +@@ -86349,14 +81976,12 @@ static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED + return PyLong_Type.tp_as_number->nb_add(op1, op2); + } + #endif +- #if CYTHON_USE_PYLONG_INTERNALS ++ #if CYTHON_USE_PYLONG_INTERNALS && PY_MAJOR_VERSION >= 3 + if (likely(PyLong_CheckExact(op1))) { + const long b = intval; + long a, x; +-#ifdef HAVE_LONG_LONG + const PY_LONG_LONG llb = intval; + PY_LONG_LONG lla, llx; +-#endif + const digit* digits = ((PyLongObject*)op1)->ob_digit; + const Py_ssize_t size = Py_SIZE(op1); + if (likely(__Pyx_sst_abs(size) <= 1)) { +@@ -86368,74 +81993,58 @@ static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED + if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +-#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { + lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +-#endif + } + case 2: + if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +-#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { + lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +-#endif + } + case -3: + if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +-#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { + lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +-#endif + } + case 3: + if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +-#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { + lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +-#endif + } + case -4: + if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { + a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +-#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { + lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +-#endif + } + case 4: + if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { + a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +-#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { + lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +-#endif + } + default: return PyLong_Type.tp_as_number->nb_add(op1, op2); + } + } + x = a + b; + return PyLong_FromLong(x); +-#ifdef HAVE_LONG_LONG + long_long: + llx = lla + llb; + return PyLong_FromLongLong(llx); +-#endif +- +- + } + #endif + if (PyFloat_CheckExact(op1)) { +@@ -86452,7 +82061,7 @@ static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED + #endif + + /* PyIntBinop */ +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + static PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED int inplace) { + if (op1 == op2) { + Py_RETURN_TRUE; +@@ -86468,7 +82077,7 @@ static PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED + } + } + #endif +- #if CYTHON_USE_PYLONG_INTERNALS ++ #if CYTHON_USE_PYLONG_INTERNALS && PY_MAJOR_VERSION >= 3 + if (likely(PyLong_CheckExact(op1))) { + const long b = intval; + long a; +@@ -86546,7 +82155,7 @@ static PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED + } + static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list, + CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { +-#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS ++#if CYTHON_COMPILING_IN_CPYTHON + if (is_list || PyList_CheckExact(o)) { + Py_ssize_t n = (!wraparound) ? i : ((likely(i >= 0)) ? i : i + PyList_GET_SIZE(o)); + if ((!boundscheck) || likely((n >= 0) & (n < PyList_GET_SIZE(o)))) { +@@ -86587,7 +82196,7 @@ static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObje + /* pyobject_as_double */ + static double __Pyx__PyObject_AsDouble(PyObject* obj) { + PyObject* float_value; +-#if !CYTHON_USE_TYPE_SLOTS ++#if CYTHON_COMPILING_IN_PYPY + float_value = PyNumber_Float(obj); if (0) goto bad; + #else + PyNumberMethods *nb = Py_TYPE(obj)->tp_as_number; +@@ -86629,7 +82238,7 @@ static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObje + Py_ssize_t cstart, Py_ssize_t cstop, + PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice, + int has_cstart, int has_cstop, CYTHON_UNUSED int wraparound) { +-#if CYTHON_USE_TYPE_SLOTS ++#if CYTHON_COMPILING_IN_CPYTHON + PyMappingMethods* mp; + #if PY_MAJOR_VERSION < 3 + PySequenceMethods* ms = Py_TYPE(obj)->tp_as_sequence; +@@ -86705,7 +82314,7 @@ static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObje + Py_XDECREF(owned_stop); + if (unlikely(!py_slice)) goto bad; + } +-#if CYTHON_USE_TYPE_SLOTS ++#if CYTHON_COMPILING_IN_CPYTHON + result = mp->mp_ass_subscript(obj, py_slice, value); + #else + result = value ? PyObject_SetItem(obj, py_slice, value) : PyObject_DelItem(obj, py_slice); +@@ -86750,7 +82359,7 @@ static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, in + } + + /* PyIntBinop */ +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED int inplace) { + #if PY_MAJOR_VERSION < 3 + if (likely(PyInt_CheckExact(op1))) { +@@ -86763,14 +82372,12 @@ static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_U + return PyLong_Type.tp_as_number->nb_subtract(op1, op2); + } + #endif +- #if CYTHON_USE_PYLONG_INTERNALS ++ #if CYTHON_USE_PYLONG_INTERNALS && PY_MAJOR_VERSION >= 3 + if (likely(PyLong_CheckExact(op1))) { + const long b = intval; + long a, x; +-#ifdef HAVE_LONG_LONG + const PY_LONG_LONG llb = intval; + PY_LONG_LONG lla, llx; +-#endif + const digit* digits = ((PyLongObject*)op1)->ob_digit; + const Py_ssize_t size = Py_SIZE(op1); + if (likely(__Pyx_sst_abs(size) <= 1)) { +@@ -86782,74 +82389,58 @@ static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_U + if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +-#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { + lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +-#endif + } + case 2: + if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +-#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { + lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +-#endif + } + case -3: + if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +-#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { + lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +-#endif + } + case 3: + if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +-#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { + lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +-#endif + } + case -4: + if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { + a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +-#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { + lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +-#endif + } + case 4: + if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { + a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +-#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { + lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +-#endif + } + default: return PyLong_Type.tp_as_number->nb_subtract(op1, op2); + } + } + x = a - b; + return PyLong_FromLong(x); +-#ifdef HAVE_LONG_LONG + long_long: + llx = lla - llb; + return PyLong_FromLongLong(llx); +-#endif +- +- + } + #endif + if (PyFloat_CheckExact(op1)) { +@@ -86869,29 +82460,15 @@ static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_U + static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) { + PyObject *method, *result = NULL; + method = __Pyx_PyObject_GetAttrStr(obj, method_name); +- if (unlikely(!method)) goto done; +-#if CYTHON_UNPACK_METHODS ++ if (unlikely(!method)) goto bad; ++#if CYTHON_COMPILING_IN_CPYTHON + if (likely(PyMethod_Check(method))) { + PyObject *self = PyMethod_GET_SELF(method); + if (likely(self)) { + PyObject *args; + PyObject *function = PyMethod_GET_FUNCTION(method); +- #if CYTHON_FAST_PYCALL +- if (PyFunction_Check(function)) { +- PyObject *args[2] = {self, arg}; +- result = __Pyx_PyFunction_FastCall(function, args, 2); +- goto done; +- } +- #endif +- #if CYTHON_FAST_PYCCALL +- if (__Pyx_PyFastCFunction_Check(function)) { +- PyObject *args[2] = {self, arg}; +- result = __Pyx_PyCFunction_FastCall(function, args, 2); +- goto done; +- } +- #endif + args = PyTuple_New(2); +- if (unlikely(!args)) goto done; ++ if (unlikely(!args)) goto bad; + Py_INCREF(self); + PyTuple_SET_ITEM(args, 0, self); + Py_INCREF(arg); +@@ -86906,7 +82483,7 @@ static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_U + } + #endif + result = __Pyx_PyObject_CallOneArg(method, arg); +-done: ++bad: + Py_XDECREF(method); + return result; + } +@@ -86925,7 +82502,7 @@ static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, CYTHON_U + } + + /* PyFloatBinop */ +- #if !CYTHON_COMPILING_IN_PYPY ++ #if CYTHON_COMPILING_IN_CPYTHON + static PyObject* __Pyx_PyFloat_DivideObjC(PyObject *op1, PyObject *op2, double floatval, CYTHON_UNUSED int inplace) { + const double b = floatval; + double a, result; +@@ -86938,7 +82515,7 @@ static PyObject* __Pyx_PyFloat_DivideObjC(PyObject *op1, PyObject *op2, double f + } else + #endif + if (likely(PyLong_CheckExact(op1))) { +- #if CYTHON_USE_PYLONG_INTERNALS ++ #if CYTHON_USE_PYLONG_INTERNALS && PY_MAJOR_VERSION >= 3 + const digit* digits = ((PyLongObject*)op1)->ob_digit; + const Py_ssize_t size = Py_SIZE(op1); + switch (size) { +@@ -87324,7 +82901,7 @@ __Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) { + PyObject *res = op->defaults_getter((PyObject *) op); + if (unlikely(!res)) + return -1; +- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS ++ #if CYTHON_COMPILING_IN_CPYTHON + op->defaults_tuple = PyTuple_GET_ITEM(res, 0); + Py_INCREF(op->defaults_tuple); + op->defaults_kwdict = PyTuple_GET_ITEM(res, 1); +@@ -87583,9 +83160,11 @@ __Pyx_CyFunction_repr(__pyx_CyFunctionObject *op) + PyString_AsString(op->func_qualname), (void *)op); + #endif + } +-static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) { ++#if CYTHON_COMPILING_IN_PYPY ++static PyObject * __Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) { + PyCFunctionObject* f = (PyCFunctionObject*)func; + PyCFunction meth = f->m_ml->ml_meth; ++ PyObject *self = f->m_self; + Py_ssize_t size; + switch (f->m_ml->ml_flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) { + case METH_VARARGS: +@@ -87631,32 +83210,11 @@ static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, Py + f->m_ml->ml_name); + return NULL; + } +-static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) { +- return __Pyx_CyFunction_CallMethod(func, ((PyCFunctionObject*)func)->m_self, arg, kw); +-} +-static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) { +- PyObject *result; +- __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func; +- if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) { +- Py_ssize_t argc; +- PyObject *new_args; +- PyObject *self; +- argc = PyTuple_GET_SIZE(args); +- new_args = PyTuple_GetSlice(args, 1, argc); +- if (unlikely(!new_args)) +- return NULL; +- self = PyTuple_GetItem(args, 0); +- if (unlikely(!self)) { +- Py_DECREF(new_args); +- return NULL; +- } +- result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw); +- Py_DECREF(new_args); +- } else { +- result = __Pyx_CyFunction_Call(func, args, kw); +- } +- return result; ++#else ++static PyObject * __Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) { ++ return PyCFunction_Call(func, arg, kw); + } ++#endif + static PyTypeObject __pyx_CyFunctionType_type = { + PyVarObject_HEAD_INIT(0, 0) + "cython_function_or_method", +@@ -87676,7 +83234,7 @@ static PyTypeObject __pyx_CyFunctionType_type = { + 0, + 0, + 0, +- __Pyx_CyFunction_CallAsMethod, ++ __Pyx_CyFunction_Call, + 0, + 0, + 0, +@@ -87718,6 +83276,9 @@ static PyTypeObject __pyx_CyFunctionType_type = { + #endif + }; + static int __pyx_CyFunction_init(void) { ++#if !CYTHON_COMPILING_IN_PYPY ++ __pyx_CyFunctionType_type.tp_call = PyCFunction_Call; ++#endif + __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type); + if (__pyx_CyFunctionType == NULL) { + return -1; +@@ -87970,7 +83531,7 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, + 0 /*PyObject *locals*/ + ); + if (!py_frame) goto bad; +- __Pyx_PyFrame_SetLineNumber(py_frame, py_line); ++ py_frame->f_lineno = py_line; + PyTraceBack_Here(py_frame); + bad: + Py_XDECREF(py_code); +@@ -87986,18 +83547,14 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, + return PyInt_FromLong((long) value); + } else if (sizeof(long) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +-#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +-#endif + } + } else { + if (sizeof(long) <= sizeof(long)) { + return PyInt_FromLong((long) value); +-#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +-#endif + } + } + { +@@ -88017,18 +83574,14 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, + return PyInt_FromLong((long) value); + } else if (sizeof(int) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +-#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +-#endif + } + } else { + if (sizeof(int) <= sizeof(long)) { + return PyInt_FromLong((long) value); +-#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +-#endif + } + } + { +@@ -88048,18 +83601,14 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, + return PyInt_FromLong((long) value); + } else if (sizeof(unsigned long) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +-#ifdef HAVE_LONG_LONG + } else if (sizeof(unsigned long) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +-#endif + } + } else { + if (sizeof(unsigned long) <= sizeof(long)) { + return PyInt_FromLong((long) value); +-#ifdef HAVE_LONG_LONG + } else if (sizeof(unsigned long) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +-#endif + } + } + { +@@ -88079,18 +83628,14 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, + return PyInt_FromLong((long) value); + } else if (sizeof(PY_LONG_LONG) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +-#ifdef HAVE_LONG_LONG + } else if (sizeof(PY_LONG_LONG) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +-#endif + } + } else { + if (sizeof(PY_LONG_LONG) <= sizeof(long)) { + return PyInt_FromLong((long) value); +-#ifdef HAVE_LONG_LONG + } else if (sizeof(PY_LONG_LONG) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +-#endif + } + } + { +@@ -88110,18 +83655,14 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, + return PyInt_FromLong((long) value); + } else if (sizeof(unsigned PY_LONG_LONG) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +-#ifdef HAVE_LONG_LONG + } else if (sizeof(unsigned PY_LONG_LONG) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +-#endif + } + } else { + if (sizeof(unsigned PY_LONG_LONG) <= sizeof(long)) { + return PyInt_FromLong((long) value); +-#ifdef HAVE_LONG_LONG + } else if (sizeof(unsigned PY_LONG_LONG) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +-#endif + } + } + { +@@ -88163,18 +83704,14 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, + return PyInt_FromLong((long) value); + } else if (sizeof(nc_type) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +-#ifdef HAVE_LONG_LONG + } else if (sizeof(nc_type) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +-#endif + } + } else { + if (sizeof(nc_type) <= sizeof(long)) { + return PyInt_FromLong((long) value); +-#ifdef HAVE_LONG_LONG + } else if (sizeof(nc_type) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +-#endif + } + } + { +@@ -88194,18 +83731,14 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, + return PyInt_FromLong((long) value); + } else if (sizeof(npy_intp) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +-#ifdef HAVE_LONG_LONG + } else if (sizeof(npy_intp) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +-#endif + } + } else { + if (sizeof(npy_intp) <= sizeof(long)) { + return PyInt_FromLong((long) value); +-#ifdef HAVE_LONG_LONG + } else if (sizeof(npy_intp) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +-#endif + } + } + { +@@ -88225,18 +83758,14 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, + return PyInt_FromLong((long) value); + } else if (sizeof(char) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +-#ifdef HAVE_LONG_LONG + } else if (sizeof(char) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +-#endif + } + } else { + if (sizeof(char) <= sizeof(long)) { + return PyInt_FromLong((long) value); +-#ifdef HAVE_LONG_LONG + } else if (sizeof(char) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +-#endif + } + } + { +@@ -88315,10 +83844,8 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, + #endif + if (sizeof(int) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) +-#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +-#endif + } + } else { + #if CYTHON_USE_PYLONG_INTERNALS +@@ -88385,10 +83912,8 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, + #endif + if (sizeof(int) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) +-#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) +-#endif + } + } + { +@@ -88504,10 +84029,8 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, + #endif + if (sizeof(size_t) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x)) +-#ifdef HAVE_LONG_LONG + } else if (sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +-#endif + } + } else { + #if CYTHON_USE_PYLONG_INTERNALS +@@ -88574,10 +84097,8 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, + #endif + if (sizeof(size_t) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x)) +-#ifdef HAVE_LONG_LONG + } else if (sizeof(size_t) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x)) +-#endif + } + } + { +@@ -88693,10 +84214,8 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, + #endif + if (sizeof(nc_type) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(nc_type, unsigned long, PyLong_AsUnsignedLong(x)) +-#ifdef HAVE_LONG_LONG + } else if (sizeof(nc_type) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(nc_type, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +-#endif + } + } else { + #if CYTHON_USE_PYLONG_INTERNALS +@@ -88763,10 +84282,8 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, + #endif + if (sizeof(nc_type) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(nc_type, long, PyLong_AsLong(x)) +-#ifdef HAVE_LONG_LONG + } else if (sizeof(nc_type) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(nc_type, PY_LONG_LONG, PyLong_AsLongLong(x)) +-#endif + } + } + { +@@ -88882,10 +84399,8 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, + #endif + if (sizeof(ptrdiff_t) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(ptrdiff_t, unsigned long, PyLong_AsUnsignedLong(x)) +-#ifdef HAVE_LONG_LONG + } else if (sizeof(ptrdiff_t) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(ptrdiff_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +-#endif + } + } else { + #if CYTHON_USE_PYLONG_INTERNALS +@@ -88952,10 +84467,8 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, + #endif + if (sizeof(ptrdiff_t) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(ptrdiff_t, long, PyLong_AsLong(x)) +-#ifdef HAVE_LONG_LONG + } else if (sizeof(ptrdiff_t) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(ptrdiff_t, PY_LONG_LONG, PyLong_AsLongLong(x)) +-#endif + } + } + { +@@ -89071,10 +84584,8 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, + #endif + if (sizeof(long) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) +-#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +-#endif + } + } else { + #if CYTHON_USE_PYLONG_INTERNALS +@@ -89141,10 +84652,8 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, + #endif + if (sizeof(long) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) +-#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) +-#endif + } + } + { +@@ -89214,38 +84723,41 @@ static int __Pyx_PyGen_FetchStopIterationValue(PyObject **pvalue) { + return 0; + } + if (likely(et == PyExc_StopIteration)) { +- if (!ev) { +- Py_INCREF(Py_None); +- value = Py_None; +- } + #if PY_VERSION_HEX >= 0x030300A0 +- else if (Py_TYPE(ev) == (PyTypeObject*)PyExc_StopIteration) { ++ if (ev && Py_TYPE(ev) == (PyTypeObject*)PyExc_StopIteration) { + value = ((PyStopIterationObject *)ev)->value; + Py_INCREF(value); + Py_DECREF(ev); ++ Py_XDECREF(tb); ++ Py_DECREF(et); ++ *pvalue = value; ++ return 0; + } + #endif +- else if (unlikely(PyTuple_Check(ev))) { +- if (PyTuple_GET_SIZE(ev) >= 1) { +-#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- value = PyTuple_GET_ITEM(ev, 0); +- Py_INCREF(value); ++ if (!ev || !PyObject_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration)) { ++ if (!ev) { ++ Py_INCREF(Py_None); ++ ev = Py_None; ++ } else if (PyTuple_Check(ev)) { ++ if (PyTuple_GET_SIZE(ev) >= 1) { ++ PyObject *value; ++#if CYTHON_COMPILING_IN_CPYTHON ++ value = PySequence_ITEM(ev, 0); + #else +- value = PySequence_ITEM(ev, 0); ++ value = PyTuple_GET_ITEM(ev, 0); ++ Py_INCREF(value); + #endif +- } else { +- Py_INCREF(Py_None); +- value = Py_None; ++ Py_DECREF(ev); ++ ev = value; ++ } else { ++ Py_INCREF(Py_None); ++ Py_DECREF(ev); ++ ev = Py_None; ++ } + } +- Py_DECREF(ev); +- } +- else if (!PyObject_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration)) { +- value = ev; +- } +- if (likely(value)) { + Py_XDECREF(tb); + Py_DECREF(et); +- *pvalue = value; ++ *pvalue = ev; + return 0; + } + } else if (!PyErr_GivenExceptionMatches(et, PyExc_StopIteration)) { +@@ -89322,7 +84834,7 @@ PyObject *__Pyx_Coroutine_SendEx(__pyx_CoroutineObject *self, PyObject *value) { + } + __Pyx_PyThreadState_assign + if (value) { +-#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_PYSTON ++#if CYTHON_COMPILING_IN_PYPY + #else + if (self->exc_traceback) { + PyTracebackObject *tb = (PyTracebackObject *) self->exc_traceback; +@@ -89343,7 +84855,7 @@ PyObject *__Pyx_Coroutine_SendEx(__pyx_CoroutineObject *self, PyObject *value) { + if (retval) { + __Pyx_ExceptionSwap(&self->exc_type, &self->exc_value, + &self->exc_traceback); +-#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_PYSTON ++#if CYTHON_COMPILING_IN_PYPY + #else + if (self->exc_traceback) { + PyTracebackObject *tb = (PyTracebackObject *) self->exc_traceback; +@@ -89453,12 +84965,7 @@ static PyObject *__Pyx_Generator_Next(PyObject *self) { + if (yf) { + PyObject *ret; + gen->is_running = 1; +- #ifdef __Pyx_Generator_USED +- if (__Pyx_Generator_CheckExact(yf)) { +- ret = __Pyx_Generator_Next(yf); +- } else +- #endif +- ret = Py_TYPE(yf)->tp_iternext(yf); ++ ret = Py_TYPE(yf)->tp_iternext(yf); + gen->is_running = 0; + if (likely(ret)) { + return ret; +@@ -89647,10 +85154,8 @@ static void __Pyx_Coroutine_del(PyObject *self) { + static PyObject * + __Pyx_Coroutine_get_name(__pyx_CoroutineObject *self) + { +- PyObject *name = self->gi_name; +- if (unlikely(!name)) name = Py_None; +- Py_INCREF(name); +- return name; ++ Py_INCREF(self->gi_name); ++ return self->gi_name; + } + static int + __Pyx_Coroutine_set_name(__pyx_CoroutineObject *self, PyObject *value) +@@ -89674,10 +85179,8 @@ __Pyx_Coroutine_set_name(__pyx_CoroutineObject *self, PyObject *value) + static PyObject * + __Pyx_Coroutine_get_qualname(__pyx_CoroutineObject *self) + { +- PyObject *name = self->gi_qualname; +- if (unlikely(!name)) name = Py_None; +- Py_INCREF(name); +- return name; ++ Py_INCREF(self->gi_qualname); ++ return self->gi_qualname; + } + static int + __Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value) +@@ -89698,9 +85201,8 @@ __Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value) + Py_XDECREF(tmp); + return 0; + } +-static __pyx_CoroutineObject *__Pyx__Coroutine_New( +- PyTypeObject* type, __pyx_coroutine_body_t body, PyObject *closure, +- PyObject *name, PyObject *qualname, PyObject *module_name) { ++static __pyx_CoroutineObject *__Pyx__Coroutine_New(PyTypeObject* type, __pyx_coroutine_body_t body, ++ PyObject *closure, PyObject *name, PyObject *qualname) { + __pyx_CoroutineObject *gen = PyObject_GC_New(__pyx_CoroutineObject, type); + if (gen == NULL) + return NULL; +@@ -89719,8 +85221,6 @@ static __pyx_CoroutineObject *__Pyx__Coroutine_New( + gen->gi_qualname = qualname; + Py_XINCREF(name); + gen->gi_name = name; +- Py_XINCREF(module_name); +- gen->gi_modulename = module_name; + PyObject_GC_Track(gen); + return gen; + } +@@ -90109,9 +85609,7 @@ static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { + else return PyObject_IsTrue(x); + } + static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { +-#if CYTHON_USE_TYPE_SLOTS + PyNumberMethods *m; +-#endif + const char *name = NULL; + PyObject *res = NULL; + #if PY_MAJOR_VERSION < 3 +@@ -90120,9 +85618,8 @@ static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { + if (PyLong_Check(x)) + #endif + return __Pyx_NewRef(x); +-#if CYTHON_USE_TYPE_SLOTS + m = Py_TYPE(x)->tp_as_number; +- #if PY_MAJOR_VERSION < 3 ++#if PY_MAJOR_VERSION < 3 + if (m && m->nb_int) { + name = "int"; + res = PyNumber_Int(x); +@@ -90131,14 +85628,11 @@ static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { + name = "long"; + res = PyNumber_Long(x); + } +- #else ++#else + if (m && m->nb_int) { + name = "int"; + res = PyNumber_Long(x); + } +- #endif +-#else +- res = PyNumber_Int(x); + #endif + if (res) { + #if PY_MAJOR_VERSION < 3 +diff --git a/netCDF4/_netCDF4.pyx b/netCDF4/_netCDF4.pyx +index ce2ad84..f124e46 100644 +--- a/netCDF4/_netCDF4.pyx ++++ b/netCDF4/_netCDF4.pyx +@@ -1122,7 +1122,7 @@ cdef _get_att(grp, int varid, name): + if name == '_FillValue' and python3: + # make sure _FillValue for character arrays is a byte on python 3 + # (issue 271). +- pstring = bytes(value_arr) ++ pstring = value_arr.tostring() + else: + pstring =\ + value_arr.tostring().decode(default_encoding,unicode_error).replace('\x00','') + +From ffd45c0f87454da92123e56089490d28e7d3613e Mon Sep 17 00:00:00 2001 +From: Jeffrey Whitaker +Date: Wed, 21 Dec 2016 10:41:39 -0700 +Subject: [PATCH 09/14] replace python 3.3 with python 3.6 + +--- + .travis.yml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/.travis.yml b/.travis.yml +index b56218d..169a3ca 100644 +--- a/.travis.yml ++++ b/.travis.yml +@@ -16,9 +16,9 @@ env: + + python: + - "2.7" +- - "3.3" + - "3.4" + - "3.5" ++ - "3.6" + + matrix: + include: + +From bbae790811c38d8c8f0ee2f66b4736fb630ba4fc Mon Sep 17 00:00:00 2001 +From: Jeffrey Whitaker +Date: Wed, 21 Dec 2016 10:44:48 -0700 +Subject: [PATCH 10/14] update + +--- + Changelog | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Changelog b/Changelog +index 27482ab..208ef8d 100644 +--- a/Changelog ++++ b/Changelog +@@ -5,7 +5,7 @@ + with support for vector missing_values. Test (tst_masked5.py) added for + vector missing_values. + * fix for python 3.6 compatibility (error retrieving character _FillValue attribute, +- issue #626). ++ issue #626). Test with python 3.6 using travis CI. + + version 1.2.6 (tag v1.2.6rel) + ============================== + +From 933dcdca27af7c1f81d8990bdb361dea0aaefd3d Mon Sep 17 00:00:00 2001 +From: Jeffrey Whitaker +Date: Wed, 21 Dec 2016 10:48:00 -0700 +Subject: [PATCH 11/14] add python 3.6 to appveyor + +--- + Changelog | 2 +- + appveyor.yml | 8 ++++++++ + 2 files changed, 9 insertions(+), 1 deletion(-) + +diff --git a/Changelog b/Changelog +index 208ef8d..d5eaa06 100644 +--- a/Changelog ++++ b/Changelog +@@ -5,7 +5,7 @@ + with support for vector missing_values. Test (tst_masked5.py) added for + vector missing_values. + * fix for python 3.6 compatibility (error retrieving character _FillValue attribute, +- issue #626). Test with python 3.6 using travis CI. ++ issue #626). Test with python 3.6 using travis CI and appveyor. + + version 1.2.6 (tag v1.2.6rel) + ============================== +diff --git a/appveyor.yml b/appveyor.yml +index eab9290..ca35d82 100644 +--- a/appveyor.yml ++++ b/appveyor.yml +@@ -32,6 +32,14 @@ environment: + CONDA_NPY: 111 + CONDA_PY: 35 + ++ - TARGET_ARCH: x86 ++ CONDA_NPY: 111 ++ CONDA_PY: 36 ++ ++ - TARGET_ARCH: x64 ++ CONDA_NPY: 111 ++ CONDA_PY: 36 ++ + platform: + - x64 + + +From 6f31357f0e04beef4eaffec4f77440d06ac9f23a Mon Sep 17 00:00:00 2001 +From: Jeffrey Whitaker +Date: Wed, 21 Dec 2016 10:49:04 -0700 +Subject: [PATCH 12/14] update + +--- + appveyor.yml | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/appveyor.yml b/appveyor.yml +index ca35d82..4f5cd2e 100644 +--- a/appveyor.yml ++++ b/appveyor.yml +@@ -32,10 +32,6 @@ environment: + CONDA_NPY: 111 + CONDA_PY: 35 + +- - TARGET_ARCH: x86 +- CONDA_NPY: 111 +- CONDA_PY: 36 +- + - TARGET_ARCH: x64 + CONDA_NPY: 111 + CONDA_PY: 36 + +From 94f882d9dd384d7dbe72ace5619f489a2bd1c10f Mon Sep 17 00:00:00 2001 +From: Jeffrey Whitaker +Date: Wed, 21 Dec 2016 11:18:39 -0700 +Subject: [PATCH 13/14] update + +--- + .travis.yml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/.travis.yml b/.travis.yml +index 169a3ca..92e7881 100644 +--- a/.travis.yml ++++ b/.travis.yml +@@ -18,7 +18,7 @@ python: + - "2.7" + - "3.4" + - "3.5" +- - "3.6" ++ - "3.6-dev" + + matrix: + include: + +From b99681c94f17eba5c25c9a0b49481fb74c0d49b7 Mon Sep 17 00:00:00 2001 +From: Jeffrey Whitaker +Date: Wed, 21 Dec 2016 12:45:40 -0700 +Subject: [PATCH 14/14] remove python 3.6 from appveyor (not available yet) + +--- + Changelog | 2 +- + appveyor.yml | 4 ---- + 2 files changed, 1 insertion(+), 5 deletions(-) + +diff --git a/Changelog b/Changelog +index d5eaa06..208ef8d 100644 +--- a/Changelog ++++ b/Changelog +@@ -5,7 +5,7 @@ + with support for vector missing_values. Test (tst_masked5.py) added for + vector missing_values. + * fix for python 3.6 compatibility (error retrieving character _FillValue attribute, +- issue #626). Test with python 3.6 using travis CI and appveyor. ++ issue #626). Test with python 3.6 using travis CI. + + version 1.2.6 (tag v1.2.6rel) + ============================== +diff --git a/appveyor.yml b/appveyor.yml +index 4f5cd2e..eab9290 100644 +--- a/appveyor.yml ++++ b/appveyor.yml +@@ -32,10 +32,6 @@ environment: + CONDA_NPY: 111 + CONDA_PY: 35 + +- - TARGET_ARCH: x64 +- CONDA_NPY: 111 +- CONDA_PY: 36 +- + platform: + - x64 + diff --git a/netcdf4-python.spec b/netcdf4-python.spec index 721db8a..367a78b 100644 --- a/netcdf4-python.spec +++ b/netcdf4-python.spec @@ -15,6 +15,8 @@ Patch0: netcdf4-python-norpath.patch # Don't link against hdf5 and z libraries # http://code.google.com/p/netcdf4-python/issues/detail?id=139 Patch1: netcdf4-python-libs.patch +# Upstream patch for python 3.6 +Patch2: https://patch-diff.githubusercontent.com/raw/Unidata/netcdf4-python/pull/625.patch BuildRequires: python2-devel BuildRequires: Cython @@ -92,6 +94,7 @@ containing vlens, and vlens containing compound types) are not supported. %setup -q -n %{name}-%{version}rel %patch0 -p1 -b .norpath %patch1 -p1 -b .libs +%patch2 -p1 -b .py36 # This uses the network rm test/tst_dap.py @@ -141,6 +144,9 @@ PYTHONPATH=$(echo ../build/lib.*%{python3_version}) %{__python3} run_all.py %changelog +* Wed Dec 21 2016 Orion Poplawski - 1.2.6-2 +- Add upstream patch for python 3.6 support + * Mon Dec 19 2016 Miro HronĨok - 1.2.6-2 - Rebuild for Python 3.6