Skip to content

Commit 2cb76fd

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

File tree

3 files changed

+76
-87
lines changed

3 files changed

+76
-87
lines changed

py/range.go

Lines changed: 0 additions & 87 deletions
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

Lines changed: 38 additions & 0 deletions
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.9
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

Lines changed: 38 additions & 0 deletions
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.9
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy