-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Interface refinements 2024-01 #111
Comments
One major issue regarding maintenance is the sheer volume of methods in each classdef. I think we should make a list of what should remain and what not. A major obstacle for this is (as always) backwards compatibility. As we get to newer Octave versions, a lot of functions are available. For example, |
Oh yes. Most of these methods are just hacks so that these
The
The
Yeah, that's a good idea. Things that are part of the "real"
That "planar structural" stuff is all necessary in M-code For |
I think the |
Oh, it will. For this item, I mean that inside the implementation code of Tablicious's functions and methods, it will not try calling |
We can keep it for now, and we could remove it at a later point once the statistics |
That sounds right to me. |
Can you merge |
Already done; main is caught up with bulbasaur-24 as of late last night US time. And I'll stop doing rebases of bulbasaur-24 so your tracking copy of it will be stable; I'll keep rebases on separate branches. |
Ok thanks, I 'll make a clean fork and start working from there. |
I 've noticed that in some parts of the code you close statements with |
Not at all. I kinda intended to adopt that Octave-standard endif/endfor/endXXX code style for this project, but I'm really used to the Matlab plain-end style so have had some trouble being consistent about it. Any plain- (In some other Octave projects, I've stuck with If I find some spare time tonight, I'll go through and change them all in one monster commit to get it over with and keep the commit history tidy. |
An speaking of code style, what editor(s) are you using, @pr0m1th3as? I'm wondered what introduced all those remove-trailing-whitespace changes in your recent PR. I'm wondering if I could set up an And I actually prefer the no-trailing-whitespace formatting like you did there, so I'm thinking maybe I'll convert all the files in the repo to that, to establish a baseline. But I'm not sure how the Octave desktop editor behaves and whether it would work well with that. |
I am always using the Octave editor for Octave code. It is by default that it removes all trailing white spaces every time you save a file. The other code style is that tab is always 2 white spaces and not a tab per se. These are the default settings for all Octave core code as well. |
Other changes related to Octave code style is that
|
If you check the |
I agree. I'll convert Tablicious over to Octave's code style. Here's a separate ticket for it: #116. I'll wait until you're done with that |
Here's a "WIP/swift-style" branch with a preview of what the code style conversion to GNU Octave style would look like: https://github.com/apjanke/octave-tablicious/tree/WIP/swift-style. It does a mass restyling addressing most of the items noted in #116. I didn't do adding Don't worry about reconciling your |
Some misc interface refinements to consider.
table
'srows
,cols
, andhasrownames
as deprecated instead of removing immediately.grpstats
too?iscategorical
,isdatetime
, etc. respect method overrides likeistable
does?NaS
andNaC
.ismissing()
use for unknown/generic types, addismissing
methods.isnanny()
private or +internal.proxyKeysForMatrixes
, [X]tableOuterFillValue
, and the like somehow, with a common name prefix, or a package or private-ization?+tblish/+chrono
entirely under+tblish/+internal
, since (currently) nothing intblish.chrono
is part of Tablicious's public interface? Same for+tblish/+table
.pp()
. (It's a convenience command I like personally; not a good fit for a library interface.)Basically, get tighter about having the visible public (non-private, non-
+internal
) names ininst/
be just the stuff in Tablicious's public interface, or public-facing concrete classes.See also
table
classdef methods #115The text was updated successfully, but these errors were encountered: