@ -60,14 +60,20 @@ with st.form("files"):
# Ask for relations file.
# Ask for relations file.
csv_edges = st . file_uploader ( label = " Upload file with **relations**. " , key = " relations " , help = f ' [Example]( { info . relations_example } ) ' )
csv_edges = st . file_uploader ( label = " Upload file with **relations**. " , key = " relations " , help = f ' [Example]( { info . relations_example } ) ' )
sep = st . radio ( ' Separator in your files: ' , options = [ ' , ' , ' ; ' , ' tab ' ] )
sep = st . radio ( ' Separator in your files: ' , options = [ ' comma ( , ) ' , ' semicolon ( ; ) ' , ' tab ( \u21E5 ) ' ] , help = ' What are the values in your files separated with? ' )
if sep == ' tab ' :
sep = ' \t '
files_uploaded = st . form_submit_button ( " Done " )
files_uploaded = st . form_submit_button ( " Ok " )
if files_uploaded :
if files_uploaded :
df = pd . read_csv ( csv_edges , sep = sep )
separators = { ' comma ( , ) ' : ' , ' , ' semicolon ( ; ) ' : ' ; ' , ' tab ( \u21E5 ) ' : ' \t ' }
if ' sep ' not in st . session_state :
st . session_state [ " sep " ] = separators [ sep ]
if csv_edges == None :
st . markdown ( ' :red[You need to upload a file with relations.] ' )
st . stop ( )
df = pd . read_csv ( csv_edges , sep = st . session_state [ " sep " ] )
df . rename ( { ' type ' : ' relation_type ' } , inplace = True , axis = 1 ) # 'type' can't be used as attribute.
df . rename ( { ' type ' : ' relation_type ' } , inplace = True , axis = 1 ) # 'type' can't be used as attribute.
df . columns = [ i . lower ( ) for i in df . columns ] # Remove capital letters from column names.
df . columns = [ i . lower ( ) for i in df . columns ] # Remove capital letters from column names.
@ -113,7 +119,7 @@ if files_uploaded:
)
)
if csv_nodes != None : # When a nodes file is uploaded.
if csv_nodes != None : # When a nodes file is uploaded.
df_nodes = pd . read_csv ( csv_nodes , sep = sep )
df_nodes = pd . read_csv ( csv_nodes , sep = st . session_state [ " s ep " ] )
df_nodes . columns = [ i . lower ( ) for i in df_nodes . columns ] # Remove capital letters from column names.
df_nodes . columns = [ i . lower ( ) for i in df_nodes . columns ] # Remove capital letters from column names.
columns = df_nodes . columns . tolist ( )
columns = df_nodes . columns . tolist ( )
if " label " in columns :
if " label " in columns :
@ -136,7 +142,7 @@ if files_uploaded:
df_nodes . set_index ( " labels " , inplace = True )
df_nodes . set_index ( " labels " , inplace = True )
gexf_file = " output.gexf "
gexf_file = " output.gexf "
#with open(gexf_file) as f:
# Make empty graph.
# Make empty graph.
G = nx . MultiDiGraph ( )
G = nx . MultiDiGraph ( )
# Add nodes.
# Add nodes.
@ -146,7 +152,7 @@ if files_uploaded:
G , df , source = source , target = target , chosen_columns = chosen_columns
G , df , source = source , target = target , chosen_columns = chosen_columns
)
)
# Turn the graph into text .
# Turn the graph into a string .
graph_text = " \n " . join ( [ line for line in nx . generate_gexf ( G ) ] )
graph_text = " \n " . join ( [ line for line in nx . generate_gexf ( G ) ] )
# Download gexf-file.
# Download gexf-file.