internal IntRange _CalcCellRange(PyObject key, Range seq) { if (key.IsNone()) { return(new IntRange(1, seq.count)); } if (key.IsInt()) { return(new IntRange( key.As <int>() + 1 )); } if (key.IsSlice()) { var range = new PyRangeAccess(key); if (range.Step != null) { throw new Exception(); } return(new IntRange( range.Start?.As <int>() + 1 ?? 1, range.Stop?.As <int>() ?? rows.count )); } throw new Exception($"key = {key}"); }
public Range get_item0_key(PyObject key) { using (Py.GIL()) { if (key.IsString()) { return(get_range(key.As <string>())); } if (key.IsSlice()) { var range = new PyRangeAccess(key); if (range.Start == null && range.Stop == null) { return(this); } if ((range.Start?.IsString() ?? false) && (range.Stop?.IsString() ?? false)) { return(get_range($"{range.Start.As<string>()}{range.Stop.As<string>()}")); } } throw new Exception("invaild type"); } }