Merge pull request '10. DVC' (#15) from tzietkiewicz/aitech-ium:master into master
Reviewed-on: AITech/aitech-ium#15
This commit is contained in:
commit
16d6be573c
@ -285,7 +285,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"## Zadanie [20 pkt.]\n",
|
"## Zadanie [22 pkt.]\n",
|
||||||
"\n",
|
"\n",
|
||||||
"Termin: 2 tygodnie (25 IV)\n",
|
"Termin: 2 tygodnie (25 IV)\n",
|
||||||
"\n",
|
"\n",
|
||||||
@ -321,7 +321,7 @@
|
|||||||
"name": "python",
|
"name": "python",
|
||||||
"nbconvert_exporter": "python",
|
"nbconvert_exporter": "python",
|
||||||
"pygments_lexer": "ipython3",
|
"pygments_lexer": "ipython3",
|
||||||
"version": "3.8.5"
|
"version": "3.9.1"
|
||||||
},
|
},
|
||||||
"toc": {
|
"toc": {
|
||||||
"base_numbering": 1,
|
"base_numbering": 1,
|
||||||
|
@ -3,7 +3,11 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "be5ab2df",
|
"id": "be5ab2df",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"# Środowiska wirtualne"
|
"# Środowiska wirtualne"
|
||||||
]
|
]
|
||||||
@ -11,7 +15,11 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "cf14c577",
|
"id": "cf14c577",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"## Python Virtual Env\n",
|
"## Python Virtual Env\n",
|
||||||
" - Python posiada wbudowany mechanizm do zarządzania wirtualnymi środowiskami\n",
|
" - Python posiada wbudowany mechanizm do zarządzania wirtualnymi środowiskami\n",
|
||||||
@ -23,16 +31,24 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "182bbf83",
|
"id": "85284459",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"Poniżej stworzymy środowisko w katalogu `./myenv`:"
|
"Poniżej stworzymy środowisko w katalogu `./myenv`:"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "69d39a9e",
|
"id": "9cabe194",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"```\n",
|
"```\n",
|
||||||
"$ python3 -m venv myenv\n",
|
"$ python3 -m venv myenv\n",
|
||||||
@ -41,16 +57,24 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "47a4bf00",
|
"id": "2a8b1048",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"Teraz możemy je aktywować:"
|
"Teraz możemy je aktywować:"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "cf54cb09",
|
"id": "4619a71d",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"```\n",
|
"```\n",
|
||||||
"$ source ./myenv/bin/activate\n",
|
"$ source ./myenv/bin/activate\n",
|
||||||
@ -61,16 +85,24 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "bdafb824",
|
"id": "2e5bf86a",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"I modyfikować instalując zależności:"
|
"I modyfikować instalując zależności:"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "399a8b45",
|
"id": "256149c4",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"```\n",
|
"```\n",
|
||||||
"(myenv) $ python3 -m pip install requests\n",
|
"(myenv) $ python3 -m pip install requests\n",
|
||||||
@ -79,16 +111,24 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "efde93a2",
|
"id": "7fbba7d3",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"Środowisko możemy deaktywować poprzez:"
|
"Środowisko możemy deaktywować poprzez:"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "838c5ebd",
|
"id": "a2d688b7",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"```\n",
|
"```\n",
|
||||||
"deactivate\n",
|
"deactivate\n",
|
||||||
@ -97,16 +137,37 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "0557e0c8",
|
"id": "0d3eb6d4",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"Środowisko można udostępnić kopiując cały katalog ze środowiskiem"
|
"Środowisko można udostępnić kopiując cały katalog ze środowiskiem"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "26f253cb",
|
"id": "90605b49",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"## pipx\n",
|
||||||
|
" - pipx: polecenie, które instaluje moduł Pythonowy w odrębnym środowisku wirtualnym venv\n",
|
||||||
|
" - jednocześnie dodaje powiązane z nim polecenie (\"Command line entry point\") do zmiennej `PATH`\n",
|
||||||
|
" - w ten sposób możemy zainstalować polecenie, które będzie globalnie dostępne a jednocześnie nie będzie \"mieszało\" w zależnościach modułów Pythonowych. Umożliwia to uniknięcie konfliktów między zależnościami i jednocześnie umożliwia dostęp do polecenia oferowanego przez moduł z poziomu systemu (bez ręcznej aktywacji środowiska)\n",
|
||||||
|
" - więcej informacji: https://packaging.python.org/guides/installing-stand-alone-command-line-tools/\n",
|
||||||
|
" - https://github.com/pypa/pipx"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"id": "26f253cb",
|
||||||
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"## Conda\n",
|
"## Conda\n",
|
||||||
"> *Package, dependency and environment management for any language—Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, FORTRAN, and more.*\n",
|
"> *Package, dependency and environment management for any language—Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, FORTRAN, and more.*\n",
|
||||||
@ -122,15 +183,19 @@
|
|||||||
"Różnice między Conda a venv [źródło](https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/environments.html#virtual-environments):\n",
|
"Różnice między Conda a venv [źródło](https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/environments.html#virtual-environments):\n",
|
||||||
" - Dowolna wersja Python w Conda (inna niż systemowa)\n",
|
" - Dowolna wersja Python w Conda (inna niż systemowa)\n",
|
||||||
" - Conda zarządza też zależnościami innymi niż Pythonowe\n",
|
" - Conda zarządza też zależnościami innymi niż Pythonowe\n",
|
||||||
" - Paczki w PyPI (używane przez P"
|
" - Paczki w PyPI (używane przez `pip`) pochodzą od ich autorów. Paczki w conda są budowane przez conda albo społeczność conda-forge"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "57f19a08",
|
"id": "57f19a08",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"## Dystrybucje: Anaconda i Conda\n",
|
"## Dystrybucje: Anaconda i MiniConda\n",
|
||||||
"Conda jest dostępna w dwóch dystrybcjach:\n",
|
"Conda jest dostępna w dwóch dystrybcjach:\n",
|
||||||
" - [Miniconda](https://docs.conda.io/en/latest/miniconda.html):\n",
|
" - [Miniconda](https://docs.conda.io/en/latest/miniconda.html):\n",
|
||||||
" - wymaga 400 MB miejsca na dysku\n",
|
" - wymaga 400 MB miejsca na dysku\n",
|
||||||
@ -149,8 +214,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "b199274c",
|
"id": "d6d5156a",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"## Dystrybucje\n",
|
"## Dystrybucje\n",
|
||||||
" - Wersje paczek/bibliotek zawartych w danej dystrybucji są przetestowane pod względem zgodności ze sobą\n",
|
" - Wersje paczek/bibliotek zawartych w danej dystrybucji są przetestowane pod względem zgodności ze sobą\n",
|
||||||
@ -162,8 +231,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "b1d8c391",
|
"id": "61d89bd2",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"```\n",
|
"```\n",
|
||||||
"$ conda update conda\n",
|
"$ conda update conda\n",
|
||||||
@ -253,7 +326,11 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "1c7b2930",
|
"id": "1c7b2930",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"## Instalacja\n",
|
"## Instalacja\n",
|
||||||
"Instrukcje: \n",
|
"Instrukcje: \n",
|
||||||
@ -264,8 +341,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "3edc108c",
|
"id": "0ceff229",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"## Pakiety Conda\n",
|
"## Pakiety Conda\n",
|
||||||
"Pakiet (Package) conda to archiwum o rozszerzeniu `.tar.bz2` lub `.conda`zawierające:\n",
|
"Pakiet (Package) conda to archiwum o rozszerzeniu `.tar.bz2` lub `.conda`zawierające:\n",
|
||||||
@ -285,8 +366,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "3094ba52",
|
"id": "f54f3bdb",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"### Repozytoria i kanały\n",
|
"### Repozytoria i kanały\n",
|
||||||
"- Pakiety mogą być ściągane z różnych kanałów (\"channels\")\n",
|
"- Pakiety mogą być ściągane z różnych kanałów (\"channels\")\n",
|
||||||
@ -298,8 +383,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "8c045d64",
|
"id": "5ab846d0",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"Na przykład, pakiet `mlflow` nie jest dostępny na oficjalnym kanale:"
|
"Na przykład, pakiet `mlflow` nie jest dostępny na oficjalnym kanale:"
|
||||||
]
|
]
|
||||||
@ -307,8 +396,12 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 6,
|
"execution_count": 6,
|
||||||
"id": "9d72552f",
|
"id": "f301bdf7",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
@ -347,8 +440,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "123b3e4e",
|
"id": "ea36f2cd",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"Do poleceń `search` i `install` możemy dodać flagę `channel` co doda podany kanał do listy przeszukiwanych przez to polecenie kanałów:"
|
"Do poleceń `search` i `install` możemy dodać flagę `channel` co doda podany kanał do listy przeszukiwanych przez to polecenie kanałów:"
|
||||||
]
|
]
|
||||||
@ -356,8 +453,12 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 7,
|
"execution_count": 7,
|
||||||
"id": "d55a2d84",
|
"id": "61911bf5",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
@ -475,8 +576,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "a4994ed6",
|
"id": "c7cea2c5",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"Możemy dodać kanał `conda-forge` tak, żeby był używany automatycznie (bez podawania flagi `channel`):"
|
"Możemy dodać kanał `conda-forge` tak, żeby był używany automatycznie (bez podawania flagi `channel`):"
|
||||||
]
|
]
|
||||||
@ -484,8 +589,12 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 11,
|
"execution_count": 11,
|
||||||
"id": "0f93ee82",
|
"id": "df31755c",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
@ -503,8 +612,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "85d7014f",
|
"id": "33b4d692",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"Polecanie `conda info` pokaże nam m.in. używane domyślnie kanały.\n",
|
"Polecanie `conda info` pokaże nam m.in. używane domyślnie kanały.\n",
|
||||||
"Możem dodawać i usuwać kanały oraz zmieniać ich kolejność (priorytet) edytując plik [`~/.condarc`](https://conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html)"
|
"Możem dodawać i usuwać kanały oraz zmieniać ich kolejność (priorytet) edytując plik [`~/.condarc`](https://conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html)"
|
||||||
@ -513,8 +626,12 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 10,
|
"execution_count": 10,
|
||||||
"id": "e57a28b9",
|
"id": "b5621afa",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
@ -564,8 +681,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "9e67e25c",
|
"id": "cb1df295",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"Jak widać, po dodaniu kanału `conda-forge`, pakiet `mlflow` zostaje znaleziony:"
|
"Jak widać, po dodaniu kanału `conda-forge`, pakiet `mlflow` zostaje znaleziony:"
|
||||||
]
|
]
|
||||||
@ -573,8 +694,12 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 9,
|
"execution_count": 9,
|
||||||
"id": "56e51ade",
|
"id": "92b5da5b",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
@ -692,8 +817,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "327015c2",
|
"id": "7ab96758",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"\n",
|
"\n",
|
||||||
"## Środowiska (Environments)\n",
|
"## Środowiska (Environments)\n",
|
||||||
@ -706,8 +835,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "0ef28a62",
|
"id": "5c57462d",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"Wyświetlanie listy środowisk:"
|
"Wyświetlanie listy środowisk:"
|
||||||
]
|
]
|
||||||
@ -715,8 +848,12 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 12,
|
"execution_count": 12,
|
||||||
"id": "2865a5cf",
|
"id": "638002cd",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
@ -741,8 +878,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "c710e400",
|
"id": "e7e40897",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"### Tworzenie środowiska\n",
|
"### Tworzenie środowiska\n",
|
||||||
"Środowisko można utworzyć i skonfigurować interaktywnie, lub z pliku `*.yml`"
|
"Środowisko można utworzyć i skonfigurować interaktywnie, lub z pliku `*.yml`"
|
||||||
@ -751,8 +892,12 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 14,
|
"execution_count": 14,
|
||||||
"id": "8cd7d3f0",
|
"id": "0373de68",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
@ -790,8 +935,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "843c0104",
|
"id": "c8688ba6",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"### Aktywacja środowiska\n",
|
"### Aktywacja środowiska\n",
|
||||||
" - Żeby zmodyfikować środowisko albo zacząć z niego korzystać, musimy je aktywować.\n",
|
" - Żeby zmodyfikować środowisko albo zacząć z niego korzystać, musimy je aktywować.\n",
|
||||||
@ -801,8 +950,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "a6adf414",
|
"id": "767f03e6",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"```\n",
|
"```\n",
|
||||||
"$ conda activate hello_env\n",
|
"$ conda activate hello_env\n",
|
||||||
@ -813,8 +966,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "8457c95e",
|
"id": "245e64be",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"Domyślnie wersja pythona będzie taka sama jak systemowa.\n",
|
"Domyślnie wersja pythona będzie taka sama jak systemowa.\n",
|
||||||
"Żeby deaktywować środowisko, używamy `conda deactivate`:"
|
"Żeby deaktywować środowisko, używamy `conda deactivate`:"
|
||||||
@ -822,8 +979,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "e3175dc3",
|
"id": "261f9aab",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"```\n",
|
"```\n",
|
||||||
"$ conda deactivate\n",
|
"$ conda deactivate\n",
|
||||||
@ -834,8 +995,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "753ff7e5",
|
"id": "980c295c",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"### Modyfikowanie środowiska\n",
|
"### Modyfikowanie środowiska\n",
|
||||||
"Jeśli chcemy stworzyc środowisko z inną wersją niż systemowa:"
|
"Jeśli chcemy stworzyc środowisko z inną wersją niż systemowa:"
|
||||||
@ -844,8 +1009,12 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 22,
|
"execution_count": 22,
|
||||||
"id": "5b5b0ca0",
|
"id": "ccaadc75",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
@ -956,16 +1125,24 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "a3350d71",
|
"id": "68bcd671",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"Rzeczywiście, stworzone środowisko ma wersję Pythona z linii 3.9:"
|
"Rzeczywiście, stworzone środowisko ma wersję Pythona z linii 3.9:"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "ee072a93",
|
"id": "db3311c4",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"```\n",
|
"```\n",
|
||||||
"$ conda activate myenv\n",
|
"$ conda activate myenv\n",
|
||||||
@ -976,8 +1153,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "89d443aa",
|
"id": "10b5cf2e",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"Tak samo, przy tworzeniu środowiska możemy podać inne zależności wraz z ich wersjami:"
|
"Tak samo, przy tworzeniu środowiska możemy podać inne zależności wraz z ich wersjami:"
|
||||||
]
|
]
|
||||||
@ -985,8 +1166,12 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 25,
|
"execution_count": 25,
|
||||||
"id": "402c122e",
|
"id": "dd2eefc5",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
@ -1246,16 +1431,24 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "4f9b7b29",
|
"id": "d8417e18",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"Możemy podać jakie pakiety i w jakich wersjach mają być domyślnie dodawane do nowo tworzonych środowisk za pomocą sekcji [create_default_package](https://conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html#config-add-default-pkgs) w pliku [`~/.condarc`](https://conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html)"
|
"Możemy podać jakie pakiety i w jakich wersjach mają być domyślnie dodawane do nowo tworzonych środowisk za pomocą sekcji [create_default_package](https://conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html#config-add-default-pkgs) w pliku [`~/.condarc`](https://conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "50346792",
|
"id": "7a2adbfa",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"```\n",
|
"```\n",
|
||||||
"create_default_packages:\n",
|
"create_default_packages:\n",
|
||||||
@ -1267,8 +1460,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "01a9ea21",
|
"id": "68c9045a",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"Doinstalowanie nowych pakietów może odbyć się poprzez:\n",
|
"Doinstalowanie nowych pakietów może odbyć się poprzez:\n",
|
||||||
" - `conda install mlflow` - wywołane w aktywowanym środowisku\n",
|
" - `conda install mlflow` - wywołane w aktywowanym środowisku\n",
|
||||||
@ -1278,8 +1475,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "7ec5430e",
|
"id": "a6c3ee99",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"#### Klonowanie środowiska\n",
|
"#### Klonowanie środowiska\n",
|
||||||
"Istniejące środowisko można skopiować:"
|
"Istniejące środowisko można skopiować:"
|
||||||
@ -1288,8 +1489,12 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": null,
|
||||||
"id": "18f72668",
|
"id": "4363044b",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"conda create --name myclone --clone myenv\n"
|
"conda create --name myclone --clone myenv\n"
|
||||||
@ -1297,8 +1502,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "3bcaf2e6",
|
"id": "856b631d",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"### Eksportowanie środowisk\n",
|
"### Eksportowanie środowisk\n",
|
||||||
"- Definicję środowiska można wyeksportować do pliku `*.yml`, który może potem posłużyć do jego odtworzenia\n",
|
"- Definicję środowiska można wyeksportować do pliku `*.yml`, który może potem posłużyć do jego odtworzenia\n",
|
||||||
@ -1308,8 +1517,12 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 26,
|
"execution_count": 26,
|
||||||
"id": "f901b34b",
|
"id": "3f497efb",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
@ -1354,8 +1567,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "c9fb78ca",
|
"id": "69054adb",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"Normalnie, zapisalibyśmy wyni eksportu do pliku:"
|
"Normalnie, zapisalibyśmy wyni eksportu do pliku:"
|
||||||
]
|
]
|
||||||
@ -1363,8 +1580,12 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 31,
|
"execution_count": 31,
|
||||||
"id": "048760fd",
|
"id": "08bb0906",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
@ -1381,8 +1602,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "7e3c1e11",
|
"id": "8d0fd480",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"#### Eksport między systemami\n",
|
"#### Eksport między systemami\n",
|
||||||
" - Jeśli chcemy zapeniwć, że nasze środowisko będzie można odtworzyć na innym systemie, musimy uyżyć flagi `--from-history`\n",
|
" - Jeśli chcemy zapeniwć, że nasze środowisko będzie można odtworzyć na innym systemie, musimy uyżyć flagi `--from-history`\n",
|
||||||
@ -1392,8 +1617,12 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 29,
|
"execution_count": 29,
|
||||||
"id": "43fcb023",
|
"id": "9bfbf736",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
@ -1421,8 +1650,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "9b67fddd",
|
"id": "52965351",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"### Tworzenie środowiska z pliku `*.yml`\n",
|
"### Tworzenie środowiska z pliku `*.yml`\n",
|
||||||
"Mając plik `*.yml` wyeksportowany za pomocą `conda env export` albo stworzony/zmodyfikowane [ręcznie](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#create-env-file-manually), możemy utworzyć na jego podstawie środowisko:"
|
"Mając plik `*.yml` wyeksportowany za pomocą `conda env export` albo stworzony/zmodyfikowane [ręcznie](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#create-env-file-manually), możemy utworzyć na jego podstawie środowisko:"
|
||||||
@ -1431,8 +1664,12 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 32,
|
"execution_count": 32,
|
||||||
"id": "4a4ce330",
|
"id": "efe7bcd9",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
@ -1463,10 +1700,14 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "f37e7aa7",
|
"id": "b88eb07c",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
"source": [
|
"source": [
|
||||||
"## Zadania\n",
|
"## Zadania [10pkt]\n",
|
||||||
"1. Zainstaluj Anaconda lub Miniconda na swoim komputerze\n",
|
"1. Zainstaluj Anaconda lub Miniconda na swoim komputerze\n",
|
||||||
"2. Stwórz środowisko zawierające wszystkie zależności wymagane przez stworzone na zajęciach skrypty/programy\n",
|
"2. Stwórz środowisko zawierające wszystkie zależności wymagane przez stworzone na zajęciach skrypty/programy\n",
|
||||||
"3. Wyeksportuj środowisko do pliku `environment.yml` i dodaj ten plik do repozytorium"
|
"3. Wyeksportuj środowisko do pliku `environment.yml` i dodaj ten plik do repozytorium"
|
||||||
@ -1474,6 +1715,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
|
"celltoolbar": "Slideshow",
|
||||||
"kernelspec": {
|
"kernelspec": {
|
||||||
"display_name": "Python 3",
|
"display_name": "Python 3",
|
||||||
"language": "python",
|
"language": "python",
|
||||||
|
1387
IUM_10.DVC.ipynb
Normal file
1387
IUM_10.DVC.ipynb
Normal file
File diff suppressed because it is too large
Load Diff
79
IUM_12.Praca.ipynb
Normal file
79
IUM_12.Praca.ipynb
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
{
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"id": "85b20432",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"# Przegląd rynku pracy"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"id": "69587a1e",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"## Zadanie\n",
|
||||||
|
"\n",
|
||||||
|
"1. Znajdź minimum 6, interesujących dla Ciebie, ogłoszeń o pracę\n",
|
||||||
|
" - na razie nie zważaj na wymagania\n",
|
||||||
|
" - szukaj pracy, którą będziesz mógł wykonywać np. po ukończeniu studiów\n",
|
||||||
|
" - do tego czasu możesz jeszcze sporo się nauczyć\n",
|
||||||
|
" - nie przejmuj się lokalizacją geograficzną - żyjemy w czasie pracy zdalnej\n",
|
||||||
|
"\n",
|
||||||
|
"2. Policz wymagania (zarówno te obowiązkowe jak i mile widziane) z tych ogłoszeń, tak, żeby stworzyć ich listę frekwencyjną, np:\n",
|
||||||
|
"|wymaganie |liczba ogłoszeń|\n",
|
||||||
|
"|--------------------|---------------|\n",
|
||||||
|
"|analityczne myślenie| 6 |\n",
|
||||||
|
"|git | 5 |\n",
|
||||||
|
"|Python | 3 |\n",
|
||||||
|
"|Haskell | 1 |\n",
|
||||||
|
"\n",
|
||||||
|
"3. Przygotuj 3-4 slajdy prezentacji, która potrwa około 10 minut. Przedstaw w niej:\n",
|
||||||
|
" - listę ogłoszeń, które znalazłeś (stanowisko, firma)\n",
|
||||||
|
" - statystyki dotyczące wymagań (tabelka + wykres)\n",
|
||||||
|
" - wybierz jedno wymaganie. Najlepiej mniej znane i oczywiste. Jeśli jest to :\n",
|
||||||
|
" - technologia (biblioteka itp) - opowiedz o niej krótko (do czego służy, jakie ma możliwości itp)\n",
|
||||||
|
" - umiejętność, dziedzina wiedzy - opowiedz o niej krótko + przedstaw źródło, z którego można się jej nauczyć (książka, kurs, artykuł)\n",
|
||||||
|
" \n",
|
||||||
|
" Jeśli znasz jakieś ciekawe technologie/umiejętności, które chciałbyś przedstawić grupie, możesz odwrócić kolejność: poszukaj ogłoszeń, które o nich wspominają.\n",
|
||||||
|
" \n",
|
||||||
|
"Jedna osoba z grupy ma zadanie specjalne:\n",
|
||||||
|
" - nie szuka ogłoszeń\n",
|
||||||
|
" - zbiera statystyki od reszty grupy i agreguje je (eliminując duplikaty)\n",
|
||||||
|
" - przygotowuje 2 slajdy przedstawiające statystyki:\n",
|
||||||
|
" - wymagań (tak jak każdy, ale dla całej grupy)\n",
|
||||||
|
" - firm będących aautorami ogłoszeń"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "1fb3795f",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"kernelspec": {
|
||||||
|
"display_name": "Python 3",
|
||||||
|
"language": "python",
|
||||||
|
"name": "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.9.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nbformat": 4,
|
||||||
|
"nbformat_minor": 5
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user