File tree Expand file tree Collapse file tree 4 files changed +21
-22
lines changed
Expand file tree Collapse file tree 4 files changed +21
-22
lines changed Original file line number Diff line number Diff line change @@ -15,8 +15,8 @@ from pathlib import Path
1515fn 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
2828fn 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+ ```
Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ from testing import assert_true
55
66# https://www.rfc-editor.org/rfc/rfc4180
77#
8+ @value
89struct 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:
Original file line number Diff line number Diff 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
Original file line number Diff line number Diff 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 )
You can’t perform that action at this time.
0 commit comments