-
Notifications
You must be signed in to change notification settings - Fork 10
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
Reconcile with Statistics OF package #108
Comments
I tried in install Tablicious to help spotting shadowing functions but...
Octave 8.2 produces that same error as well |
I removed the fillmissing, rmmissing, and standardizeMissing functions (here), and their specialization methods from Added an Having trouble regenerating the doco after that. Not sure if I'm just out of practice, or things have changed in the macOS build environment since last time. |
I have a few questions.
to
so that when users call |
I noticed that there are several functions in |
I don't know if Octave's
Maybe! The pkg-octave-doc package is new to me, and looks useful. I'll check it out. I'm currently generating the documentation with some Perl scripts that I copy-pasted from another Octave package a few years back, and using them is a little rough. (E.g., I'd rather do this myself than take a PR for it. I like to be pretty hands-on with the tooling for my packages. I'll have a look at it soon.
It lives in
Oh, thanks for catching that! Was a couple bad links in the main repo README and the doco index, plus GH Pages configuration. I fixed it (I think) and it's mostly working for me now. May take an hour or two for DNS changes to propagate so it works for everyone.
Oh, yes. Should definitely have tests and demos. Just haven't found the time to do those yet.
Oh, hmm, I'd never seen that before. I'll have a look at how you did it in Statistics. Making it clear that these functions are part of an OF package instead of core Octave seems like a good idea. Here's a separate issue for these documentation-related things: #110 |
So, the M-code doco doesn't come right out and say this, but I think there are two reasons for
The first thing – declaring duck-typing-style interface compatibility with In these cases, if functions (like in Statistics, or other packages) that had optional table support in terms of the arguments they accept were to check for table-ness with
...then those functions could work with alternate table-like implementations (concrete classes) without having to know about them in advance. Now, I doubt anyone using Octave is going to actually want to do that any time soon. That's not a huge motivation for Tablicious per se, just my view of why The main reason I want
Yep, it's a mess. Just the best I could come up with here. As long as all the If core Octave provided an The "clean" modular way to do this would be to separate
Yep, that should work fine. Statistics can ignore the existence of
The methods provide class-specific specializations of those functions, and functions provide more general (and possibly degenerate) implementations that work on inputs other than those classes which define methods of the same name. It's the general pattern of having functions which are specialized by method overrides. And it's also possible that in some cases I forgot about one or the other implementation, and there's duplication which can be removed. Any particular occurrences of that which are bothering you, or you're wondering about? |
I made a personal repository of Tablicous and will try to build online documentation with |
Say, @pr0m1th3as, I think I'm going to rename this repo's |
Cool; both those would be useful! |
No, its ok. I will make a new clone as needed and merge any changes locally before making a PR to your repo. As said above, I am only making changes in the |
I only spotted the |
Those are all just functions. There are no method overrides for them in Tablicious's classes, IIRC. And I should probably remove |
You are right, it's `pp' that is a method. BTW, does |
In the |
Renamed master to main just now. Please make a fresh clone and fork (and/or update the branch names and tracking configuration in your current clone) at your convenience.
Not currently. It ought to, but I haven't been able to get that working correctly with various indexing operations ( Here's a ticket for nested table support: #22
Oops, yeah. Numeric NaNs and NaT datetimes should convert to missing string values. (And really, that isnan/isnat check should be done first, and the Note that some of the code in the
D'oh! Yup. (Adequate tests like you recommend could have caught that.) Think a good approach there is to just have the |
Okay, the generated doco is building again, on the I rebased and squashed the bulbasaur-24 branch. You'll need to rebase your changes on that fresh version of it if you're coding on top of that branch. I'll merge it to |
I am struggling to make a PR for |
Thanks! Looks like this PR is based on the right state of the bulbasaur-24 branch and can merge cleanly. I'll have a look through it. One issue - this PR mixes a few different and IMHO kind of independent things, which I'd like to make independent choices on whether to accept, and also to have them be distinct commits in the Git commit history. (For readability when skimming the commit history or when examining a diff for one commit.) If you'd like to get author credit for them, could you split them up in to separate PRs? Items I see:
I'll leave the bulbasaur-24 branch stable with no further rebases tonight to make it easy for you to do additional PRs here if you want. (I'm in US Eastern Time.) In the mean time, I'll drop a couple comments on this existing PR. |
That's ok, merge them as you see fit. I don't have a git history for this, because my local repo was broken due to the repeated re-basing between branches. |
Cool. I'll just grab these code changes piecemeal and merge some of them in, then. Thanks! |
Okay, I think I've got all the stuff that conflicts with Statistics at a basic level removed. It's merged to main. See anything left that will cause you major problems here? Think I'm getting close to an 0.4.0 release that will pick these changes up. |
Say, can you or somebody point me at some examples or doco on how to add DEMOs to modern Octave code? This is a good idea but I don't really know how to do it. |
See the
Note that
|
Okay, I think I've got the Statistics compatibility stuff about done, fixed up some other issues, and am about ready to cut a Tablicious 0.4.0 release. I merged most of my pending code to Is there anything left here that presents a major Statistics interoperability issue that we should get done before Tablicious 0.4.0? I'm going to put BISTS and demos down the road a bit to 0.5.0; that looks like a larger effort. Handing it under this other ticket: |
Can you wait a couple of days? I have been working full time the pas 5 days on the table class and I am getting close to submit a PR on it, which includes a lot of bug fixes, and much enhanced compatibility. |
Closing as done, since Statistics decided to go with their own table implementation: #115 (comment). |
Let's make Tablicious play better with the Statistics Octave Forge (OF) package.
Statistics's maintainer has expressed interest in adding support for table arrays and other stuff in Tablicious. Let's support that.
Clean up function shadowing and conflicts with the Statistics OF package, particularly WRT the missing/fillmissing stuff. To make Tablicious compatible with Statistics so Statistics can use Tablicious to support table inputs.
High priority, since Statistics would like to do this for a coming-soon release.
Work
Work for this is on the
bulbasaur-24
branch in this repo.TODO
categorical
's use of unconditionalismissing()
calls.ismissing
calls in functions which don't require Statistics.*missing
(fillmissing, rmmissing, standardizeMissing, but not ismissing) in Tablicious-defined classes.istable()
function, with minimal and complete definition that supports copy-paste shadowing.tblish.examples
. theexamples/
folder contains scripts; dunno if they should go in a package)octave.*
package while at it; that name should be left for core Octave to use, I think.__oct_time_binsearch__.oct
to "tblish*" something.References
The text was updated successfully, but these errors were encountered: