Skip to content

Commit e642c06

Browse files
committed
updated methods and docs
1 parent 3fc13c6 commit e642c06

File tree

4 files changed

+21
-22
lines changed

4 files changed

+21
-22
lines changed

README.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ from pathlib import Path
1515
fn main():
1616
var csv_path = Path("path/to/csv/file.csv")
1717
var reader = CsvReader(csv_path)
18-
for i in range(len(reader.elements)):
19-
print(reader.elements[i])
18+
for i in range(len(reader)):
19+
print(reader[i])
2020
```
2121

2222
##### Optional Usage
@@ -28,8 +28,8 @@ from pathlib import Path
2828
fn main():
2929
var csv_path = Path("path/to/csv/file.csv")
3030
var reader = CsvReader(csv_path, delimiter="|", quotation_mark='*')
31-
for i in range(len(reader.elements):
32-
print(reader.elements[i])
31+
for i in range(len(reader)):
32+
print(reader[i])
3333
```
3434

3535
### Attributes
@@ -46,3 +46,8 @@ reader.length : Int # total number of elements
4646

4747
##### Indexing
4848

49+
currently the array is only 1D, so indexing is fairly manual.
50+
51+
```Mojo
52+
reader[0] # first element
53+
```

src/csv_reader.mojo

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ from testing import assert_true
55

66
# https://www.rfc-editor.org/rfc/rfc4180
77
#
8+
@value
89
struct CsvReader:
910
# var data: Dict[String,String]
1011
var headers: List[String]
@@ -120,6 +121,13 @@ struct CsvReader:
120121
raise Error("Index out of range")
121122
return self.elements[index]
122123

124+
125+
fn __len__(self) -> Int:
126+
return self.length
127+
128+
# fn __iter__(self) -> Iterator[String]:
129+
# return self.elements.__iter__()
130+
123131
# fn __repr__(self) -> String:
124132
# var out = String("[")
125133
# for el in self.elements:

test.mojo

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ fn main() raises:
2424
print("----------")
2525
try:
2626
assert_true(rd.col_count == 3)
27-
for x in range(len(rd.elements)):
27+
for x in range(len(rd)):
2828
print(rd.elements[x])
2929
assert_true(
3030
rd.elements[x] == VALID[x],
@@ -33,27 +33,13 @@ fn main() raises:
3333
),
3434
)
3535
print("----------")
36-
# print(rd)
3736
print("columns:", rd.col_count, "of 3")
3837
print("rows:", rd.row_count, "of 3")
3938
assert_true(rd.row_count == 3)
40-
print("elements:", rd.length, "of 9")
39+
print("elements:", rd.__len__(), "of 9")
4140
assert_true(len(rd.elements) == 9)
4241
except AssertionError:
4342
print(AssertionError)
4443
raise AssertionError
4544
print("----------")
4645
print("parse successful")
47-
48-
49-
# columns: 3
50-
# ----------
51-
# item1
52-
# item2
53-
# "ite,em3"
54-
# pic
55-
# pi c
56-
# pic
57-
# r_i_1
58-
# r_i_2
59-
# r_i_3

test_pack.mojo

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ fn main() raises:
2525
print("----------")
2626
try:
2727
assert_true(rd.col_count == 3)
28-
for x in range(len(rd.elements)):
28+
for x in range(len(rd)):
2929
print(rd.elements[x])
3030
assert_true(
3131
rd.elements[x] == VALID[x],
@@ -37,7 +37,7 @@ fn main() raises:
3737
print("columns:", rd.col_count, "of 3")
3838
print("rows:", rd.row_count, "of 3")
3939
assert_true(rd.row_count == 3)
40-
print("elements:", rd.length, "of 9")
40+
print("elements:", rd.__len__(), "of 9")
4141
assert_true(len(rd.elements) == 9)
4242
except AssertionError:
4343
print(AssertionError)

0 commit comments

Comments
 (0)