Create a Kaggle notebook and copy the codes from below to run a Jupyter notebook using Kaggle memory and GPUs on ngrok server.
Clone from Github Repository
!pip install -q seedir
!sudo apt-get -qq install git-lfs
!pip install -q colabcode
import os
import seedir as sd
from datetime import date
%cd /kaggle/working
repository = 'Colab_Notebooks'
branch = 'main'
!git config --global user.email "mebharat123@gmail.com"
!git config --global user.name "Bharat"
username='bharatb964'
git_token='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' # make sure Github.ipynb is in .gitignore
github = 'github.com'
import shutil
if repository in os.listdir('..'):
os.chdir('..')
shutil.rmtree(repository)
!git clone https://{git_token}@{github}/{username}/{repository}
%cd {repository}
!git checkout $branch
#!git checkout -b $branch
sd.seedir('.',style='emoji',exclude_folders=[f for f in os.listdir() if f[0] in ['.','_','~']],depthlimit=3)
Run Jupyter Notebook
!pip install -q pyngrok
import os
import subprocess
import uuid
from pyngrok import ngrok
import re
ngrok.set_auth_token("get_token_from_website")
token = str(uuid.uuid1())
active_tunnels = ngrok.get_tunnels()
for tunnel in active_tunnels:
public_url = tunnel.public_url
ngrok.disconnect(public_url)
url = ngrok.connect(addr=10001, bind_tls=True)
print("Click on the link: "+re.findall("https://.*io",str(url))[0]+"/tree?token="+token)
lab_cmd=f"jupyter-lab --ip='localhost' --allow-root --ServerApp.allow_remote_access=True --no-browser --ServerApp.token='{token}' --port 10001"
os.system(f"fuser -n tcp -k 10001")
with subprocess.Popen([lab_cmd],shell=True,stdout=subprocess.PIPE,bufsize=1,universal_newlines=True,) as proc:
for line in proc.stdout:
print(line, end="")
Pring the logs
print('\033[1m' +"Git Remote Location --->" +'\033[0m')
!git remote -v
print('\033[1m' +"Status --->" +'\033[0m')
!git status
print('\033[1m' +"Branches --->" +'\033[0m')
!git branch -a
print('\033[1m' +"Git Log --->" +'\033[0m')
!git log -n 5 --oneline
print('\033[1m' +"Gitignore file --->" +'\033[0m')
!cat .gitignore
print('\033[1m' +"Git lfs tracked files --->" +'\033[0m')
!cat .gitattributes
Write gitignore and git lfs
%%writefile .gitignore
.*
~*
*.log
.ipynb*
output/aclImdb/*
!git rm -r --cached .
!git lfs track input/*
!git lfs track output/*
!git add -f .gitattributes
Push the changes made
import subprocess
lines = subprocess.check_output(
['git', 'log'], stderr=subprocess.STDOUT)
for i in str(lines).split('\\n'):
if i.startswith(' '):
d=i.split(' ')[-1]
break
k=list(map(int,d.split('-')))
if date.today()==date(k[0],k[1],k[2]):
message = "\""+"Made changes on branch \"{}\" on date {}".format(branch, str(date.today()))+"\""
!git add .
!git commit --amend -m $message
!git push -f origin $branch
else:
message = "\""+"Made changes on branch \"{}\" on date {}".format(branch, str(date.today()))+"\""
!git add .
!git commit -m $message
!git push origin $branch