Due to a migration in our CI environment from `macos-latest` to macOS 14 runner images, we've encountered a compatibility issue with Python 3.8 and 3.9. The new architecture of macOS 14 does not currently support these Python versions. While we expect future updates to resolve this, we will temporarily revert our CI to use macOS 12 to ensure continuity in our workflows.
Previously, the CI cron schedule, copy-pasted from a personal project,
ran jobs at 8am UTC (3am EST or 4am EDT) on Saturday. This isn't a great
time to get emails about CI breakages.
This patch switches the schedule so it runs on Monday morning (7am EST /
8am EDT).
[skip ci]
This patch moves the `--allow-redefinition` into the `.mypi.ini` file.
Centralizing our mypy config in a single file makes sense, and this way,
if people want to run mypy locally, they don't need to remember to
supply this command-line argument.
* validation_func docstring
* torch,tf compatibility+tests
* keras test
* skip tests if python < 3.7
* pytorch numpy int bug on windows
* make tensorflow test work on windows
* move tf env variable setting
* pytorch test increase epochs
* install cpu-tensorflow on windows CI
* torch test optimizer to adam
* fix bugs in shuffled TF dataset
* dummy unit test for TF on windows
* dummy code for TF windows testing
* deal with np.int bug on windows
* remove windows debugging code
* docstrings for new functionality
* address merge conflicts
* reformat after merge
* addressed comments
Our package doesn't have type annotations everywhere, so we can't use
mypy in strict mode just yet. Still, adding type checking in CI is
valuable, so we don't have unchecked annotations in our code.
This patch includes basic fixes to make type checking pass, including
switching the incorrect `np.array` type annotation for `np.ndarray` and
adding some assertions for flow-sensitive typing.
Preserving the output cells in Jupyter notebooks that are checked in to
this repo bloat the repo size, and keeping the output is not necessary
because the notebooks are run as part of the CI for producing docs.
For example, in https://github.com/cleanlab/cleanlab/pull/165, the
`audio.ipynb` is 112K (and now part of the repo history forever), while
clearing the output cells reduces that size down to 24K. I suspect that
Git's delta compression will also work better without the output cells
there as we make changes to the notebook. Also, the diffs will be more
readable.
* Refactor modules pruning to filter and latent_estimation to count
* Remove polyplex (research) algorithms from cleanlab
* Create new module rank and move scoring functions to rank.
* Rename test to match new module names
* Fixed error in normalized margin. added ranking for arbitrary psx and labels.
* Remove unused tests and methods. add multi-label support for baseline.
* Move baseline methods to filter and delete baseline module.
* change filter.get_noise_indices to filter.find_label_issues
* Rename baseline methods. fill out docstrings.
* Only require 1 example to be left in each class after removing errors. (instead of 5)
* Remove K as a parameter to count.compute_confident_joint
* Add C_argmax and C_ij methods from CL paper to find_label_issues
* Add warnings for new prune methods and frac_noise. Fix tests.
* Add baseline tests to test_rank_filter and delete baseline test
* Remove inverse_noise_matrix parameter in classification call to find_label_issues
* add todo to update docstring with new ranking functions
* 100% tests pass. add multi-label support for prune_method
* Major NOT-backwards-compatible name changes to most components
* More Major NOT-backwards-compatible name changes
* fixed s -> label mistakes
* Several nomenclature updates from PR feedback. models renamed to example models.
* Remove python2 support across all modules.
* major api changes. psx -> pred_probs. prob_given_label -> self_confidence. testing added.
* enable python version 3.9 for pytorch model.
* ran spellcheck
* ran grammar check
* Update count.py
* Update filter.py
* Update setup.py and ci.yml to no longer support Python 2 and py3.4/5
* Increase test coverage and documentation of rank module methods.
* create utils submodule and move util and latent_algebra
* Rename y everywhere to true_labels, and p(true_label=..)
* Enforce positional arguments in methods. Fully remove py2 support.
This was duplicating content in setup.py (and the two had gotten out of
sync, listing different versions for scipy).
According to the Python Packaging User Guide
(https://packaging.python.org/en/latest/discussions/install-requires-vs-requirements/),
the `install_requires` specifies what a project minimally needs to run
correctly, while the requirements.txt file contains an exhaustive list
of pinned versions for the purpose of repeatable installations of a
complete environment. Cleanlab is a Python package that users will `pip
install`, so we don't need a requirements.txt.
Some related projects like scikit-learn don't have a requirements.txt,
and others that do have such a file use it for a different purpose, e.g.
PyTorch and Keras use the file to list dev dependencies.
When multiple coverage reports are uploaded to Codecov, it merges the
reports, which is what we want in this situation. So for example, if the
code branches on Python version or OS version, we'll cover those
branches across tests.
This patch switches the CI from Travis-CI to GitHub Actions.
The new CI script drops support for Python 3.4 (EOLed 18 March 2019) and
Python 3.5 (EOLed 13 September 2020), though it keeps support for Python
2.7 (EOLed 1 January 2020). This keeps the CI configuration a lot
simpler.
The new CI script also simplifies code coverage: a single coverage
report is produced for Python 3.9 on Ubuntu. There are no coverage
statistics being collected and uploaded for older versions of Python 3,
Python 2, or other OSes.