Metadata-Version: 2.4
Name: rulekit
Version: 2.1.24.2
Summary: Comprehensive suite for rule-based learning
Home-page: https://github.com/adaa-polsl/RuleKit
Author: Cezary Maszczyk
Author-email: cezary.maszczyk@gmail.com
Project-URL: Bug Tracker, https://github.com/adaa-polsl/RuleKit-python/issues
Project-URL: Documentation, https://adaa-polsl.github.io/RuleKit-python/
Project-URL: Source Code, https://github.com/adaa-polsl/RuleKit-python
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Java
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: Unix
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.24
Requires-Dist: pandas>=1.5
Requires-Dist: scipy>=1.11
Requires-Dist: scikit-learn>=1.1
Requires-Dist: JPype1==1.5.2
Requires-Dist: pydantic>=2.0
Requires-Dist: requests>=2.32.3
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license-file
Dynamic: project-url
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

[![Coverage Status](https://adaa-polsl.github.io/RuleKit-python/badges/coverage-badge.svg?dummy=8484744)](https://adaa-polsl.github.io/RuleKit-python/reports/coverage/index.html)
[![Tests Status](https://adaa-polsl.github.io/RuleKit-python/badges/test-badge.svg?dummy=8484744)](https://adaa-polsl.github.io/RuleKit-python/reports/junit/report.html)
[![Flake8 Status](https://adaa-polsl.github.io/RuleKit-python/badges/flake8-badge.svg?dummy=8484744)](https://adaa-polsl.github.io/RuleKit-python/reports/flake8/index.html)
[![PyPI](https://img.shields.io/pypi/v/rulekit?label=pypi%20package)](https://pypi.org/project/rulekit/)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/rulekit)](https://pypi.org/project/rulekit/)

# Rulekit

This package is python wrapper for [RuleKit](https://github.com/adaa-polsl/RuleKit) library - a versatile tool for rule learning. 
 
Based on a sequential covering induction algorithm, it is suitable for classification, regression, and survival problems.
 
## Installation
 
```bash
pip install rulekit
```

> **NOTE**: 
This package is a wrapper for Java library, and requires Java Development Kit version 8 or later to be installed on the computer. Both Open JDK and Oracle implementations are supported.

If you don’t have JDK installed on your computer you can quickly set it up using install-jdk package.
```
pip install install-jdk
```
```python
import jdk
jdk.install('11', jre=True)
```
 
## Running tests
 
If you're running tests for the first time (or you want to update existing tests resources) you need to download tests resources from RuleKit repository. You can do it by running:
```
python tests/resources.py download
```
Runing tests:    
In directory where `setup.py` file exists.
```
python -m unittest discover ./tests
```
 
## Sample usage
 
```python
from sklearn.datasets import load_iris

from rulekit.classification import RuleClassifier
 
X, y = load_iris(return_X_y=True)
 
clf = RuleClassifier()
clf.fit(X, y)
prediction = clf.predict(X)
 
print(prediction)
```
 
## Documentation
 
Full documentation is available [here](https://adaa-polsl.github.io/RuleKit-python/)

## Licensing

The software is publicly available under [GNU AGPL-3.0](https://github.com/adaa-polsl/RuleKit-python/blob/main/LICENSE) license. Any derivative work obtained under this license must be licensed under the AGPL if this derivative work is distributed to a third party. For commercial projects that require the ability to distribute RuleKit code as part of a program that cannot be distributed under the AGPL, it may be possible to obtain an appropriate license from the authors.
