Skip to content

Commit 1ae8680

Browse files
committed
Separate ranges for version 1.9 and 1.10
1 parent c4de1c8 commit 1ae8680

File tree

3 files changed

+76
-87
lines changed

3 files changed

+76
-87
lines changed

py/range.go

-87
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,6 @@
66

77
package py
88

9-
import (
10-
"strings"
11-
)
12-
139
// A python Range object
1410
// FIXME one day support BigInts too!
1511
type Range struct {
@@ -112,34 +108,6 @@ func (r *Range) M__str__() (Object, error) {
112108
return r.M__repr__()
113109
}
114110

115-
func (r *Range) repr() (Object, error) {
116-
var b strings.Builder
117-
b.WriteString("range(")
118-
start, err := ReprAsString(r.Start)
119-
if err != nil {
120-
return nil, err
121-
}
122-
stop, err := ReprAsString(r.Stop)
123-
if err != nil {
124-
return nil, err
125-
}
126-
b.WriteString(start)
127-
b.WriteString(", ")
128-
b.WriteString(stop)
129-
130-
if r.Step != 1 {
131-
step, err := ReprAsString(r.Step)
132-
if err != nil {
133-
return nil, err
134-
}
135-
b.WriteString(", ")
136-
b.WriteString(step)
137-
}
138-
b.WriteString(")")
139-
140-
return String(b.String()), nil
141-
}
142-
143111
func (r *Range) M__repr__() (Object, error) {
144112
return r.repr()
145113
}
@@ -196,58 +164,3 @@ func computeRangeLength(start, stop, step Int) Int {
196164
var _ I__getitem__ = (*Range)(nil)
197165
var _ I__iter__ = (*Range)(nil)
198166
var _ I_iterator = (*RangeIterator)(nil)
199-
200-
201-
func (a *Range) M__eq__(other Object) (Object, error) {
202-
b, ok := other.(*Range)
203-
if !ok {
204-
return NotImplemented, nil
205-
}
206-
207-
if a.Length != b.Length {
208-
return False, nil
209-
}
210-
211-
if a.Length == 0 {
212-
return True, nil
213-
}
214-
if a.Start != b.Start {
215-
return False, nil
216-
}
217-
218-
if a.Step == 1 {
219-
return True, nil
220-
}
221-
if a.Step != b.Step {
222-
return False, nil
223-
}
224-
225-
return True, nil
226-
}
227-
228-
func (a *Range) M__ne__(other Object) (Object, error) {
229-
b, ok := other.(*Range)
230-
if !ok {
231-
return NotImplemented, nil
232-
}
233-
234-
if a.Length != b.Length {
235-
return True, nil
236-
}
237-
238-
if a.Length == 0 {
239-
return False, nil
240-
}
241-
if a.Start != b.Start {
242-
return True, nil
243-
}
244-
245-
if a.Step == 1 {
246-
return False, nil
247-
}
248-
if a.Step != b.Step {
249-
return True, nil
250-
}
251-
252-
return False, nil
253-
}

py/range_repr110.go

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// Copyright 2018 The go-python Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style
3+
// license that can be found in the LICENSE file.
4+
5+
// +build go1.10
6+
// Range object
7+
8+
package py
9+
10+
import "strings"
11+
12+
func (r *Range) repr() (Object, error) {
13+
var b strings.Builder
14+
b.WriteString("range(")
15+
start, err := ReprAsString(r.Start)
16+
if err != nil {
17+
return nil, err
18+
}
19+
stop, err := ReprAsString(r.Stop)
20+
if err != nil {
21+
return nil, err
22+
}
23+
b.WriteString(start)
24+
b.WriteString(", ")
25+
b.WriteString(stop)
26+
27+
if r.Step != 1 {
28+
step, err := ReprAsString(r.Step)
29+
if err != nil {
30+
return nil, err
31+
}
32+
b.WriteString(", ")
33+
b.WriteString(step)
34+
}
35+
b.WriteString(")")
36+
37+
return String(b.String()), nil
38+
}

py/range_repr19.go

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// Copyright 2018 The go-python Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style
3+
// license that can be found in the LICENSE file.
4+
5+
// +build !go1.10
6+
// Range object
7+
8+
package py
9+
10+
import "bytes"
11+
12+
func (r *Range) repr() (Object, error) {
13+
var b bytes.Buffer
14+
b.WriteString("range(")
15+
start, err := ReprAsString(r.Start)
16+
if err != nil {
17+
return nil, err
18+
}
19+
stop, err := ReprAsString(r.Stop)
20+
if err != nil {
21+
return nil, err
22+
}
23+
b.WriteString(start)
24+
b.WriteString(", ")
25+
b.WriteString(stop)
26+
27+
if r.Step != 1 {
28+
step, err := ReprAsString(r.Step)
29+
if err != nil {
30+
return nil, err
31+
}
32+
b.WriteString(", ")
33+
b.WriteString(step)
34+
}
35+
b.WriteString(")")
36+
37+
return String(b.String()), nil
38+
}

0 commit comments

Comments
 (0)