# Small program to put a custom.css file from the course material # directory to the correct location on the students machines. # # Since the directory structure for the custom.css file changed # this set-up only works for IPython and Jupyter versions after # the so called the "big split" (version 4 and higher). import os import jupyter_core import IPython import shutil from time import sleep print('Checking first your IPython version...') sleep(2) version1,version2,__,__ = IPython.version_info # Checking for the IPython version # Returns the version number as tuble with integer if (version1 + version2/10) < 4: print('''Your IPython version is only %i.%i. This set-up program requires an IPython version after the "big splitt" (4.0 or higher). Please contact the tutor.'''% (version1,version2)) else: script_dir = os.path.abspath('') # Gets the directory name of the current set-up file custiom_source_file = os.path.join(script_dir,'custom.css') print('''Setting up a custom made Jupyter Style. Searching for the Jupyter profile directory...''') sleep(2) jupyter_path = jupyter_core.paths.jupyter_config_dir() print(r'Your Jupyter profile directory is allocated at %s'% jupyter_path) sleep(2) print('Checking if either the custom directory or a custom.css file already exists.') sleep(2) custom_dir = os.path.join(jupyter_path,'custom') custom_file = os.path.join(custom_dir,'custom.css') if os.path.isdir(custom_dir) and os.path.exists(custom_file): print('''The custom.css file already exists. How do you want to proceed?''') sleep(2) proceed = input('''Would you either like to delete the already existing custom.css file (d), or stop the custom.css set up? (s)''') if proceed == 's': print('The installation will be stopped.') elif proceed == 'd': os.remove(custom_file) else: print('Wrong keyboard input the installation will be stopped.') elif os.path.isdir(custom_dir): print('''The custom directory exists, but no custom.css file was found. Copying data now.''') shutil.copy(custiom_source_file, custom_dir) sleep(1) print(r'Done! Your custom.css file is now allocated at %s'% custom_file) else: print('The custom directory does not exists creating a new one.') os.makedirs(custom_dir, exist_ok = True) sleep(2) print('Directory has been created, copying data now.') shutil.copy(custiom_source_file, custom_dir) sleep(1) print(r'Done! Your custom.css file is now allocated at %s'% custom_file)