From 6635ef4025a9d71bc6aaec39157f91a840407df9 Mon Sep 17 00:00:00 2001 From: BartN Date: Wed, 22 Sep 2021 23:35:44 +0200 Subject: [PATCH] Dodano skrypt. --- README.md | 4 ++ json_script.ipynb | 110 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 114 insertions(+) create mode 100644 json_script.ipynb diff --git a/README.md b/README.md index 7ec2a46..cb6b395 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,10 @@ Plik szablon.ipynb zawiera nagłówek plików zajęć obowiązujący w projekcie 2. Uzupełnij brakujące informacje o zajęciach w pierwszej komórce markdown w pliku. 3. Z poziomu edytora tekstu lub w "Property Inspector -> Advanced Tools" w JupyterLab uzupełnij niezbędne pola metadanych pliku, tj. pola "author","email","lang": "pl","subtitle", "title","year". Jeśli pola te nie występują w "Notebook metadata" skopiuj ich strukturę do tej sekcji. + +## Skrypt do modyfikacji plików +W pliku "json_script.ipynb" znajduje się skrypt napisany w języku Python do automatycznego dodawania sformatowanego nagłówka oraz metadanych. + W razie pytań lub wątpliwości proszę pisać na adres bartnas@amu.edu.pl diff --git a/json_script.ipynb b/json_script.ipynb new file mode 100644 index 0000000..19499fc --- /dev/null +++ b/json_script.ipynb @@ -0,0 +1,110 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 92, + "metadata": { + "collapsed": false + }, + "outputs": [ + ], + "source": [ + "#procedura napisywania plików ipynb (generowanie nagłówka i metadanych)\n", + "import json\n", + "\n", + "def modjup(filen,numer,tytul,typ,author,email,lang,title,year):\n", + " zerocell=['![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\\n',\n", + " '
\\n', \n", + " '

%s

\\n'%(title),\n", + " '

%s. %s [%s]

\\n'%(numer,tytul,typ),\n", + " '

%s (%s)

\\n'%(author,year),\n", + " '
\\n',\n", + " '\\n',\n", + " '![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)']\n", + " zerodict={'cell_type': 'markdown','metadata': {'collapsed': False},'source': zerocell}\n", + " with open(filen, 'r+') as f:\n", + " ll=json.load(f)\n", + " ll[\"metadata\"][\"author\"]=author\n", + " ll[\"metadata\"][\"email\"]=email\n", + " ll[\"metadata\"][\"lang\"]=lang\n", + " subtitle=\"%s.%s[%s]\"%(numer,tytul,typ)\n", + " ll[\"metadata\"][\"subtitle\"]=subtitle\n", + " ll[\"metadata\"][\"title\"]=title\n", + " ll[\"metadata\"][\"year\"]=year\n", + " \n", + " if not(ll['cells'][0]['source'][0]==zerocell[0]):\n", + " ll['cells'].insert(0,zerodict)\n", + " else:\n", + " ll['cells'][0]=zerodict\n", + " f.seek(0)\n", + " json.dump(ll,f,indent=4)" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": { + "collapsed": false + }, + "outputs": [ + ], + "source": [ + "#zmodyfikuj te dane\n", + "filen=\"szablon-1.ipynb\"\n", + "\n", + "numer=\"Numer\"\n", + "tytul=\"Tytul materiału\"\n", + "typ=\"laboratoria/wykład\"\n", + "\n", + "author=\"Imię Nazwisko\"\n", + "email=\"adres@email.com\"\n", + "lang= \"pl\"\n", + "title=\"Nazwa przedmiotu\"\n", + "year=\"Rok\"\n", + "\n", + "#uruchom procedurę\n", + "modjup(filen,numer,tytul,typ,author,email,lang,title,year)" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "collapsed": false + }, + "outputs": [ + ], + "source": [ + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (system-wide)", + "language": "python", + "metadata": { + "cocalc": { + "description": "Python 3 programming language", + "priority": 100, + "url": "https://www.python.org/" + } + }, + "name": "python3", + "resource_dir": "/ext/jupyter/kernels/python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file