import os, re, glob
notebooks_or = glob.glob('/Users/gw18g940/OneDrive - Universitaet Bern/Courses/BiaPy/BIAPy/*.ipynb')
external_packages = ['aicsimageio','ipyvolume','mrc','trackpy','stardist','cellpose']
new_packages = []
for noteb in notebooks_or:
with open(noteb) as n:
all_lines = n.readlines()
to_add = []
for a in all_lines:
if len(a) < 1000:
for e in external_packages:
if a.find(e) > 0:
if e not in to_add:
to_add.append(e)
new_packages.append(to_add)
drive_import = """ {
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from google.colab import drive\\n",
"drive.mount('/content/drive')"
]
},\n"""
bash_cell = """ {
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%%bash\\n",
"wget https://raw.githubusercontent.com/guiwitz/BIAPy/master/course_functions.py"""
newpath = '/Users/gw18g940/OneDrive - Universitaet Bern/Courses/BiaPy/BIAPy_colab/BIAPy/'
for ind, n in enumerate(notebooks_or):
print(n)
fh = newpath + n.split('/')[-1]
counter = 0
package_cell = bash_cell
if len(new_packages[ind])==0:
package_cell += """\"\n"""
else:
package_cell += """\\n",\n"""
for p in range(len(new_packages[ind])):
package_cell += """ "pip install """+new_packages[ind][p]
if p<len(new_packages[ind])-1:
package_cell += """\\n",\n"""
else:
package_cell += """"\n"""
package_cell += """ ]\n },\n"""
with open(fh,'w') as new_file:
with open(n) as old_file:
for line in old_file:
if counter == 2:
new_file.write(drive_import)
new_file.write(package_cell)
if len(line) < 1000:
find_data = re.findall('.*\.\.\/Data.*', line)
if len(find_data) > 0:
new_file.write(line.replace('../Data', '/content/drive/My Drive/Data'))
else:
new_file.write(line)
else:
new_file.write(line)
counter +=1
/Users/gw18g940/OneDrive - Universitaet Bern/Courses/BiaPy/BIAPy/06-Binary_operations.ipynb /Users/gw18g940/OneDrive - Universitaet Bern/Courses/BiaPy/BIAPy/14-PyImageJ.ipynb /Users/gw18g940/OneDrive - Universitaet Bern/Courses/BiaPy/BIAPy/11-3D_image_processing.ipynb /Users/gw18g940/OneDrive - Universitaet Bern/Courses/BiaPy/BIAPy/13-ML_based_segmentation.ipynb /Users/gw18g940/OneDrive - Universitaet Bern/Courses/BiaPy/BIAPy/03-Matplotlib_images.ipynb /Users/gw18g940/OneDrive - Universitaet Bern/Courses/BiaPy/BIAPy/07-Packaging_code.ipynb /Users/gw18g940/OneDrive - Universitaet Bern/Courses/BiaPy/BIAPy/08-Time_lapse_tracking.ipynb /Users/gw18g940/OneDrive - Universitaet Bern/Courses/BiaPy/BIAPy/05-Filtering_thresholding.ipynb /Users/gw18g940/OneDrive - Universitaet Bern/Courses/BiaPy/BIAPy/09-Pattern_matching.ipynb /Users/gw18g940/OneDrive - Universitaet Bern/Courses/BiaPy/BIAPy/04-Image_import.ipynb /Users/gw18g940/OneDrive - Universitaet Bern/Courses/BiaPy/BIAPy/02-Numpy_images.ipynb /Users/gw18g940/OneDrive - Universitaet Bern/Courses/BiaPy/BIAPy/01-Python_bare_minimum.ipynb /Users/gw18g940/OneDrive - Universitaet Bern/Courses/BiaPy/BIAPy/10-Watershed.ipynb /Users/gw18g940/OneDrive - Universitaet Bern/Courses/BiaPy/BIAPy/00-Index.ipynb /Users/gw18g940/OneDrive - Universitaet Bern/Courses/BiaPy/BIAPy/12-Registration.ipynb