fishladder 0.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,56 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+
8
+ concurrency:
9
+ group: ci-${{ github.ref }}
10
+ cancel-in-progress: true
11
+
12
+ jobs:
13
+ lint:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ - uses: actions/setup-python@v5
18
+ with:
19
+ python-version: "3.12"
20
+ cache: pip
21
+ - run: pip install -e ".[dev]"
22
+ - run: ruff check .
23
+ - run: ruff format --check .
24
+ - run: mypy src
25
+
26
+ test:
27
+ runs-on: ${{ matrix.os }}
28
+ strategy:
29
+ fail-fast: false
30
+ matrix:
31
+ os: [ubuntu-latest]
32
+ python-version: ["3.10", "3.11", "3.12", "3.13"]
33
+ include:
34
+ - os: windows-latest
35
+ python-version: "3.12"
36
+ - os: macos-latest
37
+ python-version: "3.12"
38
+ steps:
39
+ - uses: actions/checkout@v4
40
+ - uses: actions/setup-python@v5
41
+ with:
42
+ python-version: ${{ matrix.python-version }}
43
+ cache: pip
44
+ - run: pip install -e ".[dev]"
45
+ - run: pytest --cov=fishladder --cov-report=term-missing
46
+
47
+ build:
48
+ runs-on: ubuntu-latest
49
+ steps:
50
+ - uses: actions/checkout@v4
51
+ - uses: actions/setup-python@v5
52
+ with:
53
+ python-version: "3.12"
54
+ - run: pip install build twine
55
+ - run: python -m build
56
+ - run: twine check dist/*
@@ -0,0 +1,20 @@
1
+ name: Publish
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ jobs:
8
+ pypi:
9
+ runs-on: ubuntu-latest
10
+ environment: pypi
11
+ permissions:
12
+ id-token: write
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+ - uses: actions/setup-python@v5
16
+ with:
17
+ python-version: "3.12"
18
+ - run: pip install build
19
+ - run: python -m build
20
+ - uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,28 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2026, Vitor
4
+
5
+ Redistribution and use in source and binary forms, with or without
6
+ modification, are permitted provided that the following conditions are met:
7
+
8
+ 1. Redistributions of source code must retain the above copyright notice, this
9
+ list of conditions and the following disclaimer.
10
+
11
+ 2. Redistributions in binary form must reproduce the above copyright notice,
12
+ this list of conditions and the following disclaimer in the documentation
13
+ and/or other materials provided with the distribution.
14
+
15
+ 3. Neither the name of the copyright holder nor the names of its
16
+ contributors may be used to endorse or promote products derived from
17
+ this software without specific prior written permission.
18
+
19
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
23
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,84 @@
1
+ Metadata-Version: 2.5
2
+ Name: fishladder
3
+ Version: 0.0.1
4
+ Summary: Evaluation framework for online multi-target active learning on data streams.
5
+ Project-URL: Homepage, https://github.com/vitor-costa-garcia/fishladder
6
+ Project-URL: Issues, https://github.com/vitor-costa-garcia/fishladder/issues
7
+ Author-email: Vitor da Costa Garcia <vitorcostagarcia2006@gmail.com>
8
+ License-Expression: BSD-3-Clause
9
+ License-File: LICENSE
10
+ Keywords: active-learning,data-streams,multi-target-regression,online-learning
11
+ Classifier: Development Status :: 2 - Pre-Alpha
12
+ Classifier: Intended Audience :: Science/Research
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
15
+ Requires-Python: >=3.10
16
+ Requires-Dist: numpy
17
+ Requires-Dist: pandas
18
+ Provides-Extra: dev
19
+ Requires-Dist: mypy; extra == 'dev'
20
+ Requires-Dist: pytest; extra == 'dev'
21
+ Requires-Dist: pytest-cov; extra == 'dev'
22
+ Requires-Dist: ruff; extra == 'dev'
23
+ Provides-Extra: plots
24
+ Requires-Dist: matplotlib; extra == 'plots'
25
+ Description-Content-Type: text/markdown
26
+
27
+ # fishladder
28
+
29
+ [![CI](https://github.com/vitor-costa-garcia/fishladder/actions/workflows/ci.yml/badge.svg)](https://github.com/vitor-costa-garcia/fishladder/actions/workflows/ci.yml)
30
+ [![PyPI](https://img.shields.io/pypi/v/fishladder)](https://pypi.org/project/fishladder/)
31
+ [![License](https://img.shields.io/pypi/l/fishladder)](https://github.com/vitor-costa-garcia/fishladder/blob/main/LICENSE)
32
+
33
+ **An evaluation framework for online multi-output active learning on data streams.**
34
+
35
+ > ⚠️ **Early development.** This release (`0.0.1`) mainly reserves the package name.
36
+ > There is no usable API yet, and everything described below is planned work that
37
+ > may change.
38
+
39
+ ## What is this?
40
+
41
+ In many streaming applications (soft sensors, process monitoring, environmental
42
+ sensing), each instance arrives with several outputs to predict, and obtaining
43
+ the true values is expensive. An active learner has to decide, on the fly, which
44
+ labels are worth asking for, and for which outputs.
45
+
46
+ Existing stream-learning libraries support active learning only for
47
+ single-output classification, and existing active learning libraries mostly
48
+ assume a pool of data rather than a stream. fishladder aims to fill the gap by
49
+ providing tools to **evaluate** active learning methods in this setting. Like a
50
+ fish ladder lets only some fish past a dam, the goal is to study which labels
51
+ are worth letting through.
52
+
53
+ ## Planned scope
54
+
55
+ - **Multi-output streams:** multi-target regression first, multi-label
56
+ classification afterwards. Single-output streams as the special case of one
57
+ output.
58
+ - **Output-level querying:** oracles that can reveal a subset of the outputs of
59
+ an instance, with per-output costs.
60
+ - **Budget management** measured in cost, not just number of queries.
61
+ - **Prequential, cost-indexed evaluation** with per-output metrics.
62
+ - **A tidy experiment log**, from which metrics and plots are computed.
63
+ - **Baseline query strategies**, plus a synthetic multi-output stream generator.
64
+ - Compatibility with existing streaming libraries (such as
65
+ [River](https://riverml.xyz)) rather than a replacement for them.
66
+
67
+ None of this is implemented in `0.0.1`.
68
+
69
+ ## Installation
70
+
71
+ ```bash
72
+ pip install fishladder
73
+ ```
74
+
75
+ This currently installs an empty placeholder package.
76
+
77
+ ## Contributing and feedback
78
+
79
+ The project scope is still being defined. Ideas, use cases and criticism are
80
+ welcome through [GitHub issues](https://github.com/vitor-costa-garcia/fishladder/issues).
81
+
82
+ ## License
83
+
84
+ BSD 3-Clause. See [LICENSE](https://github.com/vitor-costa-garcia/fishladder/blob/main/LICENSE).
@@ -0,0 +1,58 @@
1
+ # fishladder
2
+
3
+ [![CI](https://github.com/vitor-costa-garcia/fishladder/actions/workflows/ci.yml/badge.svg)](https://github.com/vitor-costa-garcia/fishladder/actions/workflows/ci.yml)
4
+ [![PyPI](https://img.shields.io/pypi/v/fishladder)](https://pypi.org/project/fishladder/)
5
+ [![License](https://img.shields.io/pypi/l/fishladder)](https://github.com/vitor-costa-garcia/fishladder/blob/main/LICENSE)
6
+
7
+ **An evaluation framework for online multi-output active learning on data streams.**
8
+
9
+ > ⚠️ **Early development.** This release (`0.0.1`) mainly reserves the package name.
10
+ > There is no usable API yet, and everything described below is planned work that
11
+ > may change.
12
+
13
+ ## What is this?
14
+
15
+ In many streaming applications (soft sensors, process monitoring, environmental
16
+ sensing), each instance arrives with several outputs to predict, and obtaining
17
+ the true values is expensive. An active learner has to decide, on the fly, which
18
+ labels are worth asking for, and for which outputs.
19
+
20
+ Existing stream-learning libraries support active learning only for
21
+ single-output classification, and existing active learning libraries mostly
22
+ assume a pool of data rather than a stream. fishladder aims to fill the gap by
23
+ providing tools to **evaluate** active learning methods in this setting. Like a
24
+ fish ladder lets only some fish past a dam, the goal is to study which labels
25
+ are worth letting through.
26
+
27
+ ## Planned scope
28
+
29
+ - **Multi-output streams:** multi-target regression first, multi-label
30
+ classification afterwards. Single-output streams as the special case of one
31
+ output.
32
+ - **Output-level querying:** oracles that can reveal a subset of the outputs of
33
+ an instance, with per-output costs.
34
+ - **Budget management** measured in cost, not just number of queries.
35
+ - **Prequential, cost-indexed evaluation** with per-output metrics.
36
+ - **A tidy experiment log**, from which metrics and plots are computed.
37
+ - **Baseline query strategies**, plus a synthetic multi-output stream generator.
38
+ - Compatibility with existing streaming libraries (such as
39
+ [River](https://riverml.xyz)) rather than a replacement for them.
40
+
41
+ None of this is implemented in `0.0.1`.
42
+
43
+ ## Installation
44
+
45
+ ```bash
46
+ pip install fishladder
47
+ ```
48
+
49
+ This currently installs an empty placeholder package.
50
+
51
+ ## Contributing and feedback
52
+
53
+ The project scope is still being defined. Ideas, use cases and criticism are
54
+ welcome through [GitHub issues](https://github.com/vitor-costa-garcia/fishladder/issues).
55
+
56
+ ## License
57
+
58
+ BSD 3-Clause. See [LICENSE](https://github.com/vitor-costa-garcia/fishladder/blob/main/LICENSE).
@@ -0,0 +1,41 @@
1
+ [build-system]
2
+ requires = ["hatchling>=1.27"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "fishladder"
7
+ version = "0.0.1"
8
+ description = "Evaluation framework for online multi-target active learning on data streams."
9
+ readme = "README.md"
10
+ requires-python = ">=3.10"
11
+ license = "BSD-3-Clause"
12
+ license-files = ["LICENSE"]
13
+ authors = [{ name = "Vitor da Costa Garcia", email = "vitorcostagarcia2006@gmail.com" }]
14
+ keywords = ["active-learning", "data-streams", "online-learning", "multi-target-regression"]
15
+ classifiers = [
16
+ "Development Status :: 2 - Pre-Alpha",
17
+ "Intended Audience :: Science/Research",
18
+ "Programming Language :: Python :: 3",
19
+ "Topic :: Scientific/Engineering :: Artificial Intelligence",
20
+ ]
21
+ dependencies = [
22
+ "numpy",
23
+ "pandas",
24
+ ]
25
+
26
+ [project.optional-dependencies]
27
+ plots = ["matplotlib"]
28
+ dev = ["pytest", "pytest-cov", "ruff", "mypy"]
29
+
30
+ [project.urls]
31
+ Homepage = "https://github.com/vitor-costa-garcia/fishladder"
32
+ Issues = "https://github.com/vitor-costa-garcia/fishladder/issues"
33
+
34
+ [tool.hatch.build.targets.wheel]
35
+ packages = ["src/fishladder"]
36
+
37
+ [tool.ruff]
38
+ line-length = 100
39
+
40
+ [tool.pytest.ini_options]
41
+ testpaths = ["tests"]
@@ -0,0 +1 @@
1
+ __version__ = "0.0.1"
@@ -0,0 +1,5 @@
1
+ import fishladder
2
+
3
+
4
+ def test_version():
5
+ assert fishladder.__version__