Metadata-Version: 2.3
Name: pysatl-criterion
Version: 1.0.0
Summary: Package with statistic criteria for PySATL
License: MIT
Author: PySATL Team
Author-email: pysatl@yahoo.com
Requires-Python: >=3.10,<3.13
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: networkx (==3.4.2)
Requires-Dist: numpy (>=1.25.1)
Requires-Dist: pandas (>=2.2.1)
Requires-Dist: psycopg2-binary (>=2.9.12,<3.0.0)
Requires-Dist: python-dotenv (>=1.0.0)
Requires-Dist: scipy (>=1.11.2)
Requires-Dist: sqlalchemy (==2.0.49)
Requires-Dist: typing-extensions (>=4.12.2)
Requires-Dist: zstandard (==0.25.0)
Project-URL: Homepage, https://github.com/PySATL/pysatl-criterion
Project-URL: Issues, https://github.com/PySATL/pysatl-criterion/issues
Description-Content-Type: text/markdown

# PySATL Criterion

[![Pysatl_criterion CI](https://github.com/PySATL/pysatl-criterion/workflows/PySATL%20CI/badge.svg)](https://github.com/PySATL/pysatl-criterion/actions)
[![Coverage Status](https://coveralls.io/repos/github/PySATL/pysatl-criterion/badge.svg?branch=main)](https://coveralls.io/github/PySATL/pysatl-criterion?branch=main)
[![Documentation](https://readthedocs.org/projects/pysatl-criterion/badge)](https://pysatl-criterion.readthedocs.io)

This repository contains a collection of Python scripts and modules for performing various statistical tests. These tests are designed to help you analyze data, make inferences, and draw conclusions based on statistical methods. The repository is organized to be easy to use, modular, and extensible.

## Installation
To use this repository, you need to have Python 3.9 or later installed on your system. You can install the required dependencies by following these steps:

Clone the repository:

```bash
git clone https://github.com/PySATL/pysatl-criterion.git
```

Install dependencies:

```bash
poetry install
```
You're all set! You can now import and use the statistical tests in your Python scripts.

## PySATL Criterion module usage example:

Statistic calculation example:
```python
# import needed criterion from pysatl_criterion
from pysatl_criterion.statistics import KolmogorovSmirnovNormalityGofStatistic


# make a criterion object
statistic = KolmogorovSmirnovNormalityGofStatistic(mean=0, var=1)

# initialize test data
x = [0.1, 0.7, 0.5, 0.3]

# then run algorithm
result = statistic.execute_statistic(x)

# print the results
print(f"Statistic result: {result}")
# output:
# Statistic result: 0.539827837277029
```

## Documentation
We invite you to read the bot documentation to ensure you understand how the PySATL Criterion lib is working.

Please find the complete documentation on the [PySATL Criterion website](https://pysatl-criterion.readthedocs.io/en/latest/).

## Support
### [Bugs / Issues](https://github.com/PySATL/pysatl-criterion/issues?q=is%3Aissue)

If you discover a bug in the PySATL criterion lib, please
[search the issue tracker](https://github.com/PySATL/pysatl-criterion/issues?q=is%3Aissue)
first. If it hasn't been reported, please
[create a new issue](https://github.com/PySATL/pysatl-criterion/issues/new/choose) and
ensure you follow the template guide so that the team can assist you as
quickly as possible.

For every [issue](https://github.com/PySATL/pysatl-criterion/issues/new/choose) created, kindly follow up and mark satisfaction or reminder to close issue when equilibrium ground is reached.

--Maintain github's [community policy](https://docs.github.com/en/site-policy/github-terms/github-community-code-of-conduct)--

### [Feature Requests](https://github.com/PySATL/pysatl-criterion/labels/enhancement)

Have you a great idea to improve the bot you want to share? Please,
first search if this feature was not [already discussed](https://github.com/PySATL/pysatl-criterion/labels/enhancement).
If it hasn't been requested, please
[create a new request](https://github.com/PySATL/pysatl-criterion/issues/new/choose)
and ensure you follow the template guide so that it does not get lost
in the bug reports.

### [Pull Requests](https://github.com/PySATL/pysatl-criterion/pulls)

Feel like the PySATL criterion lib is missing a feature? We welcome your pull requests!

Please read the
[Contributing document](https://github.com/PySATL/pysatl-criterion/blob/main/CONTRIBUTING.md)
to understand the requirements before sending your pull-requests.

Coding is not a necessity to contribute - maybe start with improving the documentation?
Issues labeled [good first issue](https://github.com/PySATL/pysatl-criterion/labels/good%20first%20issue) can be good first contributions, and will help get you familiar with the codebase.

**Note** before starting any major new feature work, *please open an issue describing what you are planning to do*. This will ensure that interested parties can give valuable feedback on the feature, and let others know that you are working on it.

**Important:** Always create your PR against the `develop` branch, not `stable`.


## Software requirements
- [Python >= 3.9](http://docs.python-guide.org/en/latest/starting/installation/)
- [poetry](https://python-poetry.org/docs/)
- [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
- [virtualenv](https://virtualenv.pypa.io/en/stable/installation.html) (Recommended)


## Development

Install requirements

```bash
poetry install --with dev
```

## Pre-commit

Install pre-commit hooks:

```shell
poetry run pre-commit install
```

Starting manually:

```shell
poetry run pre-commit run --all-files --color always --verbose --show-diff-on-failure
```

## License

This project is licensed under the terms of the **Apache License 2.0** license. See the [LICENSE](LICENSE) for more information.

