Metadata-Version: 2.1
Name: pyfit
Version: 0.0.2
Summary: A simple Machine Learning library
Home-page: https://github.com/bpesquet/pyfit
Author: Baptiste Pesquet
Author-email: bpesquet@gmail.com
License: MIT
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Intended Audience :: Developers
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: numpy

[![Build Status](https://travis-ci.org/bpesquet/pyfit.svg?branch=master&logo=travis-ci&logoColor=white)](https://travis-ci.org/bpesquet/pyfit)
[![Python Versions](https://img.shields.io/pypi/pyversions/pyfit.svg)](https://pypi.org/project/pyfit)
[![PyPI Version](https://img.shields.io/pypi/v/pyfit.svg)](https://pypi.org/project/pyfit)
[![PyPI status](https://img.shields.io/pypi/status/pyfit.svg)](https://pypi.python.org/project/pyfit)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

# pyfit

**pyfit** is a simple Machine Learning library built with Python and [NumPy](https://numpy.org/) for educational purposes.

## Overview

This project's main goal is to help ML students and enthusiasts get a deeper understanding of the Machine Learning workflow and main algorithms, by implementing them from scratch.

As a Python package, it also strives to define a clean, pythonic API and follow good coding practices, including [type annotations](https://www.python.org/dev/peps/pep-0484/).

## Status

**pyfit** is a work in progress currently in alpha status. See [Progress](https://github.com/bpesquet/pyfit/projects/1) for details.

## Content

- Data Preprocessing [ [Source](pyfit/preprocessing.py) | [Tests](tests/test_preprocessing.py) ]
- Metrics [ [Source](pyfit/metrics/) | [Tests](tests/test_metrics.py) ]
- K-Nearest Neighbors [ [Source](pyfit/neighbors.py) | [Tests](tests/test_neighbors.py) ]
- Neural Networks [ [Source](pyfit/nn/) ]
- ... More to come!

## Development Notes

### Checking the code

**pyfit** uses the following tools:

- [black](https://github.com/psf/black) for code formatting.
- [pylint](https://www.pylint.org/) and [mypy](http://mypy-lang.org/) for linting.
- [pytest](https://pytest.org) for testing.

Run the following commands to check the codebase.

```bash
python -m pylint ./pyfit # linting (including type checks)
python -m mypy .         # type checks only
python -m pytest .       # test suite
```

### Uploading the package to PyPI

```bash
python setup.py sdist bdist_wheel
python -m twine upload dist/*
```


