{"id":18723227,"url":"https://github.com/apjanke/octave-tablicious","last_synced_at":"2025-04-12T14:53:39.444Z","repository":{"id":41962138,"uuid":"165490342","full_name":"apjanke/octave-tablicious","owner":"apjanke","description":"Table (relational, tabular data) implementation for GNU Octave","archived":false,"fork":false,"pushed_at":"2024-10-23T11:20:22.000Z","size":47677,"stargazers_count":32,"open_issues_count":35,"forks_count":11,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-06T12:02:54.438Z","etag":null,"topics":["octave","relational-algebra"],"latest_commit_sha":null,"homepage":"https://apjanke.github.io/octave-tablicious/","language":"MATLAB","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apjanke.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.txt","contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-13T10:02:49.000Z","updated_at":"2025-01-31T21:30:44.000Z","dependencies_parsed_at":"2024-07-11T10:37:40.158Z","dependency_job_id":null,"html_url":"https://github.com/apjanke/octave-tablicious","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apjanke%2Foctave-tablicious","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apjanke%2Foctave-tablicious/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apjanke%2Foctave-tablicious/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apjanke%2Foctave-tablicious/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apjanke","download_url":"https://codeload.github.com/apjanke/octave-tablicious/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248586238,"owners_count":21128995,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["octave","relational-algebra"],"created_at":"2024-11-07T13:48:08.279Z","updated_at":"2025-04-12T14:53:39.421Z","avatar_url":"https://github.com/apjanke.png","language":"MATLAB","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tablicious for GNU Octave\n\nTablicious provides tabular/relational data structures for Octave. You can think of it as \"pandas for Octave\".\n\n| WARNING: This library is currently beta quality. Please do not use it in any production or business code! Seriously!! |\n| ---- |\n\nThis package attempts to provide a set of mostly-Matlab-compatible implementations of the table class and related structures and functions.\nIt provides:\n\n* A `table` array class, and related functions.\n  * (That's kind of our whole thing.)\n* `datetime`, `string`, and `categorical` array classes.\n  * (Because they're pretty useful when working with tables, and base Octave doesn't have them yet.)\n* Auxiliary functions related to those classes.\n\nIt currently does not provide, but we would like to maybe add at some point:\n\n* `timetable`\n* Table I/O, such as `readtable`, `writetable`, and `csvread`/`dlmread` `table` support\n\n## Installation and usage\n\n### Requirements\n\nTablicious 0.4.x requires Octave 7.0 or newer. It may well work on earlier versions, but is not really tested against them.\n\nTablicious does not require the Octave Forge [Statistics package](https://gnu-octave.github.io/packages/statistics/), but you will probably want it, because Statistics supplies functions that are frequently useful for data analysis in a tabular context. In particular, `ismissing()` and the related missing-filling functions are useful, and the Statistics package supplies the general implementation of them.\n\n### Quick start\n\nTo get started using or testing this project, install it using Octave's `pkg` function:\n\n```octave\npkg install https://github.com/apjanke/octave-tablicious/releases/download/v0.4.4/tablicious-0.4.4.tar.gz\npkg load tablicious\n```\n\n### Installation for development\n\nIf you want to hack on the Tablicious code itself, set it up like this:\n\n* Clone the repo\n  * `git clone https://github.com/apjanke/octave-tablicious`\n* Add the `inst/` directory from the cloned repo to your Octave path with `addpath`.\n\nThat should get everything working except for time zone conversions inside `datetime`, which require a compiled oct-file. See the developer doco in the repo for that.\n\n## Documentation\n\nOnce you have Tablicious installed, the user manual will show up in the Octave GUI’s documentation browser.\nYou can also run `help \u003cfoo\u003e` or `doc \u003cfoo\u003e` for any of the classes or functions in Tablicious.\n\nThe documentation for Tablicious can be viewed online at \u003chttps://apjanke.github.io/octave-tablicious\u003e. That site has the [Tablicious User Guide](https://apjanke.github.io/octave-tablicious/release/v0.3.7/user-guide/html/index.html) containing the API reference, plus some additional general and developer-oriented documentation, and alternate formats of the User Guide. See the [main doco page there](https://apjanke.github.io/octave-tablicious) for details.\n\nDevelopers, especially see the [Developer Notes](https://apjanke.github.io/octave-tablicious/Developer-Notes.html) and [Design and Justification](https://apjanke.github.io/octave-tablicious/Design-and-Justification.html) pages there, which discuss how and why this library is written. There's a [TODO page](https://apjanke.github.io/octave-tablicious/TODO.html) that lists what might be coming. Also see [CONTRIBUTING](CONTRIBUTING.md) if you would like to contribute to this project.\n\nWithin this repo, you can see all that in the `docs/` directory for notes on this project. It's a local copy of the GitHub Pages site.\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for more details.\n\n### No Matlab Usage\n\nTo avoid issues with the Matlab license's Non-Compete clause, this project needs to be developed entirely using Octave, and not using Matlab at all, including for testing or benchmarking purposes. Please do not submit any Matlab test or benchmark results, or any code produced using Matlab. And if you know anything about how the Matlab internals work, please do not tell me!\n\n## License\n\nTablicious is mostly GNU GPL v3, with some other Free and Open Source licensed code and files redistributed with it. I believe this is all compatible with redistribution as a GNU GPL licensed package, but I am not a lawyer.\n\nThe main code of Tablicious is licensed under the GNU GPL version 3. See the `LICENSE` file.\n\nThe date/time portion of Tablicious includes some Unicode data files licensed under the Unicode License Agreement - Data Files and Software license. See the `LICENSES/LICENSE-Unicode` file.\n\nThe test suite contains some files, specifically some table-related tests in `inst/t` using MP-Test, which are BSD 3-clause licensed. See the `LICENSES/LICENSE-MATPOWER` file.\n\nThe Fisher Iris dataset is Public Domain.\n\n## Author and Acknowledgments\n\nTablicious is created by [Andrew Janke](https://apjanke.net).\n\nThanks to [Polkadot Stingray](https://polkadotstingray-official.jimdo.com/) for [powering](https://www.youtube.com/watch?v=3ad4NsEy1tg) [my](https://www.youtube.com/watch?v=-zlq6eMycLA) [coding](https://www.youtube.com/watch?v=1z4RosaB-UQ) [sessions](https://www.youtube.com/watch?v=p6oVXuLsbxM).\n\nShout out to [Mike Miller](https://mtmxr.com/) for showing me how to properly structure an Octave package repo, and encouraging me to contribute.\n\nThanks to [Sebastian Schöps](https://github.com/schoeps) for getting me more involved in Octave development in the first place, via his [Octave.app](https://octave-app.org) project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapjanke%2Foctave-tablicious","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapjanke%2Foctave-tablicious","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapjanke%2Foctave-tablicious/lists"}