Metadata-Version: 2.4
Name: mis_analytics
Version: 0.0.1
Home-page: https://github.com/MIS-Analytics/mis_core
Author: Solveit
Author-email: nobody@fast.ai
License: Apache Software License 2.0
Keywords: nbdev jupyter notebook python
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: License :: OSI Approved :: Apache Software License
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: fastcore
Requires-Dist: pandas
Requires-Dist: dialoghelper
Requires-Dist: numpy
Provides-Extra: dev
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python

# mis_core


<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

This file will become your README and also the index of your
documentation.

## Developer Guide

If you are new to using `nbdev` here are some useful pointers to get you
started.

### Install mis_core in Development mode

``` sh
# make sure mis_core package is installed in development mode
$ pip install -e .

# make changes under nbs/ directory
# ...

# compile to have changes apply to mis_core
$ nbdev_prepare
```

## Usage

``` python
df = get_demo_data()
df
```

<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }
&#10;    .dataframe tbody tr th {
        vertical-align: top;
    }
&#10;    .dataframe thead th {
        text-align: right;
    }
</style>

|     | order_id | product  | quantity | defects | production_time |
|-----|----------|----------|----------|---------|-----------------|
| 0   | 101      | Widget A | 50       | 2       | 120             |
| 1   | 102      | Widget B | 30       | 1       | 95              |
| 2   | 103      | Widget A | 75       | 3       | 150             |
| 3   | 104      | Widget C | 20       | 0       | 80              |
| 4   | 105      | Widget B | 45       | 2       | 110             |

</div>

``` python
@track
def aggregate_by_product(df):
    return df.groupby(["product"])[["quantity", "defects", "production_time"]].sum()
```

``` python
@track
def filter_products(df):
    return df[df["product"] != "Widget C"]
```

``` python
steps = [
    (filter_products, {'vrbs':True}),
    (aggregate_by_product, {}),
]
```

``` python
_df = pipeline(df, steps, vrbs_default=False)
```

    *************** filter_products ***************
    Total Time: 1.75 ms

    Start: 2025-12-18 16:05:55.759474
      End: 2025-12-18 16:05:55.761225

    Input DataFrame:
      order_id   product quantity defects production_time
    0      101  Widget A       50       2             120
    1      102  Widget B       30       1              95
    2      103  Widget A       75       3             150
             :         :        :       :               :
    3      104  Widget C       20       0              80
    1      102  Widget B       30       1              95
    4      105  Widget B       45       2             110
    0      101  Widget A       50       2             120
    2      103  Widget A       75       3             150
             :         :        :       :               :
    2      103  Widget A       75       3             150
    3      104  Widget C       20       0              80
    4      105  Widget B       45       2             110

            Input:   5 rows, 5 cols
                         ↓       ↓
            Diff:   -1 rows, 0 cols
                         ↓       ↓
            Output:  4 rows, 5 cols
            
    Output DataFrame:
      order_id   product quantity defects production_time
    0      101  Widget A       50       2             120
    1      102  Widget B       30       1              95
    2      103  Widget A       75       3             150
             :         :        :       :               :
    4      105  Widget B       45       2             110
    0      101  Widget A       50       2             120
    2      103  Widget A       75       3             150
    1      102  Widget B       30       1              95
             :         :        :       :               :
    1      102  Widget B       30       1              95
    2      103  Widget A       75       3             150
    4      105  Widget B       45       2             110

### Installation

Install latest from the GitHub
[repository](https://github.com/MIS-Analytics/mis_core):

``` sh
$ pip install git+https://github.com/MIS-Analytics/mis_core.git
```

or from [conda](https://anaconda.org/MIS-Analytics/mis_core)

``` sh
$ conda install -c MIS-Analytics mis_core
```

or from [pypi](https://pypi.org/project/mis_core/)

``` sh
$ pip install mis_core
```

### Documentation

Documentation can be found hosted on this GitHub
[repository](https://github.com/MIS-Analytics/mis_core)’s
[pages](https://MIS-Analytics.github.io/mis_core/). Additionally you can
find package manager specific guidelines on
[conda](https://anaconda.org/MIS-Analytics/mis_core) and
[pypi](https://pypi.org/project/mis_core/) respectively.

## How to use

Fill me in please! Don’t forget code examples:

``` python
1+1
```

    2
