1 | initial version |

Not sure if it is a bug, but in your example `n`

is a Python `int`

, not a Sage integer. You can use `srange(6)`

instead of `range`

, it should work.

2 | No.2 Revision |

Not sure if it is a bug, but in your example `n`

is a Python `int`

, not a Sage integer. You can use `srange(6)`

instead of ~~range~~range(6)~~, it ~~ in your first loop, then the ellipsis should work should work.

3 | No.3 Revision |

Not sure if it is a bug, but in your example `n`

is a Python `int`

~~, ~~ because it is created by the `range`

function, not a Sage integer. You can use `srange(6)`

instead of `range(6)`

in your first loop, then the ellipsis should ~~work should ~~work.

4 | No.4 Revision |

Not sure if it is a bug, but in your example `n`

is a Python `int`

(not a Sage integer) because it is created by the `range`

~~function, not a Sage integer. ~~function,. You can use `srange(6)`

instead of `range(6)`

in your first loop, then the ellipsis should work.

5 | No.5 Revision |

~~Not sure if it is a bug, but in ~~In your example `n`

is a Python `int`

(not a Sage integer) because it is created by the `range`

function,. You can use `srange(6)`

instead of `range(6)`

in your first loop, then the ellipsis should work.

**EDIT** : since i am a player, i inspected further to decide whether it is a bug or a feature. In the documentation of `ellipsis_iter`

it is claimed that the result is an *iterator*, and in the official Python documentation, iterators are required to provide a `.next()`

method. With Python integers as "universe" (see below), `ellipsis_iter`

provides an object that does not provide a `.next()`

method:

```
sage: I = ellipsis_iter(int(-42),Ellipsis,int(42))
sage: I.next()
AttributeError: 'xrange' object has no attribute 'next'
```

Let us inspect why.

So, if you look at the source code of `ellipsis_iter`

(see `ellipsis_iter??`

or the file `src/sage/misc/misc.py`

), you will see that it uses `xsrange`

. Now if you look at `xsrange`

, you will see that it does something when the "universe" is `ZZ`

, but just calls `xrange`

Python builtin:

```
sage: xsrange(42)
<generator object generic_xsrange at 0x7f93417ea230>
sage: xsrange(int(42))
xrange(42)
```

Unfortunately, `xrange`

is of type `'xrange'`

and is not an iterator (though it is an iterable since you can loop over it).

```
sage: xsrange(42).next()
0
sage: xrange(42).next()
AttributeError: 'xrange' object has no attribute 'next'
```

So, it is a bug, thanks for reporting.

6 | No.6 Revision |

In your example `n`

is a Python `int`

(not a Sage integer) because it is created by the `range`

function,. You can use `srange(6)`

instead of `range(6)`

in your first loop, then the ellipsis should work.

**EDIT** : since i am a player, i inspected further to decide whether it is a bug or a feature. In the documentation of `ellipsis_iter`

it is claimed that the result is an *iterator*, and in the official Python documentation, iterators are required to provide a `.next()`

method. With Python integers as "universe" (see below), `ellipsis_iter`

provides an object that does not provide a `.next()`

method:

```
sage: I = ellipsis_iter(int(-42),Ellipsis,int(42))
sage: I.next()
AttributeError: 'xrange' object has no attribute 'next'
```

Let us inspect why.

So, if you look at the source code of `ellipsis_iter`

(see `ellipsis_iter??`

or the file `src/sage/misc/misc.py`

), you will see that it uses `xsrange`

. Now if you look at `xsrange`

, you will see that it does something when the "universe" is `ZZ`

, but just calls `xrange`

Python builtin:

```
sage: xsrange(42)
<generator object generic_xsrange at 0x7f93417ea230>
sage: xsrange(int(42))
xrange(42)
```

See in the source code:

```
if universe is not ZZ:
return xrange(start, end, step)
```

Unfortunately, `xrange`

is of type `'xrange'`

and is not an iterator (though it is an iterable since you can loop over it).

```
sage: xsrange(42).next()
0
sage: xrange(42).next()
AttributeError: 'xrange' object has no attribute 'next'
```

So, it is a bug, thanks for reporting.

7 | No.7 Revision |

In your example `n`

is a Python `int`

(not a Sage integer) because it is created by the `range`

function,. You can use `srange(6)`

instead of `range(6)`

in your first loop, then the ellipsis should work.

**EDIT** : since i am a player, i inspected further to decide whether it is a bug or a feature. In the documentation of `ellipsis_iter`

it is claimed that the result is an *iterator*, and in the official Python documentation, iterators are required to provide a `.next()`

method. With Python integers as "universe" (see below), `ellipsis_iter`

provides an object that does not provide a `.next()`

method:

```
sage: I = ellipsis_iter(int(-42),Ellipsis,int(42))
sage: I.next()
AttributeError: 'xrange' object has no attribute 'next'
```

Let us inspect why.

So, if you look at the source code of `ellipsis_iter`

(see `ellipsis_iter??`

or the file `src/sage/misc/misc.py`

), you will see that it uses `xsrange`

. Now if you look at `xsrange`

, you will see that it does something when the "universe" is `ZZ`

, but just calls `xrange`

Python builtin:

```
sage: xsrange(42)
<generator object generic_xsrange at 0x7f93417ea230>
sage: xsrange(int(42))
xrange(42)
```

See in the source code:

```
if universe is not ZZ:
return xrange(start, end, step)
```

Unfortunately, `xrange`

is of type `'xrange'`

and is not an iterator (though it is an iterable since you can loop over it).

```
sage: xsrange(42).next()
0
sage: xrange(42).next()
AttributeError: 'xrange' object has no attribute 'next'
```

So, it is a bug, thanks for ~~reporting.~~

8 | No.8 Revision |

In your example `n`

is a Python `int`

(not a Sage integer) because it is created by the `range`

function,. You can use `srange(6)`

instead of `range(6)`

in your first loop, then the ellipsis should work.

**EDIT** : since i am a player, i inspected further to decide whether it is a bug or a feature. In the documentation of `ellipsis_iter`

it is claimed that the result is an *iterator*, and in the official Python documentation, iterators are required to provide a `.next()`

method. With Python integers as "universe" (see below), `ellipsis_iter`

provides an object that does not provide a `.next()`

method:

```
sage: I = ellipsis_iter(int(-42),Ellipsis,int(42))
sage: I.next()
AttributeError: 'xrange' object has no attribute 'next'
```

Let us inspect why.

`ellipsis_iter`

(see `ellipsis_iter??`

or the file `src/sage/misc/misc.py`

), you will see that it uses `xsrange`

. Now if you look at `xsrange`

, you will see that it does something when the "universe" is `ZZ`

, but just calls `xrange`

Python builtin:

```
sage: xsrange(42)
<generator object generic_xsrange at 0x7f93417ea230>
sage: xsrange(int(42))
xrange(42)
```

See in the source code:

```
if universe is not ZZ:
return xrange(start, end, step)
```

`xrange`

is of type `'xrange'`

and is not an iterator (though it is an iterable since you can loop over it).

```
sage: xsrange(42).next()
0
sage: xrange(42).next()
AttributeError: 'xrange' object has no attribute 'next'
```

So, it is a bug, thanks for reporting, this is now trac ticket 18538~~.~~

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.