An open API service indexing awesome lists of open source software.

https://github.com/raynardj/forgebox

The deep learning tool box
https://github.com/raynardj/forgebox

data-science machine-learning nlp pandas-dataframe

Last synced: 8 months ago
JSON representation

The deep learning tool box

Awesome Lists containing this project

README

          

# ForgeBox

[![PyPI version](https://img.shields.io/pypi/v/forgebox)](https://pypi.org/project/forgebox/)
![Python version](https://img.shields.io/pypi/pyversions/forgebox)
![License](https://img.shields.io/github/license/raynardj/forgebox)
![PyPI Downloads](https://img.shields.io/pypi/dm/forgebox)
[![pypi build](https://github.com/raynardj/forgebox/actions/workflows/publish.yml/badge.svg)](https://github.com/raynardj/forgebox/actions/workflows/publish.yml)
[![Test](https://github.com/raynardj/forgebox/actions/workflows/test.yml/badge.svg)](https://github.com/raynardj/forgebox/actions/workflows/test.yml)

> Data science comprehensive toolbox

## Installation

Easy simple installation in 1 line
```shell
pip install forgebox
```

If not specified, you need anaconda3 for most of the tools.

See [nbs](./nbs) for most of the applications

## Features 🚀 Briefing

> This is a tool box with comprehensive **utilies**, to put it simply, I just hope most of my frequetyly used DIY tools in one place and can be easily **installed and imported**

### Lazy, fast imports 🤯

The following command will import many frequent tools for data science, like **pd** for pandas, **np** for numpy, os, json, PIL.Image for image processing

```python
from frogebox.imports import *
```

No more following verbosity
```python
import pandas as pd
import numpy as np
import os
import json
...
```
### Get a dataframe of file details under a directory

```python
from forgebox.files import file_detail
```

```python
file_detail("/Users/xiaochen.zhang/.cache/").sample(5)
```




path
file_type
parent
depth




36
/Users/xiaochen.zhang/.cache/torch/transformer...
json
transformers
7


13
/Users/xiaochen.zhang/.cache/torch/transformer...
json
transformers
7


51
/Users/xiaochen.zhang/.cache/langhuan/task_NER...
json
task_NER_210121_140513
7


32
/Users/xiaochen.zhang/.cache/torch/transformer...
lock
transformers
7


58
/Users/xiaochen.zhang/.cache/langhuan/task_Cla...
json
task_Classify_210128_164710
7

### HTML in notebook

```python
from forgebox.html import DOM, list_group, list_group_kv
```

This will map a clear HTML table view of wild tree type json structure/ list

```python
bands = ["police", "headpin", {"ac":"dc"}]
list_group(bands)()
```

#### Coding html in python

```python
title = DOM("Title example","h5", kwargs={"style":"color:#3399EE"})
ul = DOM("","ul");
for i in range(5):
ul = ul.append(DOM(f"Line {i}", "li", kwargs={"style":"color:#EE33DD"}))

title()
ul()
```

Title example


  • Line 0

  • Line 1

  • Line 2

  • Line 3

  • Line 4

### Interactive Widgets
> Interactive widgets work with in jupyter notebooks

#### Search box 🔎 for dataframe
This will create an interactive text input box to search through the pandas dataframe, within the columns you set.

if ```manual``` is set to False, the search will respond to **each of your key press**, it's fast but will suffer terrible user experience if the dataframe is huge in size.

```python
from forgebox.widgets import search_box

search_box(data_df, columns=["col1","col2"], manual=False)
```

#### paginate
You can browse through a pandas dataframe like fliping pages 📄.

```python
# this will import many things like enhanced pandas
from forgebox.imports import *
df = pd.read_csv("xxxx.csv")
df.paginate()
```

```python
from forgebox.widgets import paginate

paginate(your_dataframe, page_len=10)
```