+ __pyx_t_10 = (__pyx_v_t == ((PyObject*)(&PyTuple_Type)));
+ if (!__pyx_t_10) {
+ __pyx_t_3 = (__pyx_v_t == ((PyObject*)(&PyList_Type)));
+ __pyx_t_11 = __pyx_t_3;
+ } else {
+ __pyx_t_11 = __pyx_t_10;
+ }
+ if (__pyx_t_11) {
+
+ /* "csamtools.pyx":2568
+ * if t is tuple or t is list:
+ * # binary tags - treat separately
+ * pytype = 'B' # <<<<<<<<<<<<<<
+ * # get data type - first value determines type
+ * if type(value[0]) is float:
+ */
+ __Pyx_INCREF(((PyObject *)__pyx_n_s__B));
+ __Pyx_XDECREF(__pyx_v_pytype);
+ __pyx_v_pytype = ((PyObject *)__pyx_n_s__B);
+
+ /* "csamtools.pyx":2570
+ * pytype = 'B'
+ * # get data type - first value determines type
+ * if type(value[0]) is float: # <<<<<<<<<<<<<<
+ * datafmt, datatype = "f", "f"
+ * else:
+ */
+ __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_value, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2570; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_7);
+ __pyx_t_11 = (((PyObject *)Py_TYPE(__pyx_t_7)) == ((PyObject *)((PyObject*)(&PyFloat_Type))));
+ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+ if (__pyx_t_11) {
+
+ /* "csamtools.pyx":2571
+ * # get data type - first value determines type
+ * if type(value[0]) is float:
+ * datafmt, datatype = "f", "f" # <<<<<<<<<<<<<<
+ * else:
+ * mi, ma = min(value), max(value)
+ */
+ __pyx_t_7 = ((PyObject *)__pyx_n_s__f);
+ __Pyx_INCREF(__pyx_t_7);
+ __pyx_t_1 = ((PyObject *)__pyx_n_s__f);
+ __Pyx_INCREF(__pyx_t_1);
+ __Pyx_XDECREF(__pyx_v_datafmt);
+ __pyx_v_datafmt = __pyx_t_7;
+ __pyx_t_7 = 0;
+ __Pyx_XDECREF(__pyx_v_datatype);
+ __pyx_v_datatype = __pyx_t_1;
+ __pyx_t_1 = 0;
+ goto __pyx_L10;
+ }
+ /*else*/ {
+
+ /* "csamtools.pyx":2573
+ * datafmt, datatype = "f", "f"
+ * else:
+ * mi, ma = min(value), max(value) # <<<<<<<<<<<<<<
+ * absmax = max( abs(mi), abs(ma) )
+ * # signed ints
+ */
+ __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_1);
+ __Pyx_INCREF(__pyx_v_value);
+ PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_value);
+ __Pyx_GIVEREF(__pyx_v_value);
+ __pyx_t_7 = PyObject_Call(__pyx_builtin_min, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_7);
+ __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
+ __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_1);
+ __Pyx_INCREF(__pyx_v_value);
+ PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_value);
+ __Pyx_GIVEREF(__pyx_v_value);
+ __pyx_t_6 = PyObject_Call(__pyx_builtin_max, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_6);
+ __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
+ __Pyx_XDECREF(__pyx_v_mi);
+ __pyx_v_mi = __pyx_t_7;
+ __pyx_t_7 = 0;
+ __Pyx_XDECREF(__pyx_v_ma);
+ __pyx_v_ma = __pyx_t_6;
+ __pyx_t_6 = 0;
+
+ /* "csamtools.pyx":2574
+ * else:
+ * mi, ma = min(value), max(value)
+ * absmax = max( abs(mi), abs(ma) ) # <<<<<<<<<<<<<<
+ * # signed ints
+ * if mi < 0:
+ */
+ __pyx_t_6 = PyNumber_Absolute(__pyx_v_ma); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_6);
+ __pyx_t_7 = PyNumber_Absolute(__pyx_v_mi); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_7);
+ __pyx_t_8 = PyObject_RichCompare(__pyx_t_6, __pyx_t_7, Py_GT); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_8);
+ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+ if (__pyx_t_11) {
+ __Pyx_INCREF(__pyx_t_6);
+ __pyx_t_1 = __pyx_t_6;
+ } else {
+ __Pyx_INCREF(__pyx_t_7);
+ __pyx_t_1 = __pyx_t_7;
+ }
+ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+ __Pyx_INCREF(__pyx_t_1);
+ __Pyx_XDECREF(__pyx_v_absmax);
+ __pyx_v_absmax = __pyx_t_1;
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+
+ /* "csamtools.pyx":2576
+ * absmax = max( abs(mi), abs(ma) )
+ * # signed ints
+ * if mi < 0: # <<<<<<<<<<<<<<
+ * if mi >= -127: datafmt, datatype = "b", 'c'
+ * elif mi >= -32767: datafmt, datatype = "h", 's'
+ */
+ __pyx_t_1 = PyObject_RichCompare(__pyx_v_mi, __pyx_int_0, Py_LT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2576; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_1);
+ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2576; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+ if (__pyx_t_11) {
+
+ /* "csamtools.pyx":2577
+ * # signed ints
+ * if mi < 0:
+ * if mi >= -127: datafmt, datatype = "b", 'c' # <<<<<<<<<<<<<<
+ * elif mi >= -32767: datafmt, datatype = "h", 's'
+ * elif absmax < -2147483648: raise ValueError( "integer %i out of range of BAM/SAM specification" % value )
+ */
+ __pyx_t_1 = PyObject_RichCompare(__pyx_v_mi, __pyx_int_neg_127, Py_GE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_1);
+ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+ if (__pyx_t_11) {
+ __pyx_t_1 = ((PyObject *)__pyx_n_s__b);
+ __Pyx_INCREF(__pyx_t_1);
+ __pyx_t_6 = ((PyObject *)__pyx_n_s__c);
+ __Pyx_INCREF(__pyx_t_6);
+ __Pyx_XDECREF(__pyx_v_datafmt);
+ __pyx_v_datafmt = __pyx_t_1;
+ __pyx_t_1 = 0;
+ __Pyx_XDECREF(__pyx_v_datatype);
+ __pyx_v_datatype = __pyx_t_6;
+ __pyx_t_6 = 0;
+ goto __pyx_L12;
+ }
+
+ /* "csamtools.pyx":2578
+ * if mi < 0:
+ * if mi >= -127: datafmt, datatype = "b", 'c'
+ * elif mi >= -32767: datafmt, datatype = "h", 's' # <<<<<<<<<<<<<<
+ * elif absmax < -2147483648: raise ValueError( "integer %i out of range of BAM/SAM specification" % value )
+ * else: datafmt, datatype = "i", 'i'
+ */
+ __pyx_t_6 = PyObject_RichCompare(__pyx_v_mi, __pyx_int_neg_32767, Py_GE); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_6);
+ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+ if (__pyx_t_11) {
+ __pyx_t_6 = ((PyObject *)__pyx_n_s__h);
+ __Pyx_INCREF(__pyx_t_6);
+ __pyx_t_1 = ((PyObject *)__pyx_n_s__s);
+ __Pyx_INCREF(__pyx_t_1);
+ __Pyx_XDECREF(__pyx_v_datafmt);
+ __pyx_v_datafmt = __pyx_t_6;
+ __pyx_t_6 = 0;
+ __Pyx_XDECREF(__pyx_v_datatype);
+ __pyx_v_datatype = __pyx_t_1;
+ __pyx_t_1 = 0;
+ goto __pyx_L12;
+ }
+
+ /* "csamtools.pyx":2579
+ * if mi >= -127: datafmt, datatype = "b", 'c'
+ * elif mi >= -32767: datafmt, datatype = "h", 's'
+ * elif absmax < -2147483648: raise ValueError( "integer %i out of range of BAM/SAM specification" % value ) # <<<<<<<<<<<<<<
+ * else: datafmt, datatype = "i", 'i'
+ *
+ */
+ __pyx_t_1 = PyObject_RichCompare(__pyx_v_absmax, __pyx_int_neg_2147483648, Py_LT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_1);
+ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+ if (__pyx_t_11) {
+ __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_140), __pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_1));
+ __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_6);
+ PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_t_1));
+ __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
+ __pyx_t_1 = 0;
+ __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_1);
+ __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
+ __Pyx_Raise(__pyx_t_1, 0, 0, 0);
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L12;
+ }
+ /*else*/ {
+
+ /* "csamtools.pyx":2580
+ * elif mi >= -32767: datafmt, datatype = "h", 's'
+ * elif absmax < -2147483648: raise ValueError( "integer %i out of range of BAM/SAM specification" % value )
+ * else: datafmt, datatype = "i", 'i' # <<<<<<<<<<<<<<
+ *
+ * # unsigned ints
+ */
+ __pyx_t_1 = ((PyObject *)__pyx_n_s__i);
+ __Pyx_INCREF(__pyx_t_1);
+ __pyx_t_6 = ((PyObject *)__pyx_n_s__i);
+ __Pyx_INCREF(__pyx_t_6);
+ __Pyx_XDECREF(__pyx_v_datafmt);
+ __pyx_v_datafmt = __pyx_t_1;
+ __pyx_t_1 = 0;
+ __Pyx_XDECREF(__pyx_v_datatype);
+ __pyx_v_datatype = __pyx_t_6;
+ __pyx_t_6 = 0;
+ }
+ __pyx_L12:;
+ goto __pyx_L11;
+ }
+ /*else*/ {
+
+ /* "csamtools.pyx":2584
+ * # unsigned ints
+ * else:
+ * if absmax <= 255: datafmt, datatype = "B", 'C' # <<<<<<<<<<<<<<
+ * elif absmax <= 65535: datafmt, datatype = "H", 'S'
+ * elif absmax > 4294967295: raise ValueError( "integer %i out of range of BAM/SAM specification" % value )
+ */
+ __pyx_t_6 = PyObject_RichCompare(__pyx_v_absmax, __pyx_int_255, Py_LE); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_6);
+ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+ if (__pyx_t_11) {
+ __pyx_t_6 = ((PyObject *)__pyx_n_s__B);
+ __Pyx_INCREF(__pyx_t_6);
+ __pyx_t_1 = ((PyObject *)__pyx_n_s__C);
+ __Pyx_INCREF(__pyx_t_1);
+ __Pyx_XDECREF(__pyx_v_datafmt);
+ __pyx_v_datafmt = __pyx_t_6;
+ __pyx_t_6 = 0;
+ __Pyx_XDECREF(__pyx_v_datatype);
+ __pyx_v_datatype = __pyx_t_1;
+ __pyx_t_1 = 0;
+ goto __pyx_L13;
+ }
+
+ /* "csamtools.pyx":2585
+ * else:
+ * if absmax <= 255: datafmt, datatype = "B", 'C'
+ * elif absmax <= 65535: datafmt, datatype = "H", 'S' # <<<<<<<<<<<<<<
+ * elif absmax > 4294967295: raise ValueError( "integer %i out of range of BAM/SAM specification" % value )
+ * else: datafmt, datatype = "I", 'I'
+ */
+ __pyx_t_1 = PyObject_RichCompare(__pyx_v_absmax, __pyx_int_65535, Py_LE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_1);
+ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+ if (__pyx_t_11) {
+ __pyx_t_1 = ((PyObject *)__pyx_n_s__H);
+ __Pyx_INCREF(__pyx_t_1);
+ __pyx_t_6 = ((PyObject *)__pyx_n_s__S);
+ __Pyx_INCREF(__pyx_t_6);
+ __Pyx_XDECREF(__pyx_v_datafmt);
+ __pyx_v_datafmt = __pyx_t_1;
+ __pyx_t_1 = 0;
+ __Pyx_XDECREF(__pyx_v_datatype);
+ __pyx_v_datatype = __pyx_t_6;
+ __pyx_t_6 = 0;
+ goto __pyx_L13;
+ }
+
+ /* "csamtools.pyx":2586
+ * if absmax <= 255: datafmt, datatype = "B", 'C'
+ * elif absmax <= 65535: datafmt, datatype = "H", 'S'
+ * elif absmax > 4294967295: raise ValueError( "integer %i out of range of BAM/SAM specification" % value ) # <<<<<<<<<<<<<<
+ * else: datafmt, datatype = "I", 'I'
+ *
+ */
+ __pyx_t_6 = PyObject_RichCompare(__pyx_v_absmax, __pyx_int_4294967295, Py_GT); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_6);
+ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+ if (__pyx_t_11) {
+ __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_140), __pyx_v_value); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_6));
+ __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_1);
+ PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_6));
+ __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
+ __pyx_t_6 = 0;
+ __pyx_t_6 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_6);
+ __Pyx_DECREF(((PyObject *)__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_filename = __pyx_f[0]; __pyx_lineno = 2586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L13;
+ }
+ /*else*/ {
+
+ /* "csamtools.pyx":2587
+ * elif absmax <= 65535: datafmt, datatype = "H", 'S'
+ * elif absmax > 4294967295: raise ValueError( "integer %i out of range of BAM/SAM specification" % value )
+ * else: datafmt, datatype = "I", 'I' # <<<<<<<<<<<<<<
+ *
+ * datafmt = "2sccI%i%s" % (len(value), datafmt)
+ */
+ __pyx_t_6 = ((PyObject *)__pyx_n_s__I);
+ __Pyx_INCREF(__pyx_t_6);
+ __pyx_t_1 = ((PyObject *)__pyx_n_s__I);
+ __Pyx_INCREF(__pyx_t_1);
+ __Pyx_XDECREF(__pyx_v_datafmt);
+ __pyx_v_datafmt = __pyx_t_6;
+ __pyx_t_6 = 0;
+ __Pyx_XDECREF(__pyx_v_datatype);
+ __pyx_v_datatype = __pyx_t_1;
+ __pyx_t_1 = 0;
+ }
+ __pyx_L13:;
+ }
+ __pyx_L11:;
+ }
+ __pyx_L10:;
+
+ /* "csamtools.pyx":2589
+ * else: datafmt, datatype = "I", 'I'
+ *
+ * datafmt = "2sccI%i%s" % (len(value), datafmt) # <<<<<<<<<<<<<<
+ * args.extend( [pytag[:2],
+ * pytype.encode('ascii'),
+ */
+ __pyx_t_12 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_12); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_1);
+ __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_6);
+ PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
+ __Pyx_GIVEREF(__pyx_t_1);
+ __Pyx_INCREF(__pyx_v_datafmt);
+ PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_datafmt);
+ __Pyx_GIVEREF(__pyx_v_datafmt);
+ __pyx_t_1 = 0;
+ __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_141), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_1));
+ __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
+ __Pyx_DECREF(__pyx_v_datafmt);
+ __pyx_v_datafmt = ((PyObject *)__pyx_t_1);
+ __pyx_t_1 = 0;
+
+ /* "csamtools.pyx":2590
+ *
+ * datafmt = "2sccI%i%s" % (len(value), datafmt)
+ * args.extend( [pytag[:2], # <<<<<<<<<<<<<<
+ * pytype.encode('ascii'),
+ * datatype.encode('ascii'),
+ */
+ __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_args), __pyx_n_s__extend); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_1);
+
+ /* "csamtools.pyx":2593
+ * pytype.encode('ascii'),
+ * datatype.encode('ascii'),
+ * len(value)] + list(value) ) # <<<<<<<<<<<<<<
+ * fmts.append( datafmt )
+ * continue
+ */
+ __pyx_t_6 = __Pyx_PySequence_GetSlice(__pyx_v_pytag, 0, 2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_6);
+
+ /* "csamtools.pyx":2591
+ * datafmt = "2sccI%i%s" % (len(value), datafmt)
+ * args.extend( [pytag[:2],
+ * pytype.encode('ascii'), # <<<<<<<<<<<<<<
+ * datatype.encode('ascii'),
+ * len(value)] + list(value) )
+ */
+ __pyx_t_7 = PyObject_GetAttr(__pyx_v_pytype, __pyx_n_s__encode); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_7);
+ __pyx_t_8 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_k_tuple_142), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_8);
+ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+
+ /* "csamtools.pyx":2592
+ * args.extend( [pytag[:2],
+ * pytype.encode('ascii'),
+ * datatype.encode('ascii'), # <<<<<<<<<<<<<<
+ * len(value)] + list(value) )
+ * fmts.append( datafmt )
+ */
+ __pyx_t_7 = PyObject_GetAttr(__pyx_v_datatype, __pyx_n_s__encode); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_7);
+ __pyx_t_13 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_k_tuple_143), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_13);
+ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+
+ /* "csamtools.pyx":2593
+ * pytype.encode('ascii'),
+ * datatype.encode('ascii'),
+ * len(value)] + list(value) ) # <<<<<<<<<<<<<<
+ * fmts.append( datafmt )
+ * continue
+ */
+ __pyx_t_12 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = PyInt_FromSsize_t(__pyx_t_12); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_7);
+ __pyx_t_14 = PyList_New(4); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_14);
+ PyList_SET_ITEM(__pyx_t_14, 0, __pyx_t_6);
+ __Pyx_GIVEREF(__pyx_t_6);
+ PyList_SET_ITEM(__pyx_t_14, 1, __pyx_t_8);
+ __Pyx_GIVEREF(__pyx_t_8);
+ PyList_SET_ITEM(__pyx_t_14, 2, __pyx_t_13);
+ __Pyx_GIVEREF(__pyx_t_13);
+ PyList_SET_ITEM(__pyx_t_14, 3, __pyx_t_7);
+ __Pyx_GIVEREF(__pyx_t_7);
+ __pyx_t_6 = 0;
+ __pyx_t_8 = 0;
+ __pyx_t_13 = 0;
+ __pyx_t_7 = 0;
+ __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_7);
+ __Pyx_INCREF(__pyx_v_value);
+ PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_value);
+ __Pyx_GIVEREF(__pyx_v_value);
+ __pyx_t_13 = PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_13);
+ __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+ __pyx_t_7 = PyNumber_Add(((PyObject *)__pyx_t_14), __pyx_t_13); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_7));
+ __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
+ __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+ __pyx_t_13 = PyTuple_New(1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_13);
+ PyTuple_SET_ITEM(__pyx_t_13, 0, ((PyObject *)__pyx_t_7));
+ __Pyx_GIVEREF(((PyObject *)__pyx_t_7));
+ __pyx_t_7 = 0;
+ __pyx_t_7 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_13), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_7);
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+ __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0;
+ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+
+ /* "csamtools.pyx":2594
+ * datatype.encode('ascii'),
+ * len(value)] + list(value) )
+ * fmts.append( datafmt ) # <<<<<<<<<<<<<<
+ * continue
+ *
+ */
+ __pyx_t_15 = PyList_Append(__pyx_v_fmts, __pyx_v_datafmt); if (unlikely(__pyx_t_15 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+ /* "csamtools.pyx":2595
+ * len(value)] + list(value) )
+ * fmts.append( datafmt )
+ * continue # <<<<<<<<<<<<<<
+ *
+ * if t is float:
+ */
+ goto __pyx_L4_continue;
+ goto __pyx_L9;
+ }
+ __pyx_L9:;
+
+ /* "csamtools.pyx":2597
+ * continue
+ *
+ * if t is float: # <<<<<<<<<<<<<<
+ * fmt, pytype = "2scf", 'f'
+ * elif t is int:
+ */
+ __pyx_t_11 = (__pyx_v_t == ((PyObject*)(&PyFloat_Type)));
+ if (__pyx_t_11) {