main > main: init
This commit is contained in:
		
						commit
						5f296f8447
					
				
							
								
								
									
										22
									
								
								.coveragerc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								.coveragerc
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,22 @@ | ||||
| [run] | ||||
| source="." | ||||
| 
 | ||||
| [report] | ||||
| show_missing = true | ||||
| omit = | ||||
|     # ignore tests folder | ||||
|     tests/* | ||||
|     # ignore thirdparty imports | ||||
|     src/thirdparty/* | ||||
|     # ignore models folder (auto generated) | ||||
|     models/** | ||||
|     # ignore __init__ files (only used for exports) | ||||
|     **/__init__.py | ||||
|     # ignore main.py, app.py (-> too macroscopic and covered by integration tests) | ||||
|     main.py | ||||
|     src/app.py | ||||
| # TODO: increase code-coverage: | ||||
| fail_under = 100 | ||||
| precision = 1 | ||||
| exclude_lines = | ||||
|     pragma: no cover | ||||
							
								
								
									
										86
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,86 @@ | ||||
| * | ||||
| !/.gitignore | ||||
| 
 | ||||
| ################################################################ | ||||
| # DOCKER | ||||
| ################################################################ | ||||
| 
 | ||||
| !/.dockerignore | ||||
| !/Dockerfile | ||||
| !/docker-compose.yaml | ||||
| 
 | ||||
| ################################################################ | ||||
| # MAIN FOLDER | ||||
| ################################################################ | ||||
| 
 | ||||
| !/justfile | ||||
| !/Makefile | ||||
| !/README.md | ||||
| !/LICENSE | ||||
| !/.coveragerc | ||||
| !/pyproject.toml | ||||
| !/requirements* | ||||
| 
 | ||||
| ################################################################ | ||||
| # PROJECT FILES | ||||
| ################################################################ | ||||
| 
 | ||||
| !/templates | ||||
| !/templates/template* | ||||
| 
 | ||||
| !/src | ||||
| !/src/**/ | ||||
| !/src/**/*.py | ||||
| !/src/**/*.yaml | ||||
| !/main.py | ||||
| 
 | ||||
| !/notebooks | ||||
| !/notebooks/*.ipynb | ||||
| !/notebooks/*.md | ||||
| 
 | ||||
| # NOTE: models are created as part of the build process: | ||||
| !/models | ||||
| !/models/*.yaml | ||||
| !/models/README.md | ||||
| 
 | ||||
| !/docs | ||||
| !/docs/*/ | ||||
| !/docs/*/Models/ | ||||
| !/docs/**/*.md | ||||
| 
 | ||||
| !/tests | ||||
| !/tests/**/ | ||||
| !/tests/**/*.py | ||||
| !/tests/resources/*.yaml | ||||
| !/tests/README.md | ||||
| 
 | ||||
| !/dist | ||||
| !/dist/VERSION | ||||
| 
 | ||||
| ################################################################ | ||||
| # AUXLIARY | ||||
| ################################################################ | ||||
| 
 | ||||
| /logs | ||||
| /**/.env | ||||
| 
 | ||||
| ################################################################ | ||||
| # TEMPLATES | ||||
| ################################################################ | ||||
| 
 | ||||
| !/templates/.env | ||||
| 
 | ||||
| ################################################################ | ||||
| # ARTEFACTS | ||||
| ################################################################ | ||||
| 
 | ||||
| /**/__pycache__ | ||||
| /**/.pytest_cache | ||||
| /**/.DS_Store | ||||
| /**/__archive__* | ||||
| 
 | ||||
| ################################################################ | ||||
| # Git Keep | ||||
| ################################################################ | ||||
| 
 | ||||
| !/**/.gitkeep | ||||
							
								
								
									
										77
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,77 @@ | ||||
| # Mathematik für Physiker I, WiSe 2022-23 # | ||||
| 
 | ||||
| Der Inhalt dieses Repository ist keineswegs verpflichtend, sondern dient dem Zweck, „Handnotizen“ anzubieten. | ||||
| Es besteht hier kein Anspruch auf Vollständigkeit. | ||||
| Es werden hier keine offiziellen Lösungen für die Übungsblätter gespeichert. | ||||
| 
 | ||||
| Die offiziellen Notizen zum Kurs sowie alle Übungsblätter, (Abgabe)termine, _etc._ | ||||
| findet man ausschließlich auf der **Moodle**-Seite. | ||||
| 
 | ||||
| ## (Wesentliche) Struktur des Repositorys ## | ||||
| 
 | ||||
| ```text | ||||
| . | ||||
| ├── ./notebooks # Python/Jupyter Notebooks | ||||
| │   ├── ... | ||||
| │   └── ... *.ipynb Dateien | ||||
| ├── ./src       # Quellcode | ||||
| │   ├── ... | ||||
| │   └── ... *.py Dateien | ||||
| ├── ./templates # Templates für Konfiguration | ||||
| │   ├── ... | ||||
| │   └── ... *.yaml Dateien | ||||
| ├── ./setup     # User Konfiguration | ||||
| │   ├── ... | ||||
| │   └── ... *.yaml Dateien | ||||
| ├── ./tests     # enthält ggf. automatisiertes Testing | ||||
| ├── ./dist      # enthält VERSION infos | ||||
| ├── ./models    # erzeugte Modelle | ||||
| ├── ./docs      # Dokumentation für erzeugte Modelle | ||||
| │ | ||||
| ├── justfile | ||||
| ├── README.md | ||||
| ├── LICENSE | ||||
| ├── requirements.txt | ||||
| └── main.py | ||||
| ``` | ||||
| 
 | ||||
| ## Gebrauchshinweise ## | ||||
| 
 | ||||
| ### Systemvoraussetzungen ### | ||||
| 
 | ||||
| - [**python 3.10.x**](https://www.python.org/downloads) | ||||
| - optional: **bash** (für Windowsuser siehe [git for windows](https://gitforwindows.org), was bash mit installiert) | ||||
| - optional: das [**justfile** Tool](https://github.com/casey/just#installation) (für Windowsuser wird die das [Chocolatey](https://chocolatey.org/install) Tool empfohlen, um dieses Tool installieren zu können) | ||||
| 
 | ||||
| ### Setup ### | ||||
| 
 | ||||
| Für den Gebrauch der Python-Skripte + Notebooks braucht man einige Packages. | ||||
| Um diese zu installiere führe man | ||||
| ```bash | ||||
| just build | ||||
| # oder | ||||
| just build-requirements | ||||
| ``` | ||||
| aus. Alternativ kann man | ||||
| ```bash | ||||
| python3 -m pip install -r --disable-pip-version-check -r requirements.txt | ||||
| # für Windowsuser: | ||||
| py -3 -m pip install -r --disable-pip-version-check -r requirements.txt | ||||
| ``` | ||||
| verwenden. | ||||
| 
 | ||||
| ### Ausführung ### | ||||
| 
 | ||||
| Die Notebooks kann man direkt in dem [**jupyter**](https://jupyter.org) GUI öffnen, | ||||
| oder in einem bash Terminal führe man | ||||
| ```bash | ||||
| just notebook xyz | ||||
| ``` | ||||
| aus, um den Notebook **notebooks/xyz.ipynb** zu starten. | ||||
| Alternativ, kann man | ||||
| ``` bash | ||||
| python3 -m jupyter notebook notebooks/xyz.ipynb | ||||
| # für Windowsuser: | ||||
| py -3 -m jupyter notebook notebooks/xyz.ipynb | ||||
| ``` | ||||
| verwenden. | ||||
							
								
								
									
										259
									
								
								justfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										259
									
								
								justfile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,259 @@ | ||||
| # set shell := [ "bash", "-uc" ]
 | ||||
| _default: | ||||
|     @- just --unsorted --list | ||||
| menu: | ||||
|     @- just --unsorted --choose | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| # Justfile
 | ||||
| # NOTE: Do not change the contents of this file!
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| 
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| # VARIABLES
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| 
 | ||||
| OS := if os_family() == "windows" { "windows" } else { "linux" } | ||||
| PYTHON := if os_family() == "windows" { "py -3" } else { "python3" } | ||||
| GEN_MODELS := "datamodel-codegen" | ||||
| GEN_MODELS_DOCUMENTATION := "openapi-generator" | ||||
| PORT := "8000" | ||||
| URL_API := "http://127.0.0.1:8000/docs" | ||||
| 
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| # Macros
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| 
 | ||||
| _create-file-if-not-exists fname: | ||||
|     @touch "{{fname}}"; | ||||
| 
 | ||||
| _create-folder-if-not-exists path: | ||||
|     @if ! [[ -d "{{path}}" ]]; then mkdir -p "{{path}}"; fi | ||||
| 
 | ||||
| _delete-if-file-exists fname: | ||||
|     @if [[ -f "{{fname}}" ]]; then rm "{{fname}}"; fi | ||||
| 
 | ||||
| _delete-if-folder-exists path: | ||||
|     @if [[ -d "{{path}}" ]]; then rm -rf "{{path}}"; fi | ||||
| 
 | ||||
| _clean-all-files path pattern: | ||||
|     @find {{path}} -type f -name "{{pattern}}" -exec basename {} \; 2> /dev/null | ||||
|     @- find {{path}} -type f -name "{{pattern}}" -exec rm {} \; 2> /dev/null | ||||
| 
 | ||||
| _clean-all-folders path pattern: | ||||
|     @find {{path}} -type d -name "{{pattern}}" -exec basename {} \; 2> /dev/null | ||||
|     @- find {{path}} -type d -name "{{pattern}}" -exec rm -rf {} \; 2> /dev/null | ||||
| 
 | ||||
| _copy-file-if-not-exists path_from path_to: | ||||
|     @- cp -n "{{path_from}}" "{{path_to}}" | ||||
| 
 | ||||
| _check-python-tool tool name: | ||||
|     #!/usr/bin/env bash | ||||
|     success=false | ||||
|     {{tool}} --help >> /dev/null 2> /dev/null && success=true; | ||||
|     # NOTE: if exitcode is 251 (= help or print version), then render success. | ||||
|     [[ "$?" == "251" ]] && success=true; | ||||
|     # FAIL tool not installed | ||||
|     if ( $success ); then | ||||
|         echo -e "Tool \x1b[2;3m{{tool}}\x1b[0m installed correctly."; | ||||
|         exit 0; | ||||
|     else | ||||
|         echo -e "Tool \x1b[2;3m{{tool}}\x1b[0m did not work." >> /dev/stderr; | ||||
|         echo -e "Ensure that \x1b[2;3m{{name}}\x1b[0m (-> \x1b[1mjust build\x1b[0m) installed correctly and system paths are set." >> /dev/stderr; | ||||
|         exit 1; | ||||
|     fi | ||||
| 
 | ||||
| _generate-models path name: | ||||
|     @{{GEN_MODELS}} \
 | ||||
|         --input-file-type openapi \
 | ||||
|         --encoding "UTF-8" \
 | ||||
|         --disable-timestamp \
 | ||||
|         --use-schema-description \
 | ||||
|         --allow-population-by-field-name \
 | ||||
|         --snake-case-field \
 | ||||
|         --strict-nullable \
 | ||||
|         --target-python-version 3.10 \
 | ||||
|         --input {{path}}/{{name}}-schema.yaml \
 | ||||
|         --output {{path}}/generated/{{name}}.py | ||||
| 
 | ||||
| _generate-models-documentation path_schema path_docs name: | ||||
|     @{{GEN_MODELS_DOCUMENTATION}} generate \
 | ||||
|         --input-spec {{path_schema}}/{{name}}-schema.yaml \
 | ||||
|         --generator-name markdown \
 | ||||
|         --output "{{path_docs}}/{{name}}" | ||||
| 
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| # TARGETS
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| 
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| # TARGETS: build
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| 
 | ||||
| build: | ||||
|     @just build-misc | ||||
|     @just build-requirements | ||||
|     @just _check-system-requirements | ||||
|     @just build-models | ||||
| build-misc: | ||||
|     @# create database if not exists: | ||||
|     @just _create-folder-if-not-exists "data" | ||||
|     @# copy template of configs to setup if not exists: | ||||
|     @just _create-folder-if-not-exists "setup" | ||||
|     @just _copy-file-if-not-exists "templates/template-config.yaml" "setup/config.yaml" | ||||
|     @just _copy-file-if-not-exists "templates/template.env" ".env" | ||||
| build-requirements: | ||||
|     @{{PYTHON}} -m pip install --disable-pip-version-check -r requirements.txt | ||||
| build-models: | ||||
|     @echo "Generate data models from schemata." | ||||
|     @just _delete-if-folder-exists "models/generated" | ||||
|     @just _create-folder-if-not-exists "models/generated" | ||||
|     @- #just _generate-models "models" "config" | ||||
| build-documentation: | ||||
|     @echo "Generate documentations data models from schemata." | ||||
|     @just _delete-if-folder-exists "docs" | ||||
|     @just _create-folder-if-not-exists "docs" | ||||
|     @- #just _generate-models-documentation "models" "docs" "config" | ||||
|     @- just _clean-all-files "." .openapi-generator* | ||||
|     @- just _clean-all-folders "." .openapi-generator* | ||||
| dist: | ||||
|     @just build | ||||
|     @just build-documentation | ||||
| 
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| # TARGETS: run
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| 
 | ||||
| # runs using commandline interface
 | ||||
| run: | ||||
|     @# create config/data folders if missing: | ||||
|     @just build-misc | ||||
|     @# run source code als cli | ||||
|     @{{PYTHON}} main.py | ||||
| 
 | ||||
| # runs python notebook (in browser)
 | ||||
| notebook name="main": | ||||
|     @# create config/data folders if missing: | ||||
|     @just build-misc | ||||
|     @# run notebook | ||||
|     @{{PYTHON}} -m jupyter notebook notebooks/{{name}}.ipynb | ||||
| 
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| # TARGETS: tests
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| 
 | ||||
| tests: tests-unit tests-integration | ||||
| tests-logs: | ||||
|     @just _create-logs | ||||
|     @- just tests | ||||
|     @just _display-logs | ||||
| tests-unit-logs: | ||||
|     @just _create-logs | ||||
|     @- just tests-unit | ||||
|     @just _display-logs | ||||
| tests-integration-logs: | ||||
|     @just _create-logs | ||||
|     @- just tests-integration | ||||
|     @just _display-logs | ||||
| tests-unit: | ||||
|     @{{PYTHON}} -m pytest tests \
 | ||||
|         --ignore=tests/integration \
 | ||||
|         --cov-reset \
 | ||||
|         --cov=. \
 | ||||
|         2> /dev/null | ||||
| tests-integration: | ||||
|     @{{PYTHON}} -m pytest tests/integration 2> /dev/null | ||||
| 
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| # TARGETS: qa
 | ||||
| # NOTE: use for development only.
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| 
 | ||||
| qa: | ||||
|     @{{PYTHON}} -m coverage report -m | ||||
| coverage source_path tests_path: | ||||
|     @just _create-logs | ||||
|     @-just _coverage-no-logs "{{source_path}}" "{{tests_path}}" | ||||
|     @just _display-logs | ||||
| _coverage-no-logs source_path tests_path: | ||||
|     @{{PYTHON}} -m pytest {{tests_path}} \
 | ||||
|         --ignore=tests/integration \
 | ||||
|         --cov-reset \
 | ||||
|         --cov={{source_path}} \
 | ||||
|         --capture=tee-sys \
 | ||||
|         2> /dev/null | ||||
| 
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| # TARGETS: clean
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| 
 | ||||
| clean: | ||||
|     @just clean-basic | ||||
|     @just pre-commit | ||||
| pre-commit: | ||||
|     @echo "Clean python notebooks." | ||||
|     @{{PYTHON}} -m jupyter nbconvert --clear-output --inplace **/*.ipynb | ||||
|     @- {{PYTHON}} -m jupytext --update-metadata '{"vscode":""}' **/*.ipynb 2> /dev/null | ||||
|     @- {{PYTHON}} -m jupytext --update-metadata '{"vscode":null}' **/*.ipynb 2> /dev/null | ||||
| clean-basic: | ||||
|     @echo "All system artefacts will be force removed." | ||||
|     @- just _clean-all-files "." ".DS_Store" 2> /dev/null | ||||
|     @echo "All build artefacts will be force removed." | ||||
|     @- just _clean-all-folders "." "__pycache__" 2> /dev/null | ||||
|     @- just _delete-if-folder-exists "models/generated" 2> /dev/null | ||||
|     @echo "All test artefacts will be force removed." | ||||
|     @- just _clean-all-folders "." ".pytest_cache" 2> /dev/null | ||||
|     @- just _delete-if-file-exists ".coverage" 2> /dev/null | ||||
|     @- just _delete-if-folder-exists "logs" 2> /dev/null | ||||
| 
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| # TARGETS: logging
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| 
 | ||||
| _create-logs: | ||||
|     @# For logging purposes (since stdout is rechanneled): | ||||
|     @just _delete-if-file-exists "logs/debug.log" | ||||
|     @just _create-folder-if-not-exists "logs" | ||||
|     @just _create-file-if-not-exists "logs/debug.log" | ||||
| _display-logs: | ||||
|     @echo "" | ||||
|     @echo "Content of logs/debug.log:" | ||||
|     @echo "----------------" | ||||
|     @echo "" | ||||
|     @- cat logs/debug.log | ||||
|     @echo "" | ||||
|     @echo "----------------" | ||||
| 
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| # TARGETS: processes
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| 
 | ||||
| api-process: | ||||
|     #!/usr/bin/env bash | ||||
|     if [[ "{{OS}}" == "linux" ]]; then | ||||
|         ps aux | grep "uvicorn src.api:app" | ||||
|     else | ||||
|         netstat -ano | findstr "uvicorn src.api:app" | ||||
|     fi | ||||
| kill-api-process: | ||||
|     #!/usr/bin/env bash | ||||
|     # NOTE: only need to do this for linux. | ||||
|     if [[ "{{OS}}" == "linux" ]]; then | ||||
|         echo "Terminating all processes associated to app and port {{PORT}}." | ||||
|         while read pid; do | ||||
|             if [[ "$pid" == "" ]]; then continue; fi | ||||
|             echo "- killing process $pid:" | ||||
|             kill -9 ${pid}; | ||||
|         done <<< $( pgrep -f "uvicorn src.api:app --port {{PORT}}" ) | ||||
|     fi | ||||
| 
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| # TARGETS: requirements
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| 
 | ||||
| _check-system: | ||||
|     @echo "Operating System detected: {{os_family()}}." | ||||
|     @echo "Python command used: {{PYTHON}}." | ||||
| 
 | ||||
| _check-system-requirements: | ||||
|     @just _check-python-tool "{{GEN_MODELS}}" "datamodel-code-generator" | ||||
|     @just _check-python-tool "{{GEN_MODELS_DOCUMENTATION}}" "openapi-code-generator" | ||||
							
								
								
									
										28
									
								
								main.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								main.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | ||||
| #!/usr/bin/env python3 | ||||
| # -*- coding: utf-8 -*- | ||||
| 
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # IMPORTS | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| import os; | ||||
| 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; | ||||
|     enter(); | ||||
							
								
								
									
										57
									
								
								pyproject.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								pyproject.toml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,57 @@ | ||||
| [project] | ||||
| name = "course-mathe-fuer-physiker-1" | ||||
| version = "X.Y.Z" | ||||
| description = "" | ||||
| authors = [ "gitea.math.uni-leipzig.de/raj_mathe" ] | ||||
| maintainers = [ "gitea.math.uni-leipzig.de/raj_mathe" ] | ||||
| license = "MIT" | ||||
| readme = "README.md" | ||||
| python = "^3.10" | ||||
| homepage = "https://gitea.math.uni-leipzig.de/raj_mathe/mfp1-2022" | ||||
| repository = "https://gitea.math.uni-leipzig.de/raj_mathe/mfp1-2022" | ||||
| documentation = "https://gitea.math.uni-leipzig.de/raj_mathe/mfp1-2022/src/README.md" | ||||
| keywords = [ | ||||
|     "python", | ||||
| ] | ||||
| # cf. https://pypi.org/classifiers | ||||
| classifiers = [ | ||||
|     "Development Status :: 3 - Alpha", | ||||
|     "Environment :: Console", | ||||
|     "Intended Audience :: Developers", | ||||
|     "Operating System :: Unix", | ||||
|     "Programming Language :: Python", | ||||
|     "Programming Language :: Python :: 3", | ||||
|     "Programming Language :: Python :: 3 :: Only", | ||||
|     "Programming Language :: Python :: 3.10", | ||||
| ] | ||||
| 
 | ||||
| [tool.pytest.ini_options] | ||||
| minversion = "7.1.1" | ||||
| testpaths = [ | ||||
|     "tests", | ||||
| ] | ||||
| python_files = [ | ||||
|     "**/tests_*.py", | ||||
| ] | ||||
| asyncio_mode = "auto" | ||||
| filterwarnings = [ | ||||
|     "error", | ||||
|     "ignore::UserWarning", | ||||
|     "ignore::DeprecationWarning", | ||||
| ] | ||||
| # NOTE: appends (not prepends) flags: | ||||
| addopts = [ | ||||
|     "--order-dependencies", | ||||
|     "--order-group-scope=module", | ||||
|     "--cache-clear", | ||||
|     "--verbose", | ||||
|     "--maxfail=1", | ||||
|     "-k test_", | ||||
|     # NOTE: will be ignored, if --cov not used (e.g. integration tests): | ||||
|     "--no-cov-on-fail", | ||||
|     "--cov-report=term", | ||||
|     "--cov-config=.coveragerc", | ||||
|     # NOTE: for development purposes only: | ||||
|     # "-s", # verbose print/err capturing disabled | ||||
|     # "--capture=tee-sys", # verbose print/err capturing enabled | ||||
| ] | ||||
							
								
								
									
										49
									
								
								requirements.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								requirements.txt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,49 @@ | ||||
| pip>=22.2.2 | ||||
| wheel>=0.37.1 | ||||
| 
 | ||||
| # jupyter | ||||
| ipython>=8.3.0 | ||||
| jupyter>=1.0.0 | ||||
| 
 | ||||
| # running | ||||
| codetiming>=1.3.0 | ||||
| 
 | ||||
| # testing + dev | ||||
| coverage[toml]>=6.4 | ||||
| pytest>=7.1.1 | ||||
| pytest-asyncio>=0.18.3 | ||||
| pytest-cov>=3.0.0 | ||||
| pytest-lazy-fixture>=0.6.3 | ||||
| pytest-order>=1.0.1 | ||||
| testfixtures>=6.18.5 | ||||
| 
 | ||||
| # misc | ||||
| importlib>=1.0.4 | ||||
| authlib>=1.0.1 | ||||
| passlib>=1.7.4 | ||||
| psutil>=5.9.0 | ||||
| pathlib>=1.0.1 | ||||
| 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 | ||||
| pydantic>=1.9.1 | ||||
| datamodel-code-generator>=0.12.0 | ||||
| 
 | ||||
| # maths | ||||
| fraction>=2.2.0 | ||||
| numpy>=1.22.4 | ||||
| matplotlib>=3.5.1 | ||||
| 
 | ||||
| # tables, data frames | ||||
| pandas>=1.4.2 | ||||
| tabulate>=0.8.10 | ||||
| # array-to-latex>=0.82 # <- has issues | ||||
| qiskit[visualization]>=0.38.0 | ||||
							
								
								
									
										0
									
								
								templates/template-config.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								templates/template-config.yaml
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								templates/template.env
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								templates/template.env
									
									
									
									
									
										Normal file
									
								
							
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user