Mecsimcalc v0.1.5 documentation
This library is designed to provide a set of functions for handling and converting various types of data, such as base64 encoded data, Pandas DataFrames, and Pillow images.
input_to_file (input_file , metadata = False )
Converts a base64 encoded string into a file object and metadata
Argument
Type
Description
input_file
str
Base64 encoded string, prefixed with metadata
metadata
bool (optional)
Flag to return metadata with the file. (Defaults to False)
Exception
Description
ValueError
If the input string doesn't contain ';base64,' to separate metadata and file data.
Return Type
Description
Condition
io.BytesIO
The decoded file data (The thing you get when you open a file in Python)
metadata is False
(io.BytesIO, str)
The decoded file data and its metadata
metadata is True
>> > input_file = inputs ['file' ]
>> > file , metadata = input_to_file (input_file , metadata = True )
>> > print (metadata )
data :image / jpeg ;base64 ,
>> > type (file )
< class '_io.BytesIO' >
metadata_to_filetype (metadata ):
Extracts the file type from the metadata
Argument
Type
Description
metadata
str
The metadata string in the form "Data:(MIME type);base64,"(returned from input_to_file
)
Return Type
Description
str
The file type (e.g. "jpeg")
>> > input_file = inputs ['file' ]
>> > file , metadata = input_to_file (input_file , metadata = True )
>> > print (metadata )
data :image / jpeg ;base64 ,
>> > download_file_type = metadata_to_filetype (metadata )
>> > print (download_file_type )
jpeg
string_to_file (
text
filename = "myfile" ,
download_text = "Download File" ,
)
Generates a downloadable text file containing the given text
Argument
Type
Description
text
str
Text to be downloaded
filename
str (optional)
Name of the download file. (Defaults to "myfile")
download_text
str (optional)
Text to be displayed as the download link. (Defaults to "Download File")
Exception
Description
TypeError
If the input text is not a string.
Return Type
Description
str
HTML download link
>> > download_link = string_to_file ("Hello World!" )
>> > return {"download" : download_link }
# outputs.downloadLink is the html download link generated by the function
{{ outputs .download }}
file_to_dataframe (file_data ):
Converts a base64 encoded file data into a pandas DataFrame
Argument
Type
Description
file_data
io.BytesIO
Decoded file data (e.g. from input_to_file
)
Exception
Description
pd.errors.ParserError
If the file data cannot be converted to a DataFrame (i.e. file is not an Excel or CSV file or is corrupted)
Return Type
Description
pd.DataFrame
DataFrame created from file data
>> > input_file = inputs ['file' ]
>> > decoded_file = input_to_file (input_file )
>> > df = file_to_dataframe (decoded_file )
>> > print (df )
A B C
0 a b c
1 d e f
input_to_dataframe (file ):
Converts a base64 encoded file data into a pandas DataFrame
Argument
Type
Description
input_file
str
Base64 encoded file data
get_file_type
bool
If True, the function also returns the file type (Defaults to False)
Return Type
Description
Condition
pd.DataFrame
DataFrame created from file data
get_file_type is False
(pd.DataFrame, str)
Tuple containing the DataFrame and the file type
get_file_type is True
>> > input_file = inputs ['file' ]
>> > df , file_type = input_to_dataframe (input_file , get_file_type = True )
>> > print (df )
A B C
0 a b c
1 d e f
>> > print (file_type )
csv
print_dataframe (
df ,
download = False ,
download_text = "Download Table" ,
download_file_name = "mytable" ,
download_file_type = "csv" ,
):
Creates an HTML table and a download link for a given DataFrame
Argument
Type
Description
df
pd.DataFrame
DataFrame to be converted
download
bool (optional)
If True, function returns a download link (Defaults to False)
download_text
str (optional)
Text to be displayed as the download link (Defaults to "Download Table")
download_file_name
str (optional)
Name of file when downloaded (Defaults to "mytable")
download_file_type
str (optional)
File type of downloaded file (Defaults to "csv")
Return Type
Description
Condition
str
HTML table
download is False
Tuple[str, str]
(HTML table, HTML download link)
download is True
>> > input_file = inputs ['file' ]
>> > df = input_to_dataframe (input_file )
>> > table , download = print_dataframe (df , download = True , download_file_name = "FunkyTable" , download_text = "Download My Funky Table HERE!" , download_file_type = "xlsx" )
>> > return {
"table" :table ,
"download" :download ,
}
Output using Jinja2 Template:
# outputs.table is the HTML table
Displaying Table
{{ outputs .table }}
# outputs.download is the download link
Downloading Table
{{ outputs .download }}
table_to_dataframe (column_headers , rows ) - > pd .DataFrame :
Create a DataFrame from given rows and column headers
Argument
Type
Description
column_headers
List[str]
List of column headers
rows
List[List[str]]
List of rows to be converted into a DataFrame. Each column is a list of strings
Return Type
Description
pd.DataFrame
DataFrame created from headers and rows
>> > column_headers = ["A" , "B" , "C" ]
>> > rows = [["a" , "b" , "c" ], ["d" , "e" , "f" ]]
>> > df = table_to_dataframe (column_headers , rows )
>> > print (df )
A B C
0 a b c
1 d e f
print_table (column_headers , rows ):
Creates an HTML table from given rows and column headers
Argument
Type
Description
column_headers
List[str]
List of column headers
rows
List[List[str]]
List of rows to be converted into a table. Each column is a list of strings
index
bool (optional)
Whether to use the first column as the DataFrame's index. (Defaults to True)
Return Type
Description
str
HTML table created from rows and headers
>> > column_headers = ["A" , "B" , "C" ]
>> > rows = [["a" , "b" , "c" ], ["d" , "e" , "f" ]]
>> > table = print_table (column_headers , rows )
>> > return {
"table" :table ,
}
Output using Jinja2 Template:
# outputs.table is the HTML table
Displaying Table
{{ outputs .table }}
Transforms a file into a Pillow Image object
Argument
Type
Description
file
str
Decoded file data (returned from input_to_file)
Exception Type
Description
ValueError
If the file does not contain image data
Return Type
Description
Image
Pillow Image object
>> > input_file = inputs ['file' ]
>> > decoded_file = input_to_file (input_file )
>> > image = file_to_PIL (decoded_file )
>> > return {
"image" :image ,
}
Output using Jinja2 Template:
# outputs.image is the Pillow Image object
Displaying Image
{{ outputs .image }}
input_to_PIL (input_file , get_file_type = False ):
Converts a base64 encoded file data into a pillow image
Argument
Type
Description
input_file
str
Base64 encoded file data
get_file_type
bool
If True, the function also returns the file type (Defaults to False)
Return Type
Description
Condition
PIL.Image.Image
Pillow Image object
get_file_type is False
Tuple[PIL.Image.Image, str]
(pillow image, metadata)
get_file_type is True
>> > input_file = inputs ['file' ]
>> > image , file_type = input_to_PIL (input_file , get_file_type = True )
>> > print (file_type )
jpeg
>> > type (image )
< class 'PIL.JpegImagePlugin.JpegImageFile' >
print_image (
image ,
width = 200 ,
height = 200 ,
original_size = False ,
download = False ,
download_text = "Download Image" ,
download_file_name = "myimg" ,
download_file_type = "png" ,
):
Transforms a Pillow image into an HTML image, with an optional download link
Argument
Type
Description
image
PIL.Image.Image
Pillow image
width
int (optional)
Output width of the image in pixels (Defaults to 200)
height
int (optional)
Output height of the image in pixels (Defaults to 200)
original_size
bool (optional)
If True, the HTML image will be displayed in its original size (Defaults to False)
download
bool (optional)
If True, function returns a download link (Defaults to False)
download_text
str (optional)
The text to be displayed on the download link (Defaults to "Download Image")
download_file_name
str (optional)
The name of the image file when downloaded (Defaults to "myimg")
download_file_type
str (optional)
The file type of the image when downloaded (Defaults to "png")
Return Type
Description
Condition
str
HTML image
download is False
Tuple[str, str]
(HTML image, download link)
download is True
>> > input_file = inputs ['file' ]
>> > image , metadata = input_to_PIL (input_file )
>> > html_image , download = print_image (image , original_size = True , download = True , download_text = "Download Image Here" , download_file_name = "myimage" , download_file_type = "jpeg" )
>> > return {
"image" :html_image ,
"download" :download ,
}
Output using Jinja2 Template:
# outputs.image is the HTML image
Displaying Image
{{ outputs .image }}
# outputs.download is the download link
Downloading Image
{{ outputs .download }}
print_plot (
plot_obj ,
width = 500 ,
dpi = 100 ,
download = False ,
download_text = "Download Plot" ,
download_file_name = "myplot" ,
)
Converts a matplotlib.pyplot.axis or matplotlib.figure into an HTML image tag and optionally provides a download link for the image
Argument
Type
Description
plot_obj
axes or figure
Matplotlib figure
width
int (optional)
Output width of the image in pixels (Defaults to 500)
dpi
int (optional)
Output dpi of the image in pixels (Defaults to 100)
download
bool (optional)
If True, function returns a download link (Defaults to False)
download_text
str (optional)
The text to be displayed on the download link (Defaults to "Download Plot")
download_file_name
str (optional)
The name of the image file when downloaded (Defaults to "myplot")
Return Type
Description
Condition
str
HTML image
download is False
Tuple[str, str]
(HTML image, HTML download link)
download is True
>> > import matplotlib .pyplot as plt
>> > import numpy as np
>> > x = np .linspace (0 , 2 * np .pi , 400 )
>> > y = np .sin (x )
>> > fig , ax = plt .subplots ()
>> > ax .plot (x , y )
>> > ax .set_title ('A single plot' )
>> > image , download = print_plot (fig , width = 500 , dpi = 100 , download = True , download_text = "Download Sin Function Plot" , download_file_name = "sin(x)" )
>> > return {
"image" :image ,
"download" :download ,
}
Output using Jinja2 Template:
# outputs.image is the HTML image
Displaying Image
{{ outputs .image }}
# outputs.download is the download link
Downloading Image
{{ outputs .download }}