Skip to content

Commit 4c308a1

Browse files
committed
add first complete attempt
docstring tweak add Tarragon for transformers, and documenter docs doc-tweaks add support for R-style formulas in Saffron() data add R-style formula support for Tarragon front ends add Documenter docs oops tweaks update readme adapt to new features/target contracts bump [compat] LearnAPI = "0.2" add the `Obs` abstract type and revamp docs doc tweaks and typo fixes remove LearnTestAPI from test deps Add to readme dump MLUtils if favour of MLCore add classes and decode to tools.jl add Sage front end; needs tests and "getting started" additions finish docs for Sage; change code type switch names add Sage tests move Obs subtypes and methods out to types.jl file re-org minor doc tweak
0 parents  commit 4c308a1

28 files changed

+2744
-0
lines changed

.github/codecov.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
coverage:
2+
status:
3+
project:
4+
default:
5+
threshold: 0.5%
6+
removed_code_behavior: fully_covered_patch
7+
patch:
8+
default:
9+
target: 80

.github/workflows/CompatHelper.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: CompatHelper
2+
on:
3+
schedule:
4+
- cron: '00 00 * * *'
5+
workflow_dispatch:
6+
jobs:
7+
CompatHelper:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- name: Pkg.add("CompatHelper")
11+
run: julia -e 'using Pkg; Pkg.add("CompatHelper")'
12+
- name: CompatHelper.main()
13+
env:
14+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
15+
COMPATHELPER_PRIV: ${{ secrets.COMPATHELPER_PRIV}}
16+
run: julia -e 'using CompatHelper; CompatHelper.main()'

.github/workflows/SpellCheck.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
name: Spell Check
2+
3+
on: [pull_request]
4+
5+
jobs:
6+
typos-check:
7+
name: Spell Check with Typos
8+
runs-on: ubuntu-latest
9+
steps:
10+
- name: Checkout Actions Repository
11+
uses: actions/checkout@v4
12+
- name: Check spelling
13+
uses: crate-ci/typos@master

.github/workflows/TagBot.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
name: TagBot
2+
on:
3+
issue_comment:
4+
types:
5+
- created
6+
workflow_dispatch:
7+
jobs:
8+
TagBot:
9+
if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot'
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: JuliaRegistries/TagBot@v1
13+
with:
14+
token: ${{ secrets.GITHUB_TOKEN }}
15+
ssh: ${{ secrets.DOCUMENTER_KEY }}

.github/workflows/ci.yml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: CI
2+
on:
3+
pull_request:
4+
branches:
5+
- master
6+
- dev
7+
push:
8+
branches:
9+
- master
10+
- dev
11+
tags: '*'
12+
jobs:
13+
test:
14+
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
15+
runs-on: ${{ matrix.os }}
16+
strategy:
17+
fail-fast: false
18+
matrix:
19+
version:
20+
- '1.10' # LTS release
21+
- '1' # automatically expands to the latest stable 1.x release of Julia.
22+
os:
23+
- ubuntu-latest
24+
arch:
25+
- x64
26+
steps:
27+
- uses: actions/checkout@v2
28+
- uses: julia-actions/setup-julia@v1
29+
with:
30+
version: ${{ matrix.version }}
31+
arch: ${{ matrix.arch }}
32+
- uses: actions/cache@v1
33+
env:
34+
cache-name: cache-artifacts
35+
with:
36+
path: ~/.julia/artifacts
37+
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
38+
restore-keys: |
39+
${{ runner.os }}-test-${{ env.cache-name }}-
40+
${{ runner.os }}-test-
41+
${{ runner.os }}-
42+
- uses: julia-actions/julia-buildpkg@v1
43+
- uses: julia-actions/julia-runtest@v1
44+
env:
45+
JULIA_NUM_THREADS: 2
46+
- uses: julia-actions/julia-processcoverage@v1
47+
- uses: codecov/codecov-action@v4
48+
with:
49+
token: ${{ secrets.CODECOV_TOKEN }}
50+
fail_ci_if_error: false
51+
verbose: true
52+
docs:
53+
name: Documentation
54+
runs-on: ubuntu-latest
55+
steps:
56+
- uses: actions/checkout@v2
57+
- uses: julia-actions/setup-julia@v1
58+
with:
59+
version: '1'
60+
- uses: julia-actions/julia-buildpkg@v1
61+
- uses: julia-actions/julia-docdeploy@v1
62+
env:
63+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
64+
DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }}
65+
- run: |
66+
julia --project=docs -e '
67+
using Documenter: DocMeta, doctest
68+
using LearnDataFrontEnds
69+
DocMeta.setdocmeta!(LearnDataFrontEnds, :DocTestSetup, :(using LearnDataFrontEnds); recursive=true)
70+
doctest(LearnDataFrontEnds)'

.gitignore

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
Manifest.toml
2+
.ipynb_checkpoints
3+
*~
4+
#*
5+
.DS_Store
6+
sandbox/
7+
/docs/build/
8+
/docs/site/
9+
/docs/Manifest.toml
10+
.vscode

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
MIT License Copyright (c) 2024 - Anthony Blaom
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

Project.toml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name = "LearnDataFrontEnds"
2+
uuid = "5cca22a3-9356-470e-ba1b-8268d0135a4b"
3+
authors = ["Anthony D. Blaom <[email protected]>"]
4+
version = "0.1.0"
5+
6+
[deps]
7+
CategoricalArrays = "324d7699-5711-5eae-9e2f-1d82baa6b597"
8+
LearnAPI = "92ad9a40-7767-427a-9ee6-6e577f1266cb"
9+
MLCore = "c2834f40-e789-41da-a90e-33b280584a8c"
10+
StatsModels = "3eaba693-59b7-5ba5-a881-562e759f1c8d"
11+
Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c"
12+
13+
[compat]
14+
CategoricalArrays = "0.10"
15+
LearnAPI = "0.2"
16+
MLCore = "1.0.0"
17+
StatsModels = "0.7.4"
18+
Tables = "1"
19+
julia = "1.10"
20+
21+
[extras]
22+
CategoricalDistributions = "af321ab8-2d2e-40a6-b165-3d674595d28e"
23+
DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
24+
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
25+
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
26+
StableRNGs = "860ef19b-820b-49d6-a774-d7a799459cd3"
27+
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
28+
29+
[targets]
30+
test = [
31+
"CategoricalDistributions",
32+
"DataFrames",
33+
"LinearAlgebra",
34+
"Random",
35+
"StableRNGs",
36+
"Test",
37+
]

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# LearnDataFrontEnds.jl
2+
3+
LearnDataFrontEnds.jl is a package for developers writing
4+
[LearnAPI.jl](https://juliaai.github.io/LearnAPI.jl/dev/) interfaces for algorithms in
5+
machine learning or statistics.
6+
7+
[![Build Status](https://github.com/JuliaAI/LearnDataFrontEnds.jl/workflows/CI/badge.svg)](https://github.com/JuliaAI/LearnDataFrontEnds.jl/actions)
8+
[![codecov](https://codecov.io/gh/JuliaAI/LearnDataFrontEnds.jl/graph/badge.svg?token=9IWT9KYINZ)](https://codecov.io/gh/JuliaAI/LearnDataFrontEnds.jl?branch=dev)
9+
[![Docs](https://img.shields.io/badge/docs-dev-blue.svg)](https://juliaai.github.io/LearnDataFrontEnds.jl/dev/)
10+
11+
A LearnAPI.jl implementation including a data front end from this package gives users the
12+
flexibility to supply data in a variety of ways (matrices, tables, R-style formulas, etc)
13+
without the need to write the relevant boiler plate to coerce that data into array
14+
representations ultimately needed by the core algorithm. Moreover, the design of
15+
LearnAPI.jl means these conversions are not unnecessarily repeated when applying
16+
meta-algorithms, such as cross-validation.
17+
18+
Documentation is [here](https://juliaai.github.io/LearnDataFrontEnds.jl/dev/).

docs/Project.toml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[deps]
2+
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
3+
DocumenterInterLinks = "d12716ef-a0f6-4df4-a9f1-a5a34e75c656"
4+
LearnDataFrontEnds = "5cca22a3-9356-470e-ba1b-8268d0135a4b"
5+
6+
[compat]
7+
Documenter = "1"
8+
julia = "1.10"

0 commit comments

Comments
 (0)