Skip to content

raynardj/forgebox

Repository files navigation

ForgeBox

PyPI version Python version License PyPI Downloads pypi build Test

Data science comprehensive toolbox

Installation

Easy simple installation in 1 line

pip install forgebox

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

See 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

from frogebox.imports import *

No more following verbosity

import pandas as pd
import numpy as np
import os
import json
...

Get a dataframe of file details under a directory

from forgebox.files import file_detail
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

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

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

Coding html in 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.

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 📄.

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

paginate(your_dataframe, page_len=10)