Compare commits
18 Commits
c2ac8e4c13
..
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 955a442c60 | |||
| 995f86831f | |||
| f742235573 | |||
| 050dde99f6 | |||
| b94b763cf1 | |||
| 672968bdfb | |||
| 7115e3ce7a | |||
| 76a6564a3e | |||
| 847e7744ff | |||
| 0384334ce0 | |||
| 1830ccb5c7 | |||
| 452d363235 | |||
| c0cfd59beb | |||
| 60f8f11c83 | |||
| cf5c8b213e | |||
| 04fe01eb35 | |||
| 078e28903c | |||
| 32663124a5 |
@@ -28,6 +28,10 @@
|
||||
!/templates
|
||||
!/templates/template*
|
||||
|
||||
!/notes/
|
||||
!/notes/week*.pdf
|
||||
!/notes/README.md
|
||||
|
||||
!/src
|
||||
!/src/**/
|
||||
!/src/**/*.py
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Mathematik für Physiker I, WiSe 2022-23 #
|
||||
|
||||
Der Inhalt dieses Repository ist keineswegs verpflichtend, sondern dient dem Zweck, „Handnotizen“ anzubieten.
|
||||
Der Inhalt dieses Repository ist keineswegs verpflichtend,
|
||||
sondern dient dem Zweck, „Handnotizen“ anzubieten (siehe insbesondere den [./notes/](notes/) Ordner).
|
||||
Es besteht hier kein Anspruch auf Vollständigkeit.
|
||||
Es werden hier keine offiziellen Lösungen für die Übungsblätter gespeichert.
|
||||
|
||||
@@ -11,6 +12,7 @@ findet man ausschließlich auf der **Moodle**-Seite.
|
||||
|
||||
```text
|
||||
.
|
||||
├── ./notes # Handschrift aus ÜG
|
||||
├── ./notebooks # Python/Jupyter Notebooks
|
||||
│ ├── ...
|
||||
│ └── ... *.ipynb Dateien
|
||||
|
||||
@@ -121,6 +121,17 @@ dist:
|
||||
@just build
|
||||
@just build-documentation
|
||||
|
||||
# exports notebook to format: html, markdown, pdf, latex.
|
||||
export name format="pdf" theme="light":
|
||||
@{{PYTHON}} -m jupyter nbconvert \
|
||||
--allow-chromium-download \
|
||||
--HTMLExporter.theme={{theme}} \
|
||||
--TemplateExporter.exclude_input=false \
|
||||
--to {{format}} \
|
||||
--output-dir notes \
|
||||
--ouput "notebook-{{name}}.{{format}}" \
|
||||
notebooks/{{name}}.ipynb
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# TARGETS: run
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# IMPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
import os;
|
||||
import sys;
|
||||
@@ -11,17 +11,17 @@ import sys;
|
||||
os.chdir(os.path.dirname(__file__));
|
||||
sys.path.insert(0, os.getcwd());
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# MAIN
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
def enter():
|
||||
print('Not yet implemented.');
|
||||
return;
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# EXECUTION
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
if __name__ == '__main__':
|
||||
# sys.tracebacklimit = 0;
|
||||
|
||||
@@ -0,0 +1,265 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Woche 10 #\n",
|
||||
"\n",
|
||||
"Diese Wochen beschäftigen wir uns mit Matrizen und Vektoren.\n",
|
||||
"In diesem Notebook rechnen wir ein paar (Teil)aufgaben aus dem ÜB."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"'''IMPORTS'''\n",
|
||||
"import os;\n",
|
||||
"import sys; \n",
|
||||
"\n",
|
||||
"# NOTE: need this to force jupyter to reload imports:\n",
|
||||
"for key in list(sys.modules.keys()):\n",
|
||||
" if key.startswith('src.'):\n",
|
||||
" del sys.modules[key];\n",
|
||||
"\n",
|
||||
"os.chdir(os.path.dirname(_dh[0]));\n",
|
||||
"sys.path.insert(0, os.getcwd());\n",
|
||||
"\n",
|
||||
"from src.thirdparty.maths import *;\n",
|
||||
"from src.thirdparty.misc import *;\n",
|
||||
"from src.thirdparty.render import *;\n",
|
||||
"from src.maths.diagrams import *;\n",
|
||||
"\n",
|
||||
"np.random.seed(8007253); # zur Wiederholbarkeit"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"'''BEISPIEL-SIGNAL'''\n",
|
||||
"n = 100;\n",
|
||||
"u = np.zeros((n,), dtype=complex);\n",
|
||||
"u[8] = -0.7\n",
|
||||
"u[58] = 1j * sqrt(2);\n",
|
||||
"\n",
|
||||
"display_signal(u, 'Beispiel eines Vektors in $\\mathbb{C}^{100}$ als Signal über $\\{0,1,2,\\ldots,99\\}$ dargestellt');"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"'''SEMINARAUFGABE 10.4 a)'''\n",
|
||||
"n = 3;\n",
|
||||
"t = linspace(0, n-1, n);\n",
|
||||
"i, j = np.meshgrid(t, t);\n",
|
||||
"theta = 2*pi * i * j / n;\n",
|
||||
"\n",
|
||||
"# definiere die Matrix F_n + die Vektoren u_nk\n",
|
||||
"F_n = (1/sqrt(n)) * exp(-1j * theta);\n",
|
||||
"u_n = [ (1/sqrt(n)) * exp(1j * theta[:, k]) for k in range(n) ];\n",
|
||||
"\n",
|
||||
"print(dedent(\n",
|
||||
" f'''\n",
|
||||
" Matrix:\n",
|
||||
"\n",
|
||||
" F_{n} = \\n{np.round(F_n, 3)}\n",
|
||||
" '''\n",
|
||||
"));\n",
|
||||
"print('');\n",
|
||||
"\n",
|
||||
"# NOTE: Programmiersprachen können nicht exakt berechnen.\n",
|
||||
"# Darum entstehen winzige Fehler, die sich durch Runden entfernen lassen.\n",
|
||||
"print('Matrix-Vektor-Produkte:');\n",
|
||||
"for k in range(n):\n",
|
||||
" result = F_n @ u_n[k];\n",
|
||||
" print(dedent(\n",
|
||||
" f'''\n",
|
||||
"\n",
|
||||
" u_{{n {k}}} = {np.round(u_n[k], 3)}\n",
|
||||
" F_n · u_{{n {k}}} = {np.round(result, 3)}\n",
|
||||
" '''\n",
|
||||
" ));"
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Seminaraufgabe 10.4 b) ##\n",
|
||||
"\n",
|
||||
"Für $i\\in\\{0,1,\\ldots,n-1\\}$ ist die $i$-te von $\\mathcal{F}_{n}\\,u_{n,k}$\n",
|
||||
"\n",
|
||||
"$$\n",
|
||||
" \\begin{array}{rcl}\n",
|
||||
" (\\mathcal{F}_{n}\\,u_{n,k})_{i}\n",
|
||||
" &= &\\displaystyle\\sum_{j=0}^{n-1}\n",
|
||||
" (\\mathcal{F}_{n})_{ij}\\,(u_{n,k})_{j}\\\\\n",
|
||||
" &= &\\displaystyle\\sum_{j=0}^{n-1}\n",
|
||||
" \\tfrac{1}{\\sqrt{n}}\n",
|
||||
" \\exp(-\\imath\\tfrac{2\\pi\\,ij}{n})\n",
|
||||
" \\cdot\n",
|
||||
" \\tfrac{1}{\\sqrt{n}}\n",
|
||||
" \\exp(\\imath\\tfrac{2\\pi\\,kj}{n})\\\\\n",
|
||||
" &= &\\frac{1}{n}\\displaystyle\\sum_{j=0}^{n-1}\n",
|
||||
" \\underbrace{\n",
|
||||
" \\exp(\\imath\\tfrac{2\\pi\\,(k-i)j}{n})\n",
|
||||
" }_{= r^{j}}\\\\\n",
|
||||
" \\end{array}\n",
|
||||
"$$\n",
|
||||
"\n",
|
||||
"wobei $r := \\exp(\\imath\\tfrac{2\\pi\\,(k-i)}{n})$.\n",
|
||||
"Wir haben, dass\n",
|
||||
" $r = 1$\n",
|
||||
" $\\Leftrightarrow$\n",
|
||||
" $\\tfrac{k-i}{n} \\in \\mathbb{Z}$\n",
|
||||
" $\\Leftrightarrow$\n",
|
||||
" $i = k$,\n",
|
||||
"da $0\\leq i,k \\leq n-1$.\n",
|
||||
"<br>\n",
|
||||
"Es gilt außerdem $r^{n} = \\exp(\\imath 2\\pi\\,(k-i)) = 1$.\n",
|
||||
"<br>\n",
|
||||
"Aus der o.s. Berechnung erhält man also\n",
|
||||
"\n",
|
||||
"$$\n",
|
||||
" \\begin{array}{rcl}\n",
|
||||
" (\\mathcal{F}_{n}\\,u_{n,k})_{i}\n",
|
||||
" &= &\\tfrac{1}{n}\\displaystyle\\sum_{j=0}^{n-1}r^{j}\\\\\n",
|
||||
" &= &\\tfrac{1}{n}\n",
|
||||
" \\left\\{\n",
|
||||
" \\begin{array}{lcl}\n",
|
||||
" \\displaystyle\\sum_{j=0}^{n-1}1 &: &i = k\\\\\n",
|
||||
" \\dfrac{1 - r^{n}}{1 - r} &: &\\text{sonst}\\\\\n",
|
||||
" \\end{array}\n",
|
||||
" \\right.\\\\\n",
|
||||
" &= &\\tfrac{1}{n}\n",
|
||||
" \\left\\{\n",
|
||||
" \\begin{array}{lcl}\n",
|
||||
" n &: &i = k\\\\\n",
|
||||
" \\dfrac{1 - 1}{1 - r} &: &\\text{sonst}\\\\\n",
|
||||
" \\end{array}\n",
|
||||
" \\right.\\\\\n",
|
||||
" &= &\\left\\{\n",
|
||||
" \\begin{array}{lcl}\n",
|
||||
" 1 &: &i = k\\\\\n",
|
||||
" 0 &: &\\text{sonst}\\\\\n",
|
||||
" \\end{array}\n",
|
||||
" \\right.\\\\\n",
|
||||
" &= &\\delta_{ik}.\\\\\n",
|
||||
" \\end{array}\n",
|
||||
"$$\n",
|
||||
"\n",
|
||||
"Darum $\\mathcal{F}_{n}\\,u_{n,k}\n",
|
||||
" = \\left(\\begin{matrix}\n",
|
||||
" 0\\\\\n",
|
||||
" 0\\\\\n",
|
||||
" \\vdots\\\\\n",
|
||||
" 1\\\\\n",
|
||||
" \\vdots\\\\\n",
|
||||
" 0\\\\\n",
|
||||
" \\end{matrix}\\right)\n",
|
||||
" \\begin{matrix}\n",
|
||||
" \\\\\n",
|
||||
" \\\\\n",
|
||||
" \\\\\n",
|
||||
" \\leftarrow k\\\\\n",
|
||||
" \\\\\n",
|
||||
" \\\\\n",
|
||||
" \\end{matrix}\n",
|
||||
" = \\mathbf{e}_{k}$.\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"'''SEMINARAUFGABE 10.4 d)'''\n",
|
||||
"n = 4;\n",
|
||||
"t = linspace(0, n-1, n);\n",
|
||||
"i, j = np.meshgrid(t, t);\n",
|
||||
"theta = 2*pi * i * j / n;\n",
|
||||
"\n",
|
||||
"# definiere die Matrix F_n + die Vektoren u_nk\n",
|
||||
"F_n = (1/sqrt(n)) * exp(-1j * theta);\n",
|
||||
"u_n = [ (1/sqrt(n)) * exp(1j * theta[:, k]) for k in range(n) ];\n",
|
||||
"\n",
|
||||
"# Eingabe des Vektors:\n",
|
||||
"F_mal_u = np.asarray([100, -3, 0, -3]); # = F_n @ u\n",
|
||||
"\n",
|
||||
"'''\n",
|
||||
"NOTE: Folgende Koeffizienten wurden falsch erraten.\n",
|
||||
"TODO: Wie lauten die richtigen Werte? -> Aufgabe!\n",
|
||||
"'''\n",
|
||||
"c = [10,10,40,50];\n",
|
||||
"\n",
|
||||
"# Aufschreibung des Signals »bzgl. der harmonischen Basis«:\n",
|
||||
"# u = c[0]u_n[0] + c[1]u_n[1] + c[2]u_n[2] + c[3]u_n[3]\n",
|
||||
"u_guess = sum([ c[k] * u_n[k] for k in range(n) ]);\n",
|
||||
"\n",
|
||||
"# Anzeige der Lösung:\n",
|
||||
"display_signal(u_guess, 'Geschätztes Signal');\n",
|
||||
"\n",
|
||||
"# Verifizierung der Lösung:\n",
|
||||
"display_latex(\n",
|
||||
" f'''\n",
|
||||
" $$\n",
|
||||
" \\\\begin{{array}}{{rcl}}\n",
|
||||
" \\\\%\\\\text{{error}}\n",
|
||||
" &\\colonequals\n",
|
||||
" &\\\\dfrac{{\\\\|u_{{\\\\text{{guess}}}} - u\\\\|}}{{\\\\|u\\\\|}}\\\\\\\\\n",
|
||||
" &=\n",
|
||||
" &\\\\dfrac{{\n",
|
||||
" \\\\|\\\\mathcal{{F}}_{{n}}\\\\,(u_{{\\\\text{{guess}}}} - u)\\\\|\n",
|
||||
" }}{{\n",
|
||||
" \\\\|\\\\mathcal{{F}}_{{n}}\\\\,u\\\\|\n",
|
||||
" }}\n",
|
||||
" \\\\quad\\\\text{{\\\\ldots wieso?? [Stichwort: unitär!]}}\\\\\\\\\n",
|
||||
" &= &\\\\dfrac{{\n",
|
||||
" \\\\|\\\\mathcal{{F}}_{{n}}\\\\,u_{{\\\\text{{guess}}}} - \\\\mathcal{{F}}_{{n}}\\\\,u\\\\|\n",
|
||||
" }}{{\n",
|
||||
" \\\\|\\\\mathcal{{F}}_{{n}}\\\\,u\\\\|\n",
|
||||
" }}\\\\\\\\\n",
|
||||
" &= &{linalg.norm(F_n @ u_guess - F_mal_u)/linalg.norm(F_mal_u):.2%}\n",
|
||||
" \\\\%\n",
|
||||
" \\\\\\\\\n",
|
||||
" \\\\end{{array}}\n",
|
||||
" $$\n",
|
||||
" '''\n",
|
||||
");\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"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.10.8"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
||||
@@ -13,7 +13,7 @@
|
||||
"- [x] Struktur\n",
|
||||
"- [x] Aufwärme\n",
|
||||
"- [x] Seminaraufgaben 2.x\n",
|
||||
"- [ ] Besprechung von HA 1.x\n"
|
||||
"- ~~[ ] Besprechung von HA 1.x~~\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -104,6 +104,11 @@
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.10.8"
|
||||
},
|
||||
"vscode": {
|
||||
"interpreter": {
|
||||
"hash": "98590ff4fe04c8543246b2a01debd3de3c5ca9b666f43f1fa87d5110c692004c"
|
||||
}
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Woche 3 - 24.-30. Oktober 2022 #\n",
|
||||
"\n",
|
||||
"Herzlich willkommen zur 3. Woche!\n",
|
||||
"\n",
|
||||
"## Agenda ##\n",
|
||||
"\n",
|
||||
"- [x] Besprechung von HA 2.x\n",
|
||||
"- [x] Seminaraufgaben 3.x"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3.10.8 64-bit",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"name": "python",
|
||||
"version": "3.10.8"
|
||||
},
|
||||
"vscode": {
|
||||
"interpreter": {
|
||||
"hash": "98590ff4fe04c8543246b2a01debd3de3c5ca9b666f43f1fa87d5110c692004c"
|
||||
}
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
# Handnotizen #
|
||||
|
||||
Diese Notizen sollen _nicht_ als Musterlösungen verstanden werden.
|
||||
|
||||
Während der ÜG interagieren wir mit dem Stoff + den Aufgaben.
|
||||
Wir besprechen **Konzepte** und **Ansätze**.
|
||||
Diese Schrift ist also eine Abbildung dieser Diskussionen und Präsentationen.
|
||||
Teilweise werden sie nur für die Leute Sinn ergeben, die daran teilgenommen haben und eigene Notizen machen.
|
||||
Die Dokumente sind nicht vollständig, da einiges während der Stunden im Raum und an der Tafel erörtert wird.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+3
-4
@@ -1,4 +1,4 @@
|
||||
pip>=22.2.2
|
||||
pip>=22.3.1
|
||||
wheel>=0.37.1
|
||||
|
||||
# jupyter
|
||||
@@ -16,7 +16,7 @@ codetiming>=1.3.0
|
||||
|
||||
# testing + dev
|
||||
coverage[toml]>=6.4
|
||||
pytest>=7.1.1
|
||||
pytest>=7.2.0
|
||||
pytest-asyncio>=0.18.3
|
||||
pytest-cov>=3.0.0
|
||||
pytest-lazy-fixture>=0.6.3
|
||||
@@ -33,13 +33,12 @@ lorem>=0.1.1
|
||||
safetywrap>=1.5.0
|
||||
typing>=3.7.4.3
|
||||
nptyping>=2.1.1
|
||||
typing-extensions>=3.10.0.2
|
||||
|
||||
# config
|
||||
python-dotenv>=0.20.0
|
||||
jsonschema>=4.4.0
|
||||
lazy-load>=0.8.2
|
||||
pyyaml>=5.4.1
|
||||
pyyaml>=6.0
|
||||
pydantic>=1.9.1
|
||||
datamodel-code-generator>=0.12.0
|
||||
|
||||
|
||||
+10
-10
@@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# IMPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
from __future__ import annotations;
|
||||
|
||||
@@ -13,9 +13,9 @@ from src.thirdparty.types import *;
|
||||
|
||||
from src.core.utils import *;
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# EXPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
__all__ = [
|
||||
'CallState',
|
||||
@@ -25,18 +25,18 @@ __all__ = [
|
||||
'run_safely',
|
||||
];
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# CONSTANTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
# local usage only
|
||||
T = TypeVar('T');
|
||||
V = TypeVar('V');
|
||||
ARGS = ParamSpec('ARGS');
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# Class State for keeping track of results in the course of a computation
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@dataclass
|
||||
class CallState(Generic[V]):
|
||||
@@ -151,9 +151,9 @@ def CallError(
|
||||
x = list(map(str, x));
|
||||
return CallState(tag=tag, errors=x, has_action=has_action, has_error=True);
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# DECORATOR - forces methods to run safely
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
def run_safely(tag: str | None = None, error_message: str | None = None):
|
||||
'''
|
||||
|
||||
+6
-6
@@ -1,18 +1,18 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# IMPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
from src.thirdparty.code import *;
|
||||
from src.thirdparty.config import *;
|
||||
from src.thirdparty.system import *;
|
||||
from src.thirdparty.types import *;
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# EXPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
__all__ = [
|
||||
'get_env_string',
|
||||
@@ -23,9 +23,9 @@ __all__ = [
|
||||
'get_env_optional_float',
|
||||
];
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# AUXILIARY METHODS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
def get_env_value(env: dict, key: str, default: Any = None) -> Any: # pragma: no cover
|
||||
return env[key] if key in env else default;
|
||||
|
||||
+12
-12
@@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# IMPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
from src.thirdparty.code import *;
|
||||
from src.thirdparty.io import *;
|
||||
@@ -13,9 +13,9 @@ from src.thirdparty.types import *;
|
||||
|
||||
from src.core.calls import *;
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# EXPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
__all__ = [
|
||||
'LOG_LEVELS',
|
||||
@@ -33,9 +33,9 @@ __all__ = [
|
||||
'prompt_confirmation',
|
||||
];
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# CONSTANTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
class LOG_LEVELS(Enum): # pragma: no cover
|
||||
INFO = logging.INFO;
|
||||
@@ -45,9 +45,9 @@ class LOG_LEVELS(Enum): # pragma: no cover
|
||||
_LOGGING_DEBUG_FILE: str = 'logs/debug.log';
|
||||
T = TypeVar('T');
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# METHODS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
def configure_logging(level: LOG_LEVELS): # pragma: no cover
|
||||
logging.basicConfig(
|
||||
@@ -73,9 +73,9 @@ def log_fatal(*messages: Any):
|
||||
logging.fatal(*messages);
|
||||
exit(1);
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# Special Methods
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
# Intercept fatal errors
|
||||
def catch_fatal(method: Callable[[], T]) -> T:
|
||||
@@ -105,9 +105,9 @@ def log_result(result: Result[CallState, CallState], debug: bool = False):
|
||||
log_error(e);
|
||||
return;
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# DEBUG LOGGING FOR DEVELOPMENT
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
def log_dev(*messages: Any): # pragma: no cover
|
||||
with open(_LOGGING_DEBUG_FILE, 'a') as fp:
|
||||
|
||||
+8
-8
@@ -1,26 +1,26 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# IMPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
from src.thirdparty.code import *;
|
||||
from src.thirdparty.misc import *;
|
||||
from src.thirdparty.types import *;
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# EXPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
__all__ = [
|
||||
'flatten',
|
||||
'get_timestamp_string',
|
||||
];
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# METHODS - date, time
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
def get_timestamp() -> datetime: # pragma: no cover
|
||||
return datetime.now();
|
||||
@@ -28,9 +28,9 @@ def get_timestamp() -> datetime: # pragma: no cover
|
||||
def get_timestamp_string() -> str: # pragma: no cover
|
||||
return str(get_timestamp());
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# METHODS arrays
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
def flatten(X: list[list[Any]]) -> list[Any]:
|
||||
return list(itertools_chain.from_iterable(X));
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
from src.maths.diagrams.sets import *;
|
||||
from src.maths.diagrams.signal import *;
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# EXPORTS
|
||||
@@ -14,4 +15,5 @@ from src.maths.diagrams.sets import *;
|
||||
__all__ = [
|
||||
'Function',
|
||||
'Functions',
|
||||
'display_signal',
|
||||
];
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# IMPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
from __future__ import annotations;
|
||||
|
||||
from src.thirdparty.code import *;
|
||||
from src.thirdparty.types import *;
|
||||
from src.thirdparty.maths import *;
|
||||
from src.thirdparty.plots import *;
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# EXPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
__all__ = [
|
||||
'display_signal',
|
||||
];
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# CONSTANTS / VARIABLES
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
def display_signal(
|
||||
u: np.ndarray,
|
||||
title: str,
|
||||
max_labels = 10,
|
||||
):
|
||||
n = len(u);
|
||||
if n <= max_labels:
|
||||
x_axis = list(range(n));
|
||||
else:
|
||||
skip = int(n/max_labels);
|
||||
x_axis = [ k*skip for k in range(max_labels) ];
|
||||
|
||||
fig, axs = mplot.subplots(1, 1, constrained_layout=True);
|
||||
mplot.title(title);
|
||||
mplot.xlabel('»Zeit« [=Indizes]');
|
||||
mplot.ylabel('Werte [=Einträge]');
|
||||
axs.stem(linspace(0,n-1,n), np.real(u), label='reeller Teil', linefmt='red');
|
||||
axs.stem(linspace(0,n-1,n) + 0.05, np.imag(u), label='imaginärer Teil', linefmt='lime');
|
||||
mplot.legend();
|
||||
axs.set_xticks(x_axis, labels=[ str(index) for index in x_axis]);
|
||||
mplot.show();
|
||||
return;
|
||||
Vendored
+2
-2
@@ -25,9 +25,9 @@ from safetywrap import Result;
|
||||
from safetywrap import Option;
|
||||
from safetywrap import Some;
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# EXPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
__all__ = [
|
||||
'partial',
|
||||
|
||||
Vendored
+2
-2
@@ -15,9 +15,9 @@ from yaml import load as yaml_load;
|
||||
from yaml import FullLoader as yaml_FullLoader;
|
||||
from yaml import add_path_resolver as yaml_add_path_resolver;
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# EXPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
__all__ = [
|
||||
'load_dotenv',
|
||||
|
||||
Vendored
+2
-2
@@ -7,9 +7,9 @@
|
||||
|
||||
from getpass import getpass;
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# EXPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
__all__ = [
|
||||
'getpass',
|
||||
|
||||
Vendored
+2
-2
@@ -8,9 +8,9 @@
|
||||
import logging;
|
||||
from logging import LogRecord;
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# EXPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
__all__ = [
|
||||
'logging',
|
||||
|
||||
Vendored
+17
-3
@@ -6,10 +6,17 @@
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
from fractions import Fraction;
|
||||
from numpy import cos;
|
||||
from numpy import exp;
|
||||
from numpy import linalg;
|
||||
from numpy import linspace;
|
||||
from numpy import pi;
|
||||
from numpy import sin;
|
||||
from numpy import sqrt;
|
||||
from typing import TypeVar;
|
||||
import math;
|
||||
import numpy as np;
|
||||
import random;
|
||||
from typing import TypeVar;
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# MODIFICATIONS
|
||||
@@ -33,14 +40,21 @@ def sample(
|
||||
'''
|
||||
return np.random.choice(X, size=size, replace=replace).tolist();
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# EXPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
__all__ = [
|
||||
'Fraction',
|
||||
'cos',
|
||||
'exp',
|
||||
'linalg',
|
||||
'linspace',
|
||||
'math',
|
||||
'np',
|
||||
'pi',
|
||||
'random',
|
||||
'sample',
|
||||
'sin',
|
||||
'sqrt',
|
||||
];
|
||||
|
||||
Vendored
+2
-2
@@ -64,9 +64,9 @@ def dedent(text: str) -> str:
|
||||
'''
|
||||
return textwrap_dedent(text);
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# EXPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
__all__ = [
|
||||
'lorem',
|
||||
|
||||
Vendored
+2
-2
@@ -11,9 +11,9 @@ from matplotlib.figure import Figure;
|
||||
from matplotlib.axes import Axes;
|
||||
from matplotlib.patches import FancyArrowPatch;
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# EXPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
__all__ = [
|
||||
'mplot',
|
||||
|
||||
Vendored
+40
-7
@@ -6,24 +6,57 @@
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
from IPython.display import Latex;
|
||||
from IPython.display import display_latex;
|
||||
from IPython.display import display_png;
|
||||
from IPython.display import display_markdown;
|
||||
from IPython.display import display;
|
||||
from IPython.display import display_png;
|
||||
from IPython.display import display as display_text_ipython;
|
||||
from IPython.display import display_latex as display_latex_ipython;
|
||||
from IPython.display import display_markdown as display_md_ipython;
|
||||
import ipywidgets as widgets;
|
||||
# from array_to_latex import to_ltx as array_to_latex; # <- has issues
|
||||
from qiskit.visualization import array_to_latex;
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
from functools import wraps;
|
||||
from typing import Callable;
|
||||
from typing import TypeVar;
|
||||
|
||||
from src.thirdparty.misc import dedent;
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# MODIFICATIONS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
T1 = TypeVar('T1');
|
||||
T2 = TypeVar('T2');
|
||||
|
||||
def display_with_dedent(pre_process: Callable[[str], T1] = lambda x: x):
|
||||
'''
|
||||
Returns a decorator that modifies string -> string methods
|
||||
'''
|
||||
def dec(method: Callable[[T1], T2]) -> Callable[[str], T2]:
|
||||
'''
|
||||
Performs method but dedents first.
|
||||
'''
|
||||
@wraps(method)
|
||||
def wrapped_method(text: str) -> T2:
|
||||
return method(pre_process(dedent(text)));
|
||||
return wrapped_method;
|
||||
|
||||
return dec;
|
||||
|
||||
display_latex = display_with_dedent(Latex)(display_latex_ipython);
|
||||
display_text = display_with_dedent()(display_text_ipython);
|
||||
display_markdown = display_with_dedent()(display_md_ipython);
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# EXPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
__all__ = [
|
||||
'Latex',
|
||||
'array_to_latex',
|
||||
'display',
|
||||
'display_latex',
|
||||
'display_markdown',
|
||||
'display_png',
|
||||
'display',
|
||||
'Latex',
|
||||
'widgets',
|
||||
];
|
||||
|
||||
Vendored
+2
-2
@@ -7,9 +7,9 @@
|
||||
|
||||
from codetiming import Timer;
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# EXPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
__all__ = [
|
||||
'Timer',
|
||||
|
||||
Vendored
+2
-2
@@ -9,9 +9,9 @@ import os;
|
||||
from pathlib import Path;
|
||||
import sys;
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# EXPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
__all__ = [
|
||||
'os',
|
||||
|
||||
Vendored
+4
-4
@@ -38,12 +38,12 @@ from typing import Generic;
|
||||
from typing import Optional;
|
||||
from typing import Type;
|
||||
from typing import TypeVar;
|
||||
from typing_extensions import Concatenate;
|
||||
from typing_extensions import ParamSpec;
|
||||
from typing import Concatenate;
|
||||
from typing import ParamSpec;
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# EXPORTS
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
__all__ = [
|
||||
'Enum',
|
||||
|
||||
Reference in New Issue
Block a user