Dear all
has anyone written or ported a CSV parser to Cuis? For example this one http://www.squeaksource.com/@BiTWvEAxOgxLE9wJ/T0wdhSm3 Description: A simple parser for comma-separated-value files. Creator: Avi Bryant Regards Hannes Hirzel _______________________________________________ Cuis mailing list [hidden email] http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org |
P.S: I'd like the input to come from the clipboard. This is
1. Select a range of cells in a spreadsheet (MSExcel / Libreoffice calc) 2. Copy to clipboard 3. Bring the Cuis window to the front 4. Press a 'paste data from Excel' button In Cuis some processing will be done and the result will be put back into the clipboard On 5/9/15, H. Hirzel <[hidden email]> wrote: > Dear all > > has anyone written or ported a CSV parser to Cuis? > > For example this one > > http://www.squeaksource.com/@BiTWvEAxOgxLE9wJ/T0wdhSm3 > > Description: A simple parser for comma-separated-value files. > Creator: Avi Bryant > > Regards > > Hannes Hirzel > _______________________________________________ Cuis mailing list [hidden email] http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org |
Porting any of them shouldn't be hard. You need, as usual, to take into
account that Squeak and Pharo uses #cr as line terminator, while Cuis uses #lf. In any case, check ExtendedClipboard.pck.st, and maybe extend it. Cheers, Juan Vuletich On 09/05/2015 06:32 a.m., H. Hirzel wrote: > P.S: I'd like the input to come from the clipboard. This is > > 1. Select a range of cells in a spreadsheet (MSExcel / Libreoffice calc) > 2. Copy to clipboard > 3. Bring the Cuis window to the front > 4. Press a 'paste data from Excel' button > > In Cuis some processing will be done and the result will be put back > into the clipboard > > > On 5/9/15, H. Hirzel<[hidden email]> wrote: >> Dear all >> >> has anyone written or ported a CSV parser to Cuis? >> >> For example this one >> >> http://www.squeaksource.com/@BiTWvEAxOgxLE9wJ/T0wdhSm3 >> >> Description: A simple parser for comma-separated-value files. >> Creator: Avi Bryant >> >> Regards >> >> Hannes Hirzel >> > _______________________________________________ > Cuis mailing list > [hidden email] > http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org > _______________________________________________ Cuis mailing list [hidden email] http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org |
Yes, I assume so as well. Thank you for the note about line terminators.
There is also the Pharo Neo-CSV parser which comes with many tests. https://github.com/svenvc/NeoCVS It is probably easier to take a Pharo 4.0 image, load NeoCSV in one click and file out the class categories Neo-CSV-Core Neo-CSV-Tests --Hannes On 5/9/15, Juan Vuletich <[hidden email]> wrote: > Porting any of them shouldn't be hard. You need, as usual, to take into > account that Squeak and Pharo uses #cr as line terminator, while Cuis > uses #lf. > > In any case, check ExtendedClipboard.pck.st, and maybe extend it. > > Cheers, > Juan Vuletich > > On 09/05/2015 06:32 a.m., H. Hirzel wrote: >> P.S: I'd like the input to come from the clipboard. This is >> >> 1. Select a range of cells in a spreadsheet (MSExcel / Libreoffice calc) >> 2. Copy to clipboard >> 3. Bring the Cuis window to the front >> 4. Press a 'paste data from Excel' button >> >> In Cuis some processing will be done and the result will be put back >> into the clipboard >> >> >> On 5/9/15, H. Hirzel<[hidden email]> wrote: >>> Dear all >>> >>> has anyone written or ported a CSV parser to Cuis? >>> >>> For example this one >>> >>> http://www.squeaksource.com/@BiTWvEAxOgxLE9wJ/T0wdhSm3 >>> >>> Description: A simple parser for comma-separated-value files. >>> Creator: Avi Bryant >>> >>> Regards >>> >>> Hannes Hirzel >>> >> _______________________________________________ >> Cuis mailing list >> [hidden email] >> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org >> > > _______________________________________________ Cuis mailing list [hidden email] http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org |
And it comes with documentation
https://github.com/svenvc/docs/blob/master/neo/neo-csv-paper.md "CSV is a lightweight text-based de facto standard for human-readable tabular data interchange." On 5/9/15, H. Hirzel <[hidden email]> wrote: > Yes, I assume so as well. Thank you for the note about line terminators. > > There is also the Pharo Neo-CSV parser which comes with many tests. > > https://github.com/svenvc/NeoCVS > > It is probably easier to take a Pharo 4.0 image, load NeoCSV in one > click and file out the class categories > > Neo-CSV-Core > Neo-CSV-Tests > > --Hannes > > On 5/9/15, Juan Vuletich <[hidden email]> wrote: >> Porting any of them shouldn't be hard. You need, as usual, to take into >> account that Squeak and Pharo uses #cr as line terminator, while Cuis >> uses #lf. >> >> In any case, check ExtendedClipboard.pck.st, and maybe extend it. >> >> Cheers, >> Juan Vuletich >> >> On 09/05/2015 06:32 a.m., H. Hirzel wrote: >>> P.S: I'd like the input to come from the clipboard. This is >>> >>> 1. Select a range of cells in a spreadsheet (MSExcel / Libreoffice calc) >>> 2. Copy to clipboard >>> 3. Bring the Cuis window to the front >>> 4. Press a 'paste data from Excel' button >>> >>> In Cuis some processing will be done and the result will be put back >>> into the clipboard >>> >>> >>> On 5/9/15, H. Hirzel<[hidden email]> wrote: >>>> Dear all >>>> >>>> has anyone written or ported a CSV parser to Cuis? >>>> >>>> For example this one >>>> >>>> http://www.squeaksource.com/@BiTWvEAxOgxLE9wJ/T0wdhSm3 >>>> >>>> Description: A simple parser for comma-separated-value files. >>>> Creator: Avi Bryant >>>> >>>> Regards >>>> >>>> Hannes Hirzel >>>> >>> _______________________________________________ >>> Cuis mailing list >>> [hidden email] >>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org >>> >> >> > _______________________________________________ Cuis mailing list [hidden email] http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org |
I understand that I need to click 'Install' in the file browser to get
a separate ChangeSet object. https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/CodeManagementInCuis.md#loading-changeset-files-into-cuis And it that works well and after some fixes. I do in the Package tool 'Create Package' https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/CodeManagementInCuis.md#packages --Hannes On 5/9/15, H. Hirzel <[hidden email]> wrote: > And it comes with documentation > > https://github.com/svenvc/docs/blob/master/neo/neo-csv-paper.md > > "CSV is a lightweight text-based de facto standard for human-readable > tabular data interchange." > > On 5/9/15, H. Hirzel <[hidden email]> wrote: >> Yes, I assume so as well. Thank you for the note about line terminators. >> >> There is also the Pharo Neo-CSV parser which comes with many tests. >> >> https://github.com/svenvc/NeoCVS >> >> It is probably easier to take a Pharo 4.0 image, load NeoCSV in one >> click and file out the class categories >> >> Neo-CSV-Core >> Neo-CSV-Tests >> >> --Hannes >> >> On 5/9/15, Juan Vuletich <[hidden email]> wrote: >>> Porting any of them shouldn't be hard. You need, as usual, to take into >>> account that Squeak and Pharo uses #cr as line terminator, while Cuis >>> uses #lf. >>> >>> In any case, check ExtendedClipboard.pck.st, and maybe extend it. >>> >>> Cheers, >>> Juan Vuletich >>> >>> On 09/05/2015 06:32 a.m., H. Hirzel wrote: >>>> P.S: I'd like the input to come from the clipboard. This is >>>> >>>> 1. Select a range of cells in a spreadsheet (MSExcel / Libreoffice >>>> calc) >>>> 2. Copy to clipboard >>>> 3. Bring the Cuis window to the front >>>> 4. Press a 'paste data from Excel' button >>>> >>>> In Cuis some processing will be done and the result will be put back >>>> into the clipboard >>>> >>>> >>>> On 5/9/15, H. Hirzel<[hidden email]> wrote: >>>>> Dear all >>>>> >>>>> has anyone written or ported a CSV parser to Cuis? >>>>> >>>>> For example this one >>>>> >>>>> http://www.squeaksource.com/@BiTWvEAxOgxLE9wJ/T0wdhSm3 >>>>> >>>>> Description: A simple parser for comma-separated-value files. >>>>> Creator: Avi Bryant >>>>> >>>>> Regards >>>>> >>>>> Hannes Hirzel >>>>> >>>> _______________________________________________ >>>> Cuis mailing list >>>> [hidden email] >>>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org >>>> >>> >>> >> > _______________________________________________ Cuis mailing list [hidden email] http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org |
Here is the result of a first step of porting
https://github.com/hhzl/Cuis-NeoCSV 48 out of 50 tests have an error. This is mainly because of the way the test data is constructed. input := (String crlf join: #( '"x","y","z"' '100,200,300' '100,200,300' '100,200,300' '')). #crlf of Pharo 4.0 may be replaced with #crlfString of Cuis, see below But Cuis does not have #SequencableCollection>>join What are your suggestions how to proceed? It is about construction of test data. --Hannes Pharo crlf "Answer a string containing a carriage return and a linefeed." ^ self with: Character cr with: Character lf Cuis crlfString "Answer a string containing a carriage return and a linefeed." ^ self with: Character cr with: Character lf Pharo class #SequencableCollection join: aCollection "NB: this implementation only works for Array, since WriteStreams only work for Arrays and Strings. (!) Overridden in OrderedCollection and SortedCollection." ^ self class streamContents: [:stream | aCollection do: [:each | each joinTo: stream] separatedBy: [stream nextPutAll: self]] On 5/9/15, H. Hirzel <[hidden email]> wrote: > I understand that I need to click 'Install' in the file browser to get > a separate ChangeSet object. > > https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/CodeManagementInCuis.md#loading-changeset-files-into-cuis > > > And it that works well and after some fixes. I do in the Package tool > 'Create Package' > > https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/CodeManagementInCuis.md#packages > > --Hannes > > On 5/9/15, H. Hirzel <[hidden email]> wrote: >> And it comes with documentation >> >> https://github.com/svenvc/docs/blob/master/neo/neo-csv-paper.md >> >> "CSV is a lightweight text-based de facto standard for human-readable >> tabular data interchange." >> >> On 5/9/15, H. Hirzel <[hidden email]> wrote: >>> Yes, I assume so as well. Thank you for the note about line terminators. >>> >>> There is also the Pharo Neo-CSV parser which comes with many tests. >>> >>> https://github.com/svenvc/NeoCVS >>> >>> It is probably easier to take a Pharo 4.0 image, load NeoCSV in one >>> click and file out the class categories >>> >>> Neo-CSV-Core >>> Neo-CSV-Tests >>> >>> --Hannes >>> >>> On 5/9/15, Juan Vuletich <[hidden email]> wrote: >>>> Porting any of them shouldn't be hard. You need, as usual, to take into >>>> account that Squeak and Pharo uses #cr as line terminator, while Cuis >>>> uses #lf. >>>> >>>> In any case, check ExtendedClipboard.pck.st, and maybe extend it. >>>> >>>> Cheers, >>>> Juan Vuletich >>>> >>>> On 09/05/2015 06:32 a.m., H. Hirzel wrote: >>>>> P.S: I'd like the input to come from the clipboard. This is >>>>> >>>>> 1. Select a range of cells in a spreadsheet (MSExcel / Libreoffice >>>>> calc) >>>>> 2. Copy to clipboard >>>>> 3. Bring the Cuis window to the front >>>>> 4. Press a 'paste data from Excel' button >>>>> >>>>> In Cuis some processing will be done and the result will be put back >>>>> into the clipboard >>>>> >>>>> >>>>> On 5/9/15, H. Hirzel<[hidden email]> wrote: >>>>>> Dear all >>>>>> >>>>>> has anyone written or ported a CSV parser to Cuis? >>>>>> >>>>>> For example this one >>>>>> >>>>>> http://www.squeaksource.com/@BiTWvEAxOgxLE9wJ/T0wdhSm3 >>>>>> >>>>>> Description: A simple parser for comma-separated-value files. >>>>>> Creator: Avi Bryant >>>>>> >>>>>> Regards >>>>>> >>>>>> Hannes Hirzel >>>>>> >>>>> _______________________________________________ >>>>> Cuis mailing list >>>>> [hidden email] >>>>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org >>>>> >>>> >>>> >>> >> > _______________________________________________ Cuis mailing list [hidden email] http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org |
Or put the question another way: Would it be fine to have a #join
function is Cuis. Alternatively I can construct a test helper function which constructs the test data. On 5/9/15, H. Hirzel <[hidden email]> wrote: > Here is the result of a first step of porting > > https://github.com/hhzl/Cuis-NeoCSV > > 48 out of 50 tests have an error. This is mainly because of the way > the test data is constructed. > > input := (String crlf join: #( '"x","y","z"' '100,200,300' > '100,200,300' '100,200,300' '')). > > > #crlf of Pharo 4.0 may be replaced with #crlfString of Cuis, see below > > But Cuis does not have #SequencableCollection>>join > > > What are your suggestions how to proceed? It is about construction of test > data. > > > --Hannes > > > > Pharo > crlf > "Answer a string containing a carriage return and a linefeed." > > ^ self with: Character cr with: Character lf > > > Cuis > > crlfString > "Answer a string containing a carriage return and a linefeed." > > ^ self with: Character cr with: Character lf > > > > Pharo class #SequencableCollection > > join: aCollection > "NB: this implementation only works for Array, since WriteStreams > only work for Arrays and Strings. (!) > Overridden in OrderedCollection and SortedCollection." > ^ self class > streamContents: [:stream | aCollection > do: [:each | each joinTo: stream] > separatedBy: [stream nextPutAll: self]] > > > > > > On 5/9/15, H. Hirzel <[hidden email]> wrote: >> I understand that I need to click 'Install' in the file browser to get >> a separate ChangeSet object. >> >> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/CodeManagementInCuis.md#loading-changeset-files-into-cuis >> >> >> And it that works well and after some fixes. I do in the Package tool >> 'Create Package' >> >> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/CodeManagementInCuis.md#packages >> >> --Hannes >> >> On 5/9/15, H. Hirzel <[hidden email]> wrote: >>> And it comes with documentation >>> >>> https://github.com/svenvc/docs/blob/master/neo/neo-csv-paper.md >>> >>> "CSV is a lightweight text-based de facto standard for human-readable >>> tabular data interchange." >>> >>> On 5/9/15, H. Hirzel <[hidden email]> wrote: >>>> Yes, I assume so as well. Thank you for the note about line >>>> terminators. >>>> >>>> There is also the Pharo Neo-CSV parser which comes with many tests. >>>> >>>> https://github.com/svenvc/NeoCVS >>>> >>>> It is probably easier to take a Pharo 4.0 image, load NeoCSV in one >>>> click and file out the class categories >>>> >>>> Neo-CSV-Core >>>> Neo-CSV-Tests >>>> >>>> --Hannes >>>> >>>> On 5/9/15, Juan Vuletich <[hidden email]> wrote: >>>>> Porting any of them shouldn't be hard. You need, as usual, to take >>>>> into >>>>> account that Squeak and Pharo uses #cr as line terminator, while Cuis >>>>> uses #lf. >>>>> >>>>> In any case, check ExtendedClipboard.pck.st, and maybe extend it. >>>>> >>>>> Cheers, >>>>> Juan Vuletich >>>>> >>>>> On 09/05/2015 06:32 a.m., H. Hirzel wrote: >>>>>> P.S: I'd like the input to come from the clipboard. This is >>>>>> >>>>>> 1. Select a range of cells in a spreadsheet (MSExcel / Libreoffice >>>>>> calc) >>>>>> 2. Copy to clipboard >>>>>> 3. Bring the Cuis window to the front >>>>>> 4. Press a 'paste data from Excel' button >>>>>> >>>>>> In Cuis some processing will be done and the result will be put back >>>>>> into the clipboard >>>>>> >>>>>> >>>>>> On 5/9/15, H. Hirzel<[hidden email]> wrote: >>>>>>> Dear all >>>>>>> >>>>>>> has anyone written or ported a CSV parser to Cuis? >>>>>>> >>>>>>> For example this one >>>>>>> >>>>>>> http://www.squeaksource.com/@BiTWvEAxOgxLE9wJ/T0wdhSm3 >>>>>>> >>>>>>> Description: A simple parser for comma-separated-value files. >>>>>>> Creator: Avi Bryant >>>>>>> >>>>>>> Regards >>>>>>> >>>>>>> Hannes Hirzel >>>>>>> >>>>>> _______________________________________________ >>>>>> Cuis mailing list >>>>>> [hidden email] >>>>>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org >>>>>> >>>>> >>>>> >>>> >>> >> > _______________________________________________ Cuis mailing list [hidden email] http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org |
In reply to this post by Hannes Hirzel
Yes, that's a reasonable way to do it.
Juan On 09/05/2015 10:29 a.m., H. Hirzel wrote: > I understand that I need to click 'Install' in the file browser to get > a separate ChangeSet object. > > https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/CodeManagementInCuis.md#loading-changeset-files-into-cuis > > > And it that works well and after some fixes. I do in the Package tool > 'Create Package' > > https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/CodeManagementInCuis.md#packages > > --Hannes > > On 5/9/15, H. Hirzel<[hidden email]> wrote: >> And it comes with documentation >> >> https://github.com/svenvc/docs/blob/master/neo/neo-csv-paper.md >> >> "CSV is a lightweight text-based de facto standard for human-readable >> tabular data interchange." >> >> On 5/9/15, H. Hirzel<[hidden email]> wrote: >>> Yes, I assume so as well. Thank you for the note about line terminators. >>> >>> There is also the Pharo Neo-CSV parser which comes with many tests. >>> >>> https://github.com/svenvc/NeoCVS >>> >>> It is probably easier to take a Pharo 4.0 image, load NeoCSV in one >>> click and file out the class categories >>> >>> Neo-CSV-Core >>> Neo-CSV-Tests >>> >>> --Hannes >>> >>> On 5/9/15, Juan Vuletich<[hidden email]> wrote: >>>> Porting any of them shouldn't be hard. You need, as usual, to take into >>>> account that Squeak and Pharo uses #cr as line terminator, while Cuis >>>> uses #lf. >>>> >>>> In any case, check ExtendedClipboard.pck.st, and maybe extend it. >>>> >>>> Cheers, >>>> Juan Vuletich >>>> >>>> On 09/05/2015 06:32 a.m., H. Hirzel wrote: >>>>> P.S: I'd like the input to come from the clipboard. This is >>>>> >>>>> 1. Select a range of cells in a spreadsheet (MSExcel / Libreoffice >>>>> calc) >>>>> 2. Copy to clipboard >>>>> 3. Bring the Cuis window to the front >>>>> 4. Press a 'paste data from Excel' button >>>>> >>>>> In Cuis some processing will be done and the result will be put back >>>>> into the clipboard >>>>> >>>>> >>>>> On 5/9/15, H. Hirzel<[hidden email]> wrote: >>>>>> Dear all >>>>>> >>>>>> has anyone written or ported a CSV parser to Cuis? >>>>>> >>>>>> For example this one >>>>>> >>>>>> http://www.squeaksource.com/@BiTWvEAxOgxLE9wJ/T0wdhSm3 >>>>>> >>>>>> Description: A simple parser for comma-separated-value files. >>>>>> Creator: Avi Bryant >>>>>> >>>>>> Regards >>>>>> >>>>>> Hannes Hirzel >>>>>> >>>>> _______________________________________________ >>>>> Cuis mailing list >>>>> [hidden email] >>>>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org >>>>> >>>> _______________________________________________ Cuis mailing list [hidden email] http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org |
In reply to this post by Hannes Hirzel
Well, this issue es pretty likely to happen when porting packages. There
are (that I see) 3 alternatives: 1) Add missing methods/classes to Cuis 2) Add missing methods/classes to SqueakCompatibility.pck.st (also suitable for compatibility with Pharo) 3) Modify the package to use existing facilities There are no rules written in stone, and I think we need to decide in each case. For example, when the missing stuff is the kind of extra complexity we don't want in Cuis, or we don't want it for any reason, this precludes 1). But if the missing stuff fits nicely into Cuis, then the appropriate choice is 1) If who's doing the port is also adopting the code, because (s)he wants to do so, or is very interested in it, or is going to further develop it, then 3) is a reasonable choice. But if the original version of the package is under heavy development, and we are not really adopting it, then 3) is not a good option. For instance, these days I ported VMMaker to Cuis (will publish it this weekend). VMMaker is very complex, and is in active development by dedicated and knowledgeable people. So, 3) is out of the question. But it uses many things that don't fit Cuis, some for purely aesthetic reasons, others because full compatibility would turn Cuis again into Squeak. So I added quite several things to SqueakCompatibility.pck.st, option 2). This made it possible to run VMMaker in Cuis (without the GUI), without modifying a single line of code and without Undeclared. Rebasing on future releases of VMMaker will not be a problem at all. And this needs to be thought for each class or method missing. When porting a package, maybe we choose 1) for some methods and 2) for others. Or even yet 3) for others, if we are adopting the code. So, in this case, Hannes, please suggest, and lets discuss from there. Cheers, Juan Vuletich On 09/05/2015 11:58 a.m., H. Hirzel wrote: > Or put the question another way: Would it be fine to have a #join > function is Cuis. > Alternatively I can construct a test helper function which constructs > the test data. > > > > > > On 5/9/15, H. Hirzel<[hidden email]> wrote: >> Here is the result of a first step of porting >> >> https://github.com/hhzl/Cuis-NeoCSV >> >> 48 out of 50 tests have an error. This is mainly because of the way >> the test data is constructed. >> >> input := (String crlf join: #( '"x","y","z"' '100,200,300' >> '100,200,300' '100,200,300' '')). >> >> >> #crlf of Pharo 4.0 may be replaced with #crlfString of Cuis, see below >> >> But Cuis does not have #SequencableCollection>>join >> >> >> What are your suggestions how to proceed? It is about construction of test >> data. >> >> >> --Hannes >> >> >> >> Pharo >> crlf >> "Answer a string containing a carriage return and a linefeed." >> >> ^ self with: Character cr with: Character lf >> >> >> Cuis >> >> crlfString >> "Answer a string containing a carriage return and a linefeed." >> >> ^ self with: Character cr with: Character lf >> >> >> >> Pharo class #SequencableCollection >> >> join: aCollection >> "NB: this implementation only works for Array, since WriteStreams >> only work for Arrays and Strings. (!) >> Overridden in OrderedCollection and SortedCollection." >> ^ self class >> streamContents: [:stream | aCollection >> do: [:each | each joinTo: stream] >> separatedBy: [stream nextPutAll: self]] >> >> >> >> >> >> On 5/9/15, H. Hirzel<[hidden email]> wrote: >>> I understand that I need to click 'Install' in the file browser to get >>> a separate ChangeSet object. >>> >>> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/CodeManagementInCuis.md#loading-changeset-files-into-cuis >>> >>> >>> And it that works well and after some fixes. I do in the Package tool >>> 'Create Package' >>> >>> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/CodeManagementInCuis.md#packages >>> >>> --Hannes >>> >>> On 5/9/15, H. Hirzel<[hidden email]> wrote: >>>> And it comes with documentation >>>> >>>> https://github.com/svenvc/docs/blob/master/neo/neo-csv-paper.md >>>> >>>> "CSV is a lightweight text-based de facto standard for human-readable >>>> tabular data interchange." >>>> >>>> On 5/9/15, H. Hirzel<[hidden email]> wrote: >>>>> Yes, I assume so as well. Thank you for the note about line >>>>> terminators. >>>>> >>>>> There is also the Pharo Neo-CSV parser which comes with many tests. >>>>> >>>>> https://github.com/svenvc/NeoCVS >>>>> >>>>> It is probably easier to take a Pharo 4.0 image, load NeoCSV in one >>>>> click and file out the class categories >>>>> >>>>> Neo-CSV-Core >>>>> Neo-CSV-Tests >>>>> >>>>> --Hannes >>>>> >>>>> On 5/9/15, Juan Vuletich<[hidden email]> wrote: >>>>>> Porting any of them shouldn't be hard. You need, as usual, to take >>>>>> into >>>>>> account that Squeak and Pharo uses #cr as line terminator, while Cuis >>>>>> uses #lf. >>>>>> >>>>>> In any case, check ExtendedClipboard.pck.st, and maybe extend it. >>>>>> >>>>>> Cheers, >>>>>> Juan Vuletich >>>>>> >>>>>> On 09/05/2015 06:32 a.m., H. Hirzel wrote: >>>>>>> P.S: I'd like the input to come from the clipboard. This is >>>>>>> >>>>>>> 1. Select a range of cells in a spreadsheet (MSExcel / Libreoffice >>>>>>> calc) >>>>>>> 2. Copy to clipboard >>>>>>> 3. Bring the Cuis window to the front >>>>>>> 4. Press a 'paste data from Excel' button >>>>>>> >>>>>>> In Cuis some processing will be done and the result will be put back >>>>>>> into the clipboard >>>>>>> >>>>>>> >>>>>>> On 5/9/15, H. Hirzel<[hidden email]> wrote: >>>>>>>> Dear all >>>>>>>> >>>>>>>> has anyone written or ported a CSV parser to Cuis? >>>>>>>> >>>>>>>> For example this one >>>>>>>> >>>>>>>> http://www.squeaksource.com/@BiTWvEAxOgxLE9wJ/T0wdhSm3 >>>>>>>> >>>>>>>> Description: A simple parser for comma-separated-value files. >>>>>>>> Creator: Avi Bryant >>>>>>>> >>>>>>>> Regards >>>>>>>> >>>>>>>> Hannes Hirzel >>>>>>>> >>>>>>> _______________________________________________ >>>>>>> Cuis mailing list >>>>>>> [hidden email] >>>>>>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org >>>>>>> >>>>>> _______________________________________________ Cuis mailing list [hidden email] http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org |
On 5/9/15, Juan Vuletich <[hidden email]> wrote:
> Well, this issue es pretty likely to happen when porting packages. There > are (that I see) 3 alternatives: > > 1) Add missing methods/classes to Cuis > 2) Add missing methods/classes to SqueakCompatibility.pck.st (also > suitable for compatibility with Pharo) > 3) Modify the package to use existing facilities > > There are no rules written in stone, and I think we need to decide in > each case. > > For example, when the missing stuff is the kind of extra complexity we > don't want in Cuis, or we don't want it for any reason, this precludes > 1). But if the missing stuff fits nicely into Cuis, then the appropriate > choice is 1) > > If who's doing the port is also adopting the code, because (s)he wants > to do so, or is very interested in it, or is going to further develop > it, then 3) is a reasonable choice. But if the original version of the > package is under heavy development, and we are not really adopting it, > then 3) is not a good option. For instance, these days I ported VMMaker > to Cuis (will publish it this weekend). VMMaker is very complex, and is > in active development by dedicated and knowledgeable people. So, 3) is > out of the question. But it uses many things that don't fit Cuis, some > for purely aesthetic reasons, others because full compatibility would > turn Cuis again into Squeak. So I added quite several things to > SqueakCompatibility.pck.st, option 2). This made it possible to run > VMMaker in Cuis (without the GUI), without modifying a single line of > code and without Undeclared. Rebasing on future releases of VMMaker will > not be a problem at all. > > And this needs to be thought for each class or method missing. When > porting a package, maybe we choose 1) for some methods and 2) for > others. Or even yet 3) for others, if we are adopting the code. > > So, in this case, Hannes, please suggest, and lets discuss from there. Thank you for outlining the porting strategy alternatives. To answer your question about porting the Neo-CSV package from Pharo I'll have to do more investigations for this particular case. For example the testing code uses besides join: (for Strings) a Pharo 4.0 method Object>assert: aBlock description: aStringOrBlock "Throw an assertion error if aBlock does not evaluates to true." --Hannes > > Cheers, > Juan Vuletich > > On 09/05/2015 11:58 a.m., H. Hirzel wrote: >> Or put the question another way: Would it be fine to have a #join >> function is Cuis. >> Alternatively I can construct a test helper function which constructs >> the test data. >> >> >> >> >> >> On 5/9/15, H. Hirzel<[hidden email]> wrote: >>> Here is the result of a first step of porting >>> >>> https://github.com/hhzl/Cuis-NeoCSV >>> >>> 48 out of 50 tests have an error. This is mainly because of the way >>> the test data is constructed. >>> >>> input := (String crlf join: #( '"x","y","z"' '100,200,300' >>> '100,200,300' '100,200,300' '')). >>> >>> >>> #crlf of Pharo 4.0 may be replaced with #crlfString of Cuis, see below >>> >>> But Cuis does not have #SequencableCollection>>join >>> >>> >>> What are your suggestions how to proceed? It is about construction of >>> test >>> data. >>> >>> >>> --Hannes >>> >>> >>> >>> Pharo >>> crlf >>> "Answer a string containing a carriage return and a linefeed." >>> >>> ^ self with: Character cr with: Character lf >>> >>> >>> Cuis >>> >>> crlfString >>> "Answer a string containing a carriage return and a linefeed." >>> >>> ^ self with: Character cr with: Character lf >>> >>> >>> >>> Pharo class #SequencableCollection >>> >>> join: aCollection >>> "NB: this implementation only works for Array, since WriteStreams >>> only work for Arrays and Strings. (!) >>> Overridden in OrderedCollection and SortedCollection." >>> ^ self class >>> streamContents: [:stream | aCollection >>> do: [:each | each joinTo: stream] >>> separatedBy: [stream nextPutAll: self]] >>> >>> >>> >>> >>> >>> On 5/9/15, H. Hirzel<[hidden email]> wrote: >>>> I understand that I need to click 'Install' in the file browser to get >>>> a separate ChangeSet object. >>>> >>>> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/CodeManagementInCuis.md#loading-changeset-files-into-cuis >>>> >>>> >>>> And it that works well and after some fixes. I do in the Package tool >>>> 'Create Package' >>>> >>>> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/CodeManagementInCuis.md#packages >>>> >>>> --Hannes >>>> >>>> On 5/9/15, H. Hirzel<[hidden email]> wrote: >>>>> And it comes with documentation >>>>> >>>>> https://github.com/svenvc/docs/blob/master/neo/neo-csv-paper.md >>>>> >>>>> "CSV is a lightweight text-based de facto standard for human-readable >>>>> tabular data interchange." >>>>> >>>>> On 5/9/15, H. Hirzel<[hidden email]> wrote: >>>>>> Yes, I assume so as well. Thank you for the note about line >>>>>> terminators. >>>>>> >>>>>> There is also the Pharo Neo-CSV parser which comes with many tests. >>>>>> >>>>>> https://github.com/svenvc/NeoCVS >>>>>> >>>>>> It is probably easier to take a Pharo 4.0 image, load NeoCSV in one >>>>>> click and file out the class categories >>>>>> >>>>>> Neo-CSV-Core >>>>>> Neo-CSV-Tests >>>>>> >>>>>> --Hannes >>>>>> >>>>>> On 5/9/15, Juan Vuletich<[hidden email]> wrote: >>>>>>> Porting any of them shouldn't be hard. You need, as usual, to take >>>>>>> into >>>>>>> account that Squeak and Pharo uses #cr as line terminator, while >>>>>>> Cuis >>>>>>> uses #lf. >>>>>>> >>>>>>> In any case, check ExtendedClipboard.pck.st, and maybe extend it. >>>>>>> >>>>>>> Cheers, >>>>>>> Juan Vuletich >>>>>>> >>>>>>> On 09/05/2015 06:32 a.m., H. Hirzel wrote: >>>>>>>> P.S: I'd like the input to come from the clipboard. This is >>>>>>>> >>>>>>>> 1. Select a range of cells in a spreadsheet (MSExcel / Libreoffice >>>>>>>> calc) >>>>>>>> 2. Copy to clipboard >>>>>>>> 3. Bring the Cuis window to the front >>>>>>>> 4. Press a 'paste data from Excel' button >>>>>>>> >>>>>>>> In Cuis some processing will be done and the result will be put >>>>>>>> back >>>>>>>> into the clipboard >>>>>>>> >>>>>>>> >>>>>>>> On 5/9/15, H. Hirzel<[hidden email]> wrote: >>>>>>>>> Dear all >>>>>>>>> >>>>>>>>> has anyone written or ported a CSV parser to Cuis? >>>>>>>>> >>>>>>>>> For example this one >>>>>>>>> >>>>>>>>> http://www.squeaksource.com/@BiTWvEAxOgxLE9wJ/T0wdhSm3 >>>>>>>>> >>>>>>>>> Description: A simple parser for comma-separated-value files. >>>>>>>>> Creator: Avi Bryant >>>>>>>>> >>>>>>>>> Regards >>>>>>>>> >>>>>>>>> Hannes Hirzel >>>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> Cuis mailing list >>>>>>>> [hidden email] >>>>>>>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org >>>>>>>> >>>>>>> > > _______________________________________________ Cuis mailing list [hidden email] http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org |
On 5/9/15, H. Hirzel <[hidden email]> wrote:
> On 5/9/15, Juan Vuletich <[hidden email]> wrote: >> Well, this issue es pretty likely to happen when porting packages. There >> are (that I see) 3 alternatives: >> >> 1) Add missing methods/classes to Cuis >> 2) Add missing methods/classes to SqueakCompatibility.pck.st (also >> suitable for compatibility with Pharo) >> 3) Modify the package to use existing facilities >> >> There are no rules written in stone, and I think we need to decide in >> each case. >> >> For example, when the missing stuff is the kind of extra complexity we >> don't want in Cuis, or we don't want it for any reason, this precludes >> 1). But if the missing stuff fits nicely into Cuis, then the appropriate >> choice is 1) >> >> If who's doing the port is also adopting the code, because (s)he wants >> to do so, or is very interested in it, or is going to further develop >> it, then 3) is a reasonable choice. But if the original version of the >> package is under heavy development, and we are not really adopting it, >> then 3) is not a good option. For instance, these days I ported VMMaker >> to Cuis (will publish it this weekend). VMMaker is very complex, and is >> in active development by dedicated and knowledgeable people. So, 3) is >> out of the question. But it uses many things that don't fit Cuis, some >> for purely aesthetic reasons, others because full compatibility would >> turn Cuis again into Squeak. So I added quite several things to >> SqueakCompatibility.pck.st, option 2). This made it possible to run >> VMMaker in Cuis (without the GUI), without modifying a single line of >> code and without Undeclared. Rebasing on future releases of VMMaker will >> not be a problem at all. >> >> And this needs to be thought for each class or method missing. When >> porting a package, maybe we choose 1) for some methods and 2) for >> others. Or even yet 3) for others, if we are adopting the code. >> >> So, in this case, Hannes, please suggest, and lets discuss from there. > > Thank you for outlining the porting strategy alternatives. To answer > your question about porting the Neo-CSV package from Pharo I'll have > to do more investigations for this particular case. > > For example the testing code uses besides join: (for Strings) a Pharo > 4.0 method > > Object>assert: aBlock description: aStringOrBlock > "Throw an assertion error if aBlock does not evaluates to true." > > --Hannes Here is the analysis https://github.com/hhzl/Cuis-NeoCSV/blob/master/README.md It turns out that the solution is a combination of all three approaches. 1) Add missing methods/classes to Cuis 2) Add missing methods/classes to SqueakCompatibility.pck.st (also suitable for compatibility with Pharo) 3) Modify the package to use existing facilities There are three github issues, a discussion there at the level of the issue or here is welcome. --Hannes >> Cheers, >> Juan Vuletich >> >> On 09/05/2015 11:58 a.m., H. Hirzel wrote: >>> Or put the question another way: Would it be fine to have a #join >>> function is Cuis. >>> Alternatively I can construct a test helper function which constructs >>> the test data. >>> >>> >>> >>> >>> >>> On 5/9/15, H. Hirzel<[hidden email]> wrote: >>>> Here is the result of a first step of porting >>>> >>>> https://github.com/hhzl/Cuis-NeoCSV >>>> >>>> 48 out of 50 tests have an error. This is mainly because of the way >>>> the test data is constructed. >>>> >>>> input := (String crlf join: #( '"x","y","z"' '100,200,300' >>>> '100,200,300' '100,200,300' '')). >>>> >>>> >>>> #crlf of Pharo 4.0 may be replaced with #crlfString of Cuis, see below >>>> >>>> But Cuis does not have #SequencableCollection>>join >>>> >>>> >>>> What are your suggestions how to proceed? It is about construction of >>>> test >>>> data. >>>> >>>> >>>> --Hannes >>>> >>>> >>>> >>>> Pharo >>>> crlf >>>> "Answer a string containing a carriage return and a linefeed." >>>> >>>> ^ self with: Character cr with: Character lf >>>> >>>> >>>> Cuis >>>> >>>> crlfString >>>> "Answer a string containing a carriage return and a linefeed." >>>> >>>> ^ self with: Character cr with: Character lf >>>> >>>> >>>> >>>> Pharo class #SequencableCollection >>>> >>>> join: aCollection >>>> "NB: this implementation only works for Array, since WriteStreams >>>> only work for Arrays and Strings. (!) >>>> Overridden in OrderedCollection and SortedCollection." >>>> ^ self class >>>> streamContents: [:stream | aCollection >>>> do: [:each | each joinTo: stream] >>>> separatedBy: [stream nextPutAll: self]] >>>> >>>> >>>> >>>> >>>> >>>> On 5/9/15, H. Hirzel<[hidden email]> wrote: >>>>> I understand that I need to click 'Install' in the file browser to get >>>>> a separate ChangeSet object. >>>>> >>>>> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/CodeManagementInCuis.md#loading-changeset-files-into-cuis >>>>> >>>>> >>>>> And it that works well and after some fixes. I do in the Package tool >>>>> 'Create Package' >>>>> >>>>> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/CodeManagementInCuis.md#packages >>>>> >>>>> --Hannes >>>>> >>>>> On 5/9/15, H. Hirzel<[hidden email]> wrote: >>>>>> And it comes with documentation >>>>>> >>>>>> https://github.com/svenvc/docs/blob/master/neo/neo-csv-paper.md >>>>>> >>>>>> "CSV is a lightweight text-based de facto standard for human-readable >>>>>> tabular data interchange." >>>>>> >>>>>> On 5/9/15, H. Hirzel<[hidden email]> wrote: >>>>>>> Yes, I assume so as well. Thank you for the note about line >>>>>>> terminators. >>>>>>> >>>>>>> There is also the Pharo Neo-CSV parser which comes with many tests. >>>>>>> >>>>>>> https://github.com/svenvc/NeoCVS >>>>>>> >>>>>>> It is probably easier to take a Pharo 4.0 image, load NeoCSV in one >>>>>>> click and file out the class categories >>>>>>> >>>>>>> Neo-CSV-Core >>>>>>> Neo-CSV-Tests >>>>>>> >>>>>>> --Hannes >>>>>>> >>>>>>> On 5/9/15, Juan Vuletich<[hidden email]> wrote: >>>>>>>> Porting any of them shouldn't be hard. You need, as usual, to take >>>>>>>> into >>>>>>>> account that Squeak and Pharo uses #cr as line terminator, while >>>>>>>> Cuis >>>>>>>> uses #lf. >>>>>>>> >>>>>>>> In any case, check ExtendedClipboard.pck.st, and maybe extend it. >>>>>>>> >>>>>>>> Cheers, >>>>>>>> Juan Vuletich >>>>>>>> >>>>>>>> On 09/05/2015 06:32 a.m., H. Hirzel wrote: >>>>>>>>> P.S: I'd like the input to come from the clipboard. This is >>>>>>>>> >>>>>>>>> 1. Select a range of cells in a spreadsheet (MSExcel / Libreoffice >>>>>>>>> calc) >>>>>>>>> 2. Copy to clipboard >>>>>>>>> 3. Bring the Cuis window to the front >>>>>>>>> 4. Press a 'paste data from Excel' button >>>>>>>>> >>>>>>>>> In Cuis some processing will be done and the result will be put >>>>>>>>> back >>>>>>>>> into the clipboard >>>>>>>>> >>>>>>>>> >>>>>>>>> On 5/9/15, H. Hirzel<[hidden email]> wrote: >>>>>>>>>> Dear all >>>>>>>>>> >>>>>>>>>> has anyone written or ported a CSV parser to Cuis? >>>>>>>>>> >>>>>>>>>> For example this one >>>>>>>>>> >>>>>>>>>> http://www.squeaksource.com/@BiTWvEAxOgxLE9wJ/T0wdhSm3 >>>>>>>>>> >>>>>>>>>> Description: A simple parser for comma-separated-value files. >>>>>>>>>> Creator: Avi Bryant >>>>>>>>>> >>>>>>>>>> Regards >>>>>>>>>> >>>>>>>>>> Hannes Hirzel >>>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> Cuis mailing list >>>>>>>>> [hidden email] >>>>>>>>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org >>>>>>>>> >>>>>>>> >> >> > > _______________________________________________ > Cuis mailing list > [hidden email] > http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org > _______________________________________________ Cuis mailing list [hidden email] http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org |
In reply to this post by Juan Vuletich-4
Porting status here
https://github.com/hhzl/Cuis-NeoCSV/blob/master/README.md On 5/9/15, Juan Vuletich <[hidden email]> wrote: > Yes, that's a reasonable way to do it. > > Juan > > On 09/05/2015 10:29 a.m., H. Hirzel wrote: >> I understand that I need to click 'Install' in the file browser to get >> a separate ChangeSet object. >> >> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/CodeManagementInCuis.md#loading-changeset-files-into-cuis >> >> >> And it that works well and after some fixes. I do in the Package tool >> 'Create Package' >> >> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/CodeManagementInCuis.md#packages >> >> --Hannes >> >> On 5/9/15, H. Hirzel<[hidden email]> wrote: >>> And it comes with documentation >>> >>> https://github.com/svenvc/docs/blob/master/neo/neo-csv-paper.md >>> >>> "CSV is a lightweight text-based de facto standard for human-readable >>> tabular data interchange." >>> >>> On 5/9/15, H. Hirzel<[hidden email]> wrote: >>>> Yes, I assume so as well. Thank you for the note about line >>>> terminators. >>>> >>>> There is also the Pharo Neo-CSV parser which comes with many tests. >>>> >>>> https://github.com/svenvc/NeoCVS >>>> >>>> It is probably easier to take a Pharo 4.0 image, load NeoCSV in one >>>> click and file out the class categories >>>> >>>> Neo-CSV-Core >>>> Neo-CSV-Tests >>>> >>>> --Hannes >>>> >>>> On 5/9/15, Juan Vuletich<[hidden email]> wrote: >>>>> Porting any of them shouldn't be hard. You need, as usual, to take >>>>> into >>>>> account that Squeak and Pharo uses #cr as line terminator, while Cuis >>>>> uses #lf. >>>>> >>>>> In any case, check ExtendedClipboard.pck.st, and maybe extend it. >>>>> >>>>> Cheers, >>>>> Juan Vuletich >>>>> >>>>> On 09/05/2015 06:32 a.m., H. Hirzel wrote: >>>>>> P.S: I'd like the input to come from the clipboard. This is >>>>>> >>>>>> 1. Select a range of cells in a spreadsheet (MSExcel / Libreoffice >>>>>> calc) >>>>>> 2. Copy to clipboard >>>>>> 3. Bring the Cuis window to the front >>>>>> 4. Press a 'paste data from Excel' button >>>>>> >>>>>> In Cuis some processing will be done and the result will be put back >>>>>> into the clipboard >>>>>> >>>>>> >>>>>> On 5/9/15, H. Hirzel<[hidden email]> wrote: >>>>>>> Dear all >>>>>>> >>>>>>> has anyone written or ported a CSV parser to Cuis? >>>>>>> >>>>>>> For example this one >>>>>>> >>>>>>> http://www.squeaksource.com/@BiTWvEAxOgxLE9wJ/T0wdhSm3 >>>>>>> >>>>>>> Description: A simple parser for comma-separated-value files. >>>>>>> Creator: Avi Bryant >>>>>>> >>>>>>> Regards >>>>>>> >>>>>>> Hannes Hirzel >>>>>>> >>>>>> _______________________________________________ >>>>>> Cuis mailing list >>>>>> [hidden email] >>>>>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org >>>>>> >>>>> > > _______________________________________________ Cuis mailing list [hidden email] http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org |
Free forum by Nabble | Edit this page |