nocek 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- nocek-0.1.0/.github/workflows/publish.yml +49 -0
- nocek-0.1.0/.gitignore +27 -0
- nocek-0.1.0/LICENSE +75 -0
- nocek-0.1.0/PKG-INFO +233 -0
- nocek-0.1.0/README.md +194 -0
- nocek-0.1.0/docs/releasing.md +44 -0
- nocek-0.1.0/docs/roadmap.md +28 -0
- nocek-0.1.0/install.ps1 +53 -0
- nocek-0.1.0/install.sh +48 -0
- nocek-0.1.0/pyproject.toml +102 -0
- nocek-0.1.0/src/nocek/__init__.py +3 -0
- nocek-0.1.0/src/nocek/__main__.py +5 -0
- nocek-0.1.0/src/nocek/cli.py +165 -0
- nocek-0.1.0/src/nocek/core/__init__.py +5 -0
- nocek-0.1.0/src/nocek/core/_data.py +13 -0
- nocek-0.1.0/src/nocek/core/audio.py +44 -0
- nocek-0.1.0/src/nocek/core/batdetect.py +320 -0
- nocek-0.1.0/src/nocek/core/battybird.py +383 -0
- nocek-0.1.0/src/nocek/core/consensus.py +190 -0
- nocek-0.1.0/src/nocek/core/data/batdetect2_classes.json +31 -0
- nocek-0.1.0/src/nocek/core/data/battybird_labels.json +34 -0
- nocek-0.1.0/src/nocek/core/data/comparison_groups.json +9 -0
- nocek-0.1.0/src/nocek/core/data/key_bands.json +24 -0
- nocek-0.1.0/src/nocek/core/data/regions.json +30 -0
- nocek-0.1.0/src/nocek/core/data/taxa.json +29 -0
- nocek-0.1.0/src/nocek/core/detection.py +336 -0
- nocek-0.1.0/src/nocek/core/key.py +159 -0
- nocek-0.1.0/src/nocek/core/nights.py +15 -0
- nocek-0.1.0/src/nocek/core/opinion.py +78 -0
- nocek-0.1.0/src/nocek/core/pipeline.py +194 -0
- nocek-0.1.0/src/nocek/core/region.py +116 -0
- nocek-0.1.0/src/nocek/core/spectrogram.py +70 -0
- nocek-0.1.0/src/nocek/core/taxonomy.py +77 -0
- nocek-0.1.0/src/nocek/icons/nocek.icns +0 -0
- nocek-0.1.0/src/nocek/icons/nocek.ico +0 -0
- nocek-0.1.0/src/nocek/icons/nocek.png +0 -0
- nocek-0.1.0/src/nocek/py.typed +0 -0
- nocek-0.1.0/src/nocek/recorders/__init__.py +5 -0
- nocek-0.1.0/src/nocek/recorders/base.py +108 -0
- nocek-0.1.0/src/nocek/recorders/checks.py +84 -0
- nocek-0.1.0/src/nocek/recorders/pippyg.py +98 -0
- nocek-0.1.0/src/nocek/recorders/registry.py +8 -0
- nocek-0.1.0/src/nocek/recorders/sun.py +89 -0
- nocek-0.1.0/src/nocek/shortcut.py +192 -0
- nocek-0.1.0/src/nocek/storage/__init__.py +1 -0
- nocek-0.1.0/src/nocek/storage/database.py +72 -0
- nocek-0.1.0/src/nocek/storage/importer.py +270 -0
- nocek-0.1.0/src/nocek/storage/library.py +72 -0
- nocek-0.1.0/src/nocek/storage/migrations/0001_initial.sql +92 -0
- nocek-0.1.0/src/nocek/storage/migrations/0002_site_numbers.sql +28 -0
- nocek-0.1.0/src/nocek/storage/repository.py +494 -0
- nocek-0.1.0/src/nocek/storage/serialize.py +304 -0
- nocek-0.1.0/src/nocek/storage/settings.py +123 -0
- nocek-0.1.0/src/nocek/storage/summaries.py +322 -0
- nocek-0.1.0/src/nocek/web/__init__.py +1 -0
- nocek-0.1.0/src/nocek/web/api.py +190 -0
- nocek-0.1.0/src/nocek/web/app.py +91 -0
- nocek-0.1.0/src/nocek/web/dialog.py +101 -0
- nocek-0.1.0/src/nocek/web/errors.py +25 -0
- nocek-0.1.0/src/nocek/web/export_api.py +152 -0
- nocek-0.1.0/src/nocek/web/folders.py +97 -0
- nocek-0.1.0/src/nocek/web/i18n.py +91 -0
- nocek-0.1.0/src/nocek/web/jobs.py +427 -0
- nocek-0.1.0/src/nocek/web/jobs_api.py +72 -0
- nocek-0.1.0/src/nocek/web/library_api.py +465 -0
- nocek-0.1.0/src/nocek/web/locales/de.json +426 -0
- nocek-0.1.0/src/nocek/web/locales/en.json +426 -0
- nocek-0.1.0/src/nocek/web/locales/pl.json +450 -0
- nocek-0.1.0/src/nocek/web/media.py +119 -0
- nocek-0.1.0/src/nocek/web/media_api.py +105 -0
- nocek-0.1.0/src/nocek/web/security.py +51 -0
- nocek-0.1.0/src/nocek/web/state.py +60 -0
- nocek-0.1.0/src/nocek/web/static/favicon.png +0 -0
- nocek-0.1.0/src/nocek/web/static/index.html +23 -0
- nocek-0.1.0/src/nocek/web/static/js/api.js +26 -0
- nocek-0.1.0/src/nocek/web/static/js/app.js +34 -0
- nocek-0.1.0/src/nocek/web/static/js/bat-colours.js +38 -0
- nocek-0.1.0/src/nocek/web/static/js/calendar.js +151 -0
- nocek-0.1.0/src/nocek/web/static/js/dialog.js +20 -0
- nocek-0.1.0/src/nocek/web/static/js/dom.js +35 -0
- nocek-0.1.0/src/nocek/web/static/js/folder-picker.js +71 -0
- nocek-0.1.0/src/nocek/web/static/js/header.js +80 -0
- nocek-0.1.0/src/nocek/web/static/js/i18n.js +69 -0
- nocek-0.1.0/src/nocek/web/static/js/jobs.js +122 -0
- nocek-0.1.0/src/nocek/web/static/js/magma.js +10 -0
- nocek-0.1.0/src/nocek/web/static/js/names.js +44 -0
- nocek-0.1.0/src/nocek/web/static/js/nightbar.js +330 -0
- nocek-0.1.0/src/nocek/web/static/js/notice.js +27 -0
- nocek-0.1.0/src/nocek/web/static/js/quit.js +43 -0
- nocek-0.1.0/src/nocek/web/static/js/router.js +33 -0
- nocek-0.1.0/src/nocek/web/static/js/spectrogram.js +175 -0
- nocek-0.1.0/src/nocek/web/static/js/theme-early.js +12 -0
- nocek-0.1.0/src/nocek/web/static/js/theme.js +28 -0
- nocek-0.1.0/src/nocek/web/static/js/views/devices.js +90 -0
- nocek-0.1.0/src/nocek/web/static/js/views/home.js +318 -0
- nocek-0.1.0/src/nocek/web/static/js/views/import.js +325 -0
- nocek-0.1.0/src/nocek/web/static/js/views/recording.js +277 -0
- nocek-0.1.0/src/nocek/web/static/js/views/settings.js +137 -0
- nocek-0.1.0/src/nocek/web/static/js/views/sites.js +177 -0
- nocek-0.1.0/src/nocek/web/static/js/views/welcome.js +88 -0
- nocek-0.1.0/src/nocek/web/static/style.css +464 -0
- nocek-0.1.0/src/nocek/web/static/vendor/README.txt +2 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/LICENSE +43 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/audio-lines.svg +20 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/check.svg +15 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/chevron-down.svg +15 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/chevron-left.svg +15 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/chevron-right.svg +15 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/circle-alert.svg +17 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/download.svg +17 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/ellipsis.svg +17 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/folder-open.svg +15 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/info.svg +17 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/languages.svg +20 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/map-pin.svg +16 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/monitor.svg +17 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/moon.svg +15 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/pause.svg +16 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/play.svg +15 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/power.svg +16 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/radio.svg +19 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/settings.svg +16 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/sun-moon.svg +19 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/sun.svg +23 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/x.svg +16 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/zoom-in.svg +18 -0
- nocek-0.1.0/src/nocek/web/static/vendor/lucide/zoom-out.svg +17 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/LICENSE.md +7 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.26QE47KB.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.2BXLTQVW.js +41 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.2E2VZMOR.js +121 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.2FVCYQY4.js +30 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.2LXKNNNE.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.2NOGQWD2.js +64 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.2NV6QW6C.js +127 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.2OUDDW5N.js +34 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.2QMPIFI4.js +211 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.2SO23SX3.js +72 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.2WDGLBJO.js +29 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.2YEETXBR.js +112 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.3774FK3E.js +29 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.3BILHKLX.js +301 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.3H2FQERJ.js +25 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.3MALJW2P.js +29 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.3MSWQ3RG.js +20 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.3NKIHICW.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.43IMJ6LM.js +29 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.457WG26C.js +440 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.46NHROTP.js +2239 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.4AI6OCVC.js +261 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.4EC7IRRU.js +353 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.4IALDZ4Y.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.4LIBWWJL.js +18 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.4MQTK254.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.4OSDOJJ4.js +312 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.4UDEZ2KB.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.4XYGFHPR.js +99 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.4ZAKP7NY.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.55AH5UAX.js +76 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.5FPZSTUW.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.5H6HB774.js +30 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.5JBQCQFB.js +92 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.5KKHTQSP.js +15 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.5PFAYAIK.js +15 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.5VKLVAP2.js +330 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.5ZSSLK3M.js +68 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.6CIAVEBC.js +65 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.6FQNTW2R.js +32 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.6J5ZEH6X.js +30 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.6SNQOYNK.js +61 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.6TNHHCAM.js +37 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.6VIHFQLB.js +15 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.6VPDWW2I.js +274 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.6ZVWWDQT.js +30 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.7HGYKBWW.js +94 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.7QISORGK.js +29 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.7RXXO7LR.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.7ZCFTSGG.js +32 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.A5622CLY.js +209 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.A6PE4UC7.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.AAHO5GAS.js +32 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.AB2K5S2N.js +15 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.AG44H7MD.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.AJQ3S5VI.js +29 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.AOZFN6E7.js +147 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.AP3JK77D.js +184 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.AQZVKFHG.js +33 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ASU4ZOK4.js +235 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.B3QSBNFD.js +89 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.B6O732C7.js +31 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.BAKBSVVU.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.BAY6RJD3.js +30 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.BGEID5TE.js +70 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.BKE5EYM3.js +274 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.BLGT2UQZ.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.BMO76VKZ.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.BOYYUMGV.js +256 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.BQNDCXAL.js +51 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.BSKW43C6.js +247 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.BUCKADPY.js +41 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.BZMNT3VX.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.C435GZCM.js +118 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.CCRRQN4H.js +92 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.CEY3XO3U.js +30 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.CV35G2DF.js +305 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.CXF4H6Y3.js +117 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.CYF6RIMN.js +145 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.D2XOEELP.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.D5FEZLQU.js +42 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.D5HA4OFX.js +189 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.D5YFE5NT.js +1 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.D6GXWYLR.js +93 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.D7J2HJDE.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.D7T5MUIJ.js +395 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.DEXB7B6F.js +547 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.DITA2S5A.js +80 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.DL7HG4WM.js +23 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.DMDEL2LT.js +136 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.DOVAIU4B.js +264 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.DP5YIFD7.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.E2VSSWZB.js +30 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ECEQUBWG.js +29 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.EF25YJJE.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.EFKLEU6F.js +1922 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.EFUXUR2V.js +34 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.EIWUDXXU.js +1333 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.EP5NMLNE.js +101 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.EUQGFY4Z.js +338 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.EV5QZWZG.js +155 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.F25QOBDY.js +18 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.F2PHWUN2.js +550 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.F4JHOXPG.js +122 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.FG2PKHMT.js +153 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.FMGPE4WI.js +17 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.FNFKITIN.js +25 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.FV2UJLMK.js +15 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.FYKN76UA.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.G6XOOSBC.js +65 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.GDKEEBXF.js +94 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.GDWSLLNY.js +85 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.GJBQN6LP.js +31 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.GNSEW4OW.js +33 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.GWSUX3V5.js +43 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.GYYOD525.js +89 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.H23DVATU.js +36 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.H7TA73OO.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.HD5OAVHA.js +34 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.HE4U2ARF.js +228 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.HGBRCPUS.js +55 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.HJ65SLMP.js +51 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.HJQBZY2G.js +372 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.HKMBVADD.js +201 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.HLGGDMDY.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.HNCFWHCC.js +138 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.HOKYDFUG.js +124 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.HPULLNVR.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.HU5FIEKB.js +173 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.HYVJ2NPG.js +224 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.I2Y4E7B6.js +94 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.I7YQOYV2.js +30 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ICDCAGCX.js +24 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.IHXCBN37.js +95 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.IIHGIRPB.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.IJOBO25X.js +32 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.IOZQCLLD.js +26 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.IPQSINJJ.js +32 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.IX2GQ2J6.js +342 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.IYKD6SDL.js +315 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.J2WRH4YL.js +144 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.J4UHUULC.js +184 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.J7EXAHCE.js +167 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.JATRSH7G.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.JB5Y2AN3.js +34 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.JBSQSXSP.js +108 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.JHZRD2LV.js +60 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.JJKKSYRO.js +37 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.JOAOXII7.js +29 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.JTOY5KP3.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.JWREXNHC.js +30 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.K5EDTD7G.js +48 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.K5Q2EBKV.js +77 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.KBLB7M2I.js +956 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.KBS6YHTA.js +1 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.KGCSF52Q.js +29 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.KH7MR2OK.js +98 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.KJ34WZZX.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.KJKGFBJH.js +452 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.KKI7M5DP.js +158 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.KNPPWD7S.js +32 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.KO4RVYVT.js +58 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.KSVLZZAC.js +84 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.KWDPKKFO.js +46 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.L2PH6XPF.js +47 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.L6CIKOFQ.js +55 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.L7UUCOPZ.js +318 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.LAIHMICP.js +241 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.LBLI4KS5.js +353 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.LCFSCRUJ.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.LD7WPEY6.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.LMUGFDHU.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.LN7M2NWC.js +980 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.LNFTFTSZ.js +77 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.LOCSL3WJ.js +656 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.LPHX3BNP.js +92 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.LRYJ2M5H.js +24 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.M3V3HAFX.js +339 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.M6MK4JNZ.js +189 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.M7O5VY4E.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.MBU7SJFC.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.MEATLWHD.js +1 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.MF234WAF.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.MGSBRQWA.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.MHOTNIZ4.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.MHY5F46I.js +417 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.MO2KS3JW.js +239 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.MOCFCD22.js +311 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.MPFW6BBX.js +33 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.MQODJ75V.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.MT4KGKUD.js +29 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.MYS3OD37.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.N2TXQSKF.js +1 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.NDZDW54F.js +287 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.NH3YPZ5E.js +29 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.NJV43B2Z.js +29 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.NR2LFKJE.js +44 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.NS4E73TC.js +15 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.NSSMHWNA.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.NT6HDXPW.js +29 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.NWZSEH5M.js +122 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.NY2PQ35L.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.NY7ZFHLS.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.NZNAY3HQ.js +303 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.O3FF2LGE.js +29 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.O6IZ4I7T.js +34 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ONMWPE2G.js +75 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.OUXOGF7E.js +480 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.OVHJANOP.js +29 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.OZ5VT3R5.js +31 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.P3CFHBKJ.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.PIQFM4OJ.js +31 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.PP5RFEZX.js +109 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.PPALL6KG.js +169 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.PSADQYP2.js +66 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.PUN7URRY.js +290 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.PX3HMKF7.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.PZ23AOZF.js +166 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.PZAN6FPN.js +32 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.Q23D34AW.js +98 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.Q4QAYIGQ.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.Q6XMGFWJ.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.QD7TM6E5.js +73 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.QG644JIK.js +98 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.QGF6GJ2E.js +227 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.QKPMXIMG.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.QNZSHXSH.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.QVJVDGCX.js +364 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.QXPWLPKE.js +29 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.R62LX7HF.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.R7QX4M6R.js +47 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.REBCVBVJ.js +272 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.REHZ4JRM.js +29 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.RGZE6BBW.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.RKPV5RWB.js +85 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.RMZ7BVDM.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.RO57OJZD.js +30 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ROEDV6HF.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.RPQJAXXR.js +21 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.RQUTRD4U.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.RRKG3AQG.js +34 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.RV5MEM4L.js +132 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.RWNXKUCF.js +66 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.RXATNCKH.js +363 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.S3XWKRZZ.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.SD34Q4G4.js +29 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.SG72JPY2.js +81 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.SJUGO6JB.js +105 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.SKLR37OM.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.SLTXS4GR.js +248 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.SUZGY3IK.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.SUZTEJNL.js +88 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.SVFNJFHB.js +270 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.SXR5N7XU.js +1376 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.T6GGTYHD.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.T7CCLJ4F.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.TDR7XG37.js +30 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.TLFIX76K.js +340 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.TSARWN6S.js +275 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.U36KZLSQ.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.UDRJMWVZ.js +55 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.UIKY7WPI.js +72 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.UK2M7WPO.js +29 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.UMPSPH77.js +45 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.UOYQVA3T.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.UUEMMZG6.js +178 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.UV4Y72XP.js +37 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.UVIXNJVD.js +428 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.V3B4FDYO.js +715 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.VC3BPUZJ.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.VO4OKF3D.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.VRQU2Y2Z.js +198 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.VSYG3NGW.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.VVLIN6UY.js +259 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.W2C46OQX.js +353 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.W3JJ6XED.js +127 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.W55GO32K.js +932 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.WC7A3EOY.js +741 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.WCGXFNG4.js +95 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.WDIIGUNP.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.WGFDW2LC.js +25 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.WKX3BKNK.js +18 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.WLKYECLX.js +858 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.WYNTFJHW.js +116 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.X542U3B2.js +337 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.X55YNZ3B.js +20 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.X7T4SHKO.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.XELEYQBQ.js +249 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.XJ4PEGQL.js +135 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.XJOHOSCS.js +345 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.XLATYKDG.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.XMNDC2OW.js +452 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.XSPQ4QMK.js +29 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.XU63UNPU.js +2183 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.XW6BKGGI.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.XZ235HUK.js +113 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.XZPLJ4VW.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.YBFCQDTA.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.YD2JFSBQ.js +382 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.YDQCS2HK.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.YJNHQL5U.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.YLIESRP2.js +377 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.YMGBKPRR.js +32 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.YN7QRSZ7.js +170 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.YNIJJMXK.js +112 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.YPRC5XZF.js +101 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.YQNBAO2Z.js +45 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.YXOWVBUA.js +19 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.Z4KHDJB4.js +173 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.Z6LULOQL.js +97 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.Z73LSB5Z.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ZA5G6FAT.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ZFMOLE6Z.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ZFSRFTCP.js +83 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ZSEFTQAO.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ZSNU3QL4.js +78 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ZT4OZS6F.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ZWQCGLB5.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ZY7BMFLO.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ZZPJSMJ4.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/accordion/accordion.js +39 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/accordion/accordion.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/accordion-item/accordion-item.js +33 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/accordion-item/accordion-item.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/animated-image/animated-image.js +28 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/animated-image/animated-image.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/animation/animation.js +17 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/animation/animation.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/animation/animations.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/avatar/avatar.js +23 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/avatar/avatar.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/badge/badge.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/badge/badge.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/breadcrumb/breadcrumb.js +26 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/breadcrumb/breadcrumb.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/breadcrumb-item/breadcrumb-item.js +14 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/breadcrumb-item/breadcrumb-item.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/button/button.js +38 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/button/button.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/button-group/button-group.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/button-group/button-group.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/callout/callout.js +16 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/callout/callout.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/card/card.js +16 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/card/card.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/carousel/autoplay-controller.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/carousel/carousel.js +34 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/carousel/carousel.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/carousel/scroll-controller.js +110 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/carousel-item/carousel-item.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/carousel-item/carousel-item.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/checkbox/checkbox.js +34 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/checkbox/checkbox.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/checkbox-group/checkbox-group.js +36 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/checkbox-group/checkbox-group.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/color-picker/color-picker.js +59 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/color-picker/color-picker.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/comparison/comparison.js +30 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/comparison/comparison.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/copy-button/copy-button.js +44 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/copy-button/copy-button.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/details/details.js +36 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/details/details.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/dialog/dialog.js +49 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/dialog/dialog.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/divider/divider.js +14 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/divider/divider.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/drawer/drawer.js +49 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/drawer/drawer.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/dropdown/dropdown.js +46 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/dropdown/dropdown.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/dropdown-item/dropdown-item.js +27 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/dropdown-item/dropdown-item.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/format-bytes/format-bytes.js +14 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/format-date/format-date.js +14 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/format-number/format-number.js +14 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/icon/icon.js +21 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/icon/icon.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/icon/library.default.js +11 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/icon/library.js +23 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/icon/library.system.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/include/include.js +16 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/include/include.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/include/request.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/input/input.js +39 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/input/input.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/intersection-observer/intersection-observer.js +16 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/intersection-observer/intersection-observer.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/known-date/internal/field-order.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/known-date/internal/partial-date-validator.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/known-date/internal/parts.js +16 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/known-date/known-date.js +33 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/known-date/known-date.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/markdown/markdown.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/markdown/markdown.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/mutation-observer/mutation-observer.js +14 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/mutation-observer/mutation-observer.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/number-input/number-input.js +38 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/number-input/number-input.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/option/option.js +26 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/option/option.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/otp-input/otp-input.js +28 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/otp-input/otp-input.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/page/page.js +56 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/page/page.mobile.styles.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/page/page.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/pagination/pagination.js +34 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/pagination/pagination.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/popover/popover.js +29 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/popover/popover.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/popup/popup.js +18 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/popup/popup.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/progress-bar/progress-bar.js +17 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/progress-bar/progress-bar.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/progress-ring/progress-ring.js +17 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/progress-ring/progress-ring.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/qr-code/qr-code.js +14 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/qr-code/qr-code.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/radio/radio.js +28 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/radio/radio.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/radio-group/radio-group.js +35 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/radio-group/radio-group.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/random-content/random-content.js +17 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/random-content/random-content.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/rating/rating.js +37 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/rating/rating.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/relative-time/relative-time.js +14 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/resize-observer/resize-observer.js +14 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/resize-observer/resize-observer.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/scroller/scroller.js +15 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/scroller/scroller.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/select/select.js +60 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/select/select.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/skeleton/skeleton.js +12 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/skeleton/skeleton.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/slider/slider.js +41 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/slider/slider.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/spinner/spinner.js +15 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/spinner/spinner.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/split-panel/split-panel.js +20 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/split-panel/split-panel.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/step/step.js +33 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/step/step.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/stepper/stepper.js +39 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/stepper/stepper.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/switch/switch.js +28 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/switch/switch.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tab/tab.js +15 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tab/tab.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tab-group/tab-group.js +47 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tab-group/tab-group.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tab-panel/tab-panel.js +15 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tab-panel/tab-panel.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tag/tag.js +41 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tag/tag.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tag-input/tag-input.js +50 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tag-input/tag-input.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/textarea/textarea.js +29 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/textarea/textarea.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/time-input/internal/time-segments.js +38 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/time-input/time-input.js +39 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/time-input/time-input.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/toast/toast.js +43 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/toast/toast.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/toast-item/toast-item.js +40 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/toast-item/toast-item.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tooltip/tooltip.js +29 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tooltip/tooltip.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tree/tree.js +53 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tree/tree.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tree-item/tree-item.js +51 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tree-item/tree-item.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/zoomable-frame/zoomable-frame.js +28 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/zoomable-frame/zoomable-frame.styles.js +10 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/accordion-after-collapse.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/accordion-after-expand.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/accordion-collapse.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/accordion-expand.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/accordion-item-collapsed.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/accordion-item-expanded.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/accordion-item-trigger.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/after-collapse.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/after-expand.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/after-hide.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/after-show.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/before-page-change.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/before-step-change.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/cancel.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/cell-click.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/cell-context-menu.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/clear.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/collapse.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/column-move.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/column-pin.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/column-resize.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/column-visibility-change.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/complete.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/copy.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/create.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/data-error.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/data-request.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/error.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/events.js +2 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/expand.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/filter-change.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/finish.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/focus-day.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/hide.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/hover.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/include-error.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/intersect.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/invalid.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/lazy-change.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/lazy-load.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/load.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/mutation.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/options-error.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/options-request.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/page-change.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/random-content-change.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/remove.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/reposition.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/resize.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/row-collapse.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/row-expand.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/row-select.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/select.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/selection-change.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/show.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/slide-change.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/sort-change.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/start.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/step-change.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/tab-hide.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/tab-show.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/video-change.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/view-change.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/color/palettes/base.css +44 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/color/palettes/bright.css +145 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/color/palettes/default.css +146 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/color/palettes/shoelace.css +146 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/color/variants/brand.css +162 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/color/variants/danger.css +162 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/color/variants/neutral.css +162 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/color/variants/success.css +162 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/color/variants/warning.css +162 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/color/variants.css +5 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/component/form-control.styles.ts +43 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/component/host.styles.ts +18 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/component/segmented-field.styles.ts +97 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/component/size.styles.ts +26 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/component/variants.styles.ts +69 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/component/visually-hidden.styles.ts +21 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/layers.css +21 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/native.css +1442 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/themes/awesome.css +616 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/themes/default.css +373 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/themes/shoelace.css +650 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/align-items.css +44 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/border-radius.css +20 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/flex-wrap.css +16 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/fouce.css +17 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/gap.css +56 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/justify-content.css +32 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/layout.css +159 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/placeholder.css +9 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/prose.css +161 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/scroll-lock.css +20 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/size.css +21 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/text.css +262 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/variants.css +63 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/visually-hidden.css +24 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities.css +17 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/webawesome.css +11 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/translations/de.js +11 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/translations/en.js +9 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/translations/pl.js +241 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/utilities/animation.js +11 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/utilities/autoloader.js +15 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/utilities/base-path.js +18 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/utilities/clone.js +54 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/utilities/defined.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/utilities/form.js +8 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/utilities/localize.js +13 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/utilities/ssr-hydration.js +7 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/webawesome.js +66 -0
- nocek-0.1.0/src/nocek/web/static/vendor/webawesome/webawesome.loader.js +67 -0
- nocek-0.1.0/tests/__init__.py +0 -0
- nocek-0.1.0/tests/core/__init__.py +0 -0
- nocek-0.1.0/tests/core/factories.py +104 -0
- nocek-0.1.0/tests/core/test_audio.py +59 -0
- nocek-0.1.0/tests/core/test_batdetect.py +117 -0
- nocek-0.1.0/tests/core/test_battybird.py +174 -0
- nocek-0.1.0/tests/core/test_consensus.py +152 -0
- nocek-0.1.0/tests/core/test_detection.py +108 -0
- nocek-0.1.0/tests/core/test_key.py +134 -0
- nocek-0.1.0/tests/core/test_nights.py +16 -0
- nocek-0.1.0/tests/core/test_opinion.py +63 -0
- nocek-0.1.0/tests/core/test_pipeline.py +173 -0
- nocek-0.1.0/tests/core/test_region.py +89 -0
- nocek-0.1.0/tests/core/test_spectrogram.py +51 -0
- nocek-0.1.0/tests/core/test_taxonomy.py +56 -0
- nocek-0.1.0/tests/recorders/__init__.py +0 -0
- nocek-0.1.0/tests/recorders/test_checks.py +52 -0
- nocek-0.1.0/tests/recorders/test_pippyg.py +105 -0
- nocek-0.1.0/tests/recorders/test_sun.py +37 -0
- nocek-0.1.0/tests/storage/__init__.py +0 -0
- nocek-0.1.0/tests/storage/conftest.py +33 -0
- nocek-0.1.0/tests/storage/test_database.py +89 -0
- nocek-0.1.0/tests/storage/test_importer.py +227 -0
- nocek-0.1.0/tests/storage/test_library.py +79 -0
- nocek-0.1.0/tests/storage/test_repository.py +140 -0
- nocek-0.1.0/tests/storage/test_serialize.py +59 -0
- nocek-0.1.0/tests/storage/test_summaries.py +121 -0
- nocek-0.1.0/tests/synth.py +63 -0
- nocek-0.1.0/tests/test_cli.py +123 -0
- nocek-0.1.0/tests/test_shortcut.py +91 -0
- nocek-0.1.0/tests/web/__init__.py +0 -0
- nocek-0.1.0/tests/web/conftest.py +34 -0
- nocek-0.1.0/tests/web/test_api.py +134 -0
- nocek-0.1.0/tests/web/test_dialog.py +137 -0
- nocek-0.1.0/tests/web/test_folders.py +62 -0
- nocek-0.1.0/tests/web/test_i18n.py +207 -0
- nocek-0.1.0/tests/web/test_jobs.py +294 -0
- nocek-0.1.0/tests/web/test_library_api.py +324 -0
- nocek-0.1.0/tests/web/test_media.py +172 -0
- nocek-0.1.0/tests/web/test_security.py +69 -0
- nocek-0.1.0/tools/make_icons.py +55 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Builds Nocek and publishes it, with PyPI's trusted publishing (no passwords or tokens
|
|
2
|
+
# kept anywhere):
|
|
3
|
+
# - pushing a tag v0.1.0, v0.2.0, ... publishes that version to PyPI;
|
|
4
|
+
# - running this workflow by hand (Actions, "Publish", Run workflow) publishes to
|
|
5
|
+
# TestPyPI, to try a release out first.
|
|
6
|
+
# The tag must name the version in src/nocek/__init__.py.
|
|
7
|
+
|
|
8
|
+
name: Publish
|
|
9
|
+
|
|
10
|
+
on:
|
|
11
|
+
push:
|
|
12
|
+
tags: ["v*"]
|
|
13
|
+
workflow_dispatch:
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
build:
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v4
|
|
20
|
+
- uses: astral-sh/setup-uv@v6
|
|
21
|
+
- name: Build
|
|
22
|
+
run: uv build
|
|
23
|
+
- name: Check the tag names the version being published
|
|
24
|
+
if: startsWith(github.ref, 'refs/tags/')
|
|
25
|
+
run: |
|
|
26
|
+
version=$(python3 -c "import re; print(re.search(r'__version__ = \"(.+)\"', open('src/nocek/__init__.py').read())[1])")
|
|
27
|
+
test "${GITHUB_REF_NAME}" = "v${version}" || { echo "tag ${GITHUB_REF_NAME} but version ${version}"; exit 1; }
|
|
28
|
+
- name: Check the package's metadata
|
|
29
|
+
run: uvx twine check --strict dist/*
|
|
30
|
+
- uses: actions/upload-artifact@v4
|
|
31
|
+
with:
|
|
32
|
+
name: dist
|
|
33
|
+
path: dist/
|
|
34
|
+
|
|
35
|
+
publish:
|
|
36
|
+
needs: build
|
|
37
|
+
runs-on: ubuntu-latest
|
|
38
|
+
# A tag goes to PyPI, a run by hand to TestPyPI.
|
|
39
|
+
environment: ${{ startsWith(github.ref, 'refs/tags/') && 'pypi' || 'testpypi' }}
|
|
40
|
+
permissions:
|
|
41
|
+
id-token: write # what trusted publishing signs in with
|
|
42
|
+
steps:
|
|
43
|
+
- uses: actions/download-artifact@v4
|
|
44
|
+
with:
|
|
45
|
+
name: dist
|
|
46
|
+
path: dist/
|
|
47
|
+
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
48
|
+
with:
|
|
49
|
+
repository-url: ${{ startsWith(github.ref, 'refs/tags/') && 'https://upload.pypi.org/legacy/' || 'https://test.pypi.org/legacy/' }}
|
nocek-0.1.0/.gitignore
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*.egg-info/
|
|
5
|
+
build/
|
|
6
|
+
dist/
|
|
7
|
+
|
|
8
|
+
# Environments
|
|
9
|
+
.venv/
|
|
10
|
+
venv/
|
|
11
|
+
|
|
12
|
+
# Tooling caches
|
|
13
|
+
.mypy_cache/
|
|
14
|
+
.pytest_cache/
|
|
15
|
+
.ruff_cache/
|
|
16
|
+
.coverage
|
|
17
|
+
htmlcov/
|
|
18
|
+
|
|
19
|
+
# Editors and OS
|
|
20
|
+
.idea/
|
|
21
|
+
.vscode/
|
|
22
|
+
.DS_Store
|
|
23
|
+
Thumbs.db
|
|
24
|
+
|
|
25
|
+
# Recordings never belong in the repository
|
|
26
|
+
*.wav
|
|
27
|
+
!tests/fixtures/**/*.wav
|
nocek-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
Required Notice: Copyright 2026 kazek (https://github.com/kazek)
|
|
2
|
+
|
|
3
|
+
# PolyForm Noncommercial License 1.0.0
|
|
4
|
+
|
|
5
|
+
<https://polyformproject.org/licenses/noncommercial/1.0.0>
|
|
6
|
+
|
|
7
|
+
## Acceptance
|
|
8
|
+
|
|
9
|
+
In order to get any license under these terms, you must agree to them as both strict obligations and conditions to all your licenses.
|
|
10
|
+
|
|
11
|
+
## Copyright License
|
|
12
|
+
|
|
13
|
+
The licensor grants you a copyright license for the software to do everything you might do with the software that would otherwise infringe the licensor's copyright in it for any permitted purpose. However, you may only distribute the software according to [Distribution License](#distribution-license) and make changes or new works based on the software according to [Changes and New Works License](#changes-and-new-works-license).
|
|
14
|
+
|
|
15
|
+
## Distribution License
|
|
16
|
+
|
|
17
|
+
The licensor grants you an additional copyright license to distribute copies of the software. Your license to distribute covers distributing the software with changes and new works permitted by [Changes and New Works License](#changes-and-new-works-license).
|
|
18
|
+
|
|
19
|
+
## Notices
|
|
20
|
+
|
|
21
|
+
You must ensure that anyone who gets a copy of any part of the software from you also gets a copy of these terms or the URL for them above, as well as copies of any plain-text lines beginning with `Required Notice:` that the licensor provided with the software. For example:
|
|
22
|
+
|
|
23
|
+
> Required Notice: Copyright Yoyodyne, Inc. (http://example.com)
|
|
24
|
+
|
|
25
|
+
## Changes and New Works License
|
|
26
|
+
|
|
27
|
+
The licensor grants you an additional copyright license to make changes and new works based on the software for any permitted purpose.
|
|
28
|
+
|
|
29
|
+
## Patent License
|
|
30
|
+
|
|
31
|
+
The licensor grants you a patent license for the software that covers patent claims the licensor can license, or becomes able to license, that you would infringe by using the software.
|
|
32
|
+
|
|
33
|
+
## Noncommercial Purposes
|
|
34
|
+
|
|
35
|
+
Any noncommercial purpose is a permitted purpose.
|
|
36
|
+
|
|
37
|
+
## Personal Uses
|
|
38
|
+
|
|
39
|
+
Personal use for research, experiment, and testing for the benefit of public knowledge, personal study, private entertainment, hobby projects, amateur pursuits, or religious observance, without any anticipated commercial application, is use for a permitted purpose.
|
|
40
|
+
|
|
41
|
+
## Noncommercial Organizations
|
|
42
|
+
|
|
43
|
+
Use by any charitable organization, educational institution, public research organization, public safety or health organization, environmental protection organization, or government institution is use for a permitted purpose regardless of the source of funding or obligations resulting from the funding.
|
|
44
|
+
|
|
45
|
+
## Fair Use
|
|
46
|
+
|
|
47
|
+
You may have "fair use" rights for the software under the law. These terms do not limit them.
|
|
48
|
+
|
|
49
|
+
## No Other Rights
|
|
50
|
+
|
|
51
|
+
These terms do not allow you to sublicense or transfer any of your licenses to anyone else, or prevent the licensor from granting licenses to anyone else. These terms do not imply any other licenses.
|
|
52
|
+
|
|
53
|
+
## Patent Defense
|
|
54
|
+
|
|
55
|
+
If you make any written claim that the software infringes or contributes to infringement of any patent, your patent license for the software granted under these terms ends immediately. If your company makes such a claim, your patent license ends immediately for work on behalf of your company.
|
|
56
|
+
|
|
57
|
+
## Violations
|
|
58
|
+
|
|
59
|
+
The first time you are notified in writing that you have violated any of these terms, or done anything with the software not covered by your licenses, your licenses can nonetheless continue if you come into full compliance with these terms, and take practical steps to correct past violations, within 32 days of receiving notice. Otherwise, all your licenses end immediately.
|
|
60
|
+
|
|
61
|
+
## No Liability
|
|
62
|
+
|
|
63
|
+
***As far as the law allows, the software comes as is, without any warranty or condition, and the licensor will not be liable to you for any damages arising out of these terms or the use or nature of the software, under any kind of legal claim.***
|
|
64
|
+
|
|
65
|
+
## Definitions
|
|
66
|
+
|
|
67
|
+
The **licensor** is the individual or entity offering these terms, and the **software** is the software the licensor makes available under these terms.
|
|
68
|
+
|
|
69
|
+
**You** refers to the individual or entity agreeing to these terms.
|
|
70
|
+
|
|
71
|
+
**Your company** is any legal entity, sole proprietorship, or other kind of organization that you work for, plus all organizations that have control over, are under the control of, or are under common control with that organization. **Control** means ownership of substantially all the assets of an entity, or the power to direct its management and policies by vote, contract, or otherwise. Control can be direct or indirect.
|
|
72
|
+
|
|
73
|
+
**Your licenses** are all the licenses granted to you for the software under these terms.
|
|
74
|
+
|
|
75
|
+
**Use** means anything you do with the software requiring one of your licenses.
|
nocek-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: nocek
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Identify bats from ultrasonic recordings, in your browser.
|
|
5
|
+
Project-URL: Homepage, https://github.com/kazek/nocek
|
|
6
|
+
Project-URL: Source, https://github.com/kazek/nocek
|
|
7
|
+
Project-URL: Issues, https://github.com/kazek/nocek/issues
|
|
8
|
+
Author: kazek
|
|
9
|
+
License-Expression: PolyForm-Noncommercial-1.0.0
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Keywords: bat detector,bats,bioacoustics,echolocation,pippyg,ultrasound
|
|
12
|
+
Classifier: Development Status :: 3 - Alpha
|
|
13
|
+
Classifier: Environment :: Web Environment
|
|
14
|
+
Classifier: Intended Audience :: Science/Research
|
|
15
|
+
Classifier: Natural Language :: English
|
|
16
|
+
Classifier: Natural Language :: German
|
|
17
|
+
Classifier: Natural Language :: Polish
|
|
18
|
+
Classifier: Operating System :: MacOS
|
|
19
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
20
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
21
|
+
Classifier: Programming Language :: Python :: 3
|
|
22
|
+
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
|
|
23
|
+
Requires-Python: >=3.11
|
|
24
|
+
Requires-Dist: ai-edge-litert>=2.1.2
|
|
25
|
+
Requires-Dist: audioread>=3.0
|
|
26
|
+
Requires-Dist: batdetect2==1.3.1
|
|
27
|
+
Requires-Dist: fastapi>=0.115
|
|
28
|
+
Requires-Dist: numpy>=1.26
|
|
29
|
+
Requires-Dist: platformdirs>=4
|
|
30
|
+
Requires-Dist: soundfile>=0.12
|
|
31
|
+
Requires-Dist: soxr>=0.5
|
|
32
|
+
Requires-Dist: uvicorn>=0.30
|
|
33
|
+
Provides-Extra: dev
|
|
34
|
+
Requires-Dist: httpx2>=2.13; extra == 'dev'
|
|
35
|
+
Requires-Dist: mypy>=1.11; extra == 'dev'
|
|
36
|
+
Requires-Dist: pytest>=8; extra == 'dev'
|
|
37
|
+
Requires-Dist: ruff>=0.6; extra == 'dev'
|
|
38
|
+
Description-Content-Type: text/markdown
|
|
39
|
+
|
|
40
|
+
# Nocek
|
|
41
|
+
|
|
42
|
+
Identify bats from ultrasonic recordings, in your browser.
|
|
43
|
+
|
|
44
|
+
<picture>
|
|
45
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/kazek/nocek/main/docs/screenshot-dark.png">
|
|
46
|
+
<img alt="Nocek's main page: three sites, a calendar of nights, one night's recordings from sunset to sunrise, and a recording with two bats in its spectrogram" src="https://raw.githubusercontent.com/kazek/nocek/main/docs/screenshot-light.png">
|
|
47
|
+
</picture>
|
|
48
|
+
|
|
49
|
+
Bring in the recordings from your recorder's card, and Nocek copies the new
|
|
50
|
+
ones, finds the echolocation calls, names the bats and shows you what has been
|
|
51
|
+
flying past, night by night. It runs on your own computer and your recordings
|
|
52
|
+
never leave it.
|
|
53
|
+
|
|
54
|
+
> **Status:** an early version, in use by its authors. Expect rough edges, and
|
|
55
|
+
> please report them.
|
|
56
|
+
|
|
57
|
+
## What you need
|
|
58
|
+
|
|
59
|
+
- A computer with one of:
|
|
60
|
+
- macOS 12 or newer on Apple Silicon (M1 or later)
|
|
61
|
+
- Windows 10 or 11, 64-bit
|
|
62
|
+
- Linux, x86-64 or ARM64
|
|
63
|
+
- About 1.5 GB of disk space for Nocek itself, most of it PyTorch, and room for
|
|
64
|
+
your recordings.
|
|
65
|
+
- A pippyg recorder. It is the only recorder Nocek reads for now.
|
|
66
|
+
- An internet connection to install Nocek, and once more on its first start, to
|
|
67
|
+
download one of its models (about 52 MB).
|
|
68
|
+
|
|
69
|
+
## Install
|
|
70
|
+
|
|
71
|
+
On **macOS or Linux**, open a terminal and paste:
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
curl -LsSf https://raw.githubusercontent.com/kazek/nocek/main/install.sh | sh
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
On **Windows**, open PowerShell and paste:
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/kazek/nocek/main/install.ps1 | iex"
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
That is all. The script installs [uv](https://docs.astral.sh/uv/), which brings
|
|
84
|
+
the Python Nocek needs (so you do not need Python already), then Nocek itself with
|
|
85
|
+
the build of PyTorch that suits your computer, puts Nocek in your system's menu
|
|
86
|
+
(Applications on macOS, the Start menu on Windows, the applications menu on
|
|
87
|
+
Linux), and starts it. The first time it downloads about 1 GB.
|
|
88
|
+
|
|
89
|
+
### Installing by hand
|
|
90
|
+
|
|
91
|
+
If you would rather see each step, or already use uv or pipx:
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
uv tool install --torch-backend auto nocek
|
|
95
|
+
nocek shortcut
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
`--torch-backend auto` picks the build of PyTorch that suits your computer: with
|
|
99
|
+
an NVIDIA graphics card, one that uses it; without one, the much smaller build for
|
|
100
|
+
the processor alone. uv still calls the option experimental; should it ever fail,
|
|
101
|
+
leave it out. With pipx, `pipx install nocek` works too. If the terminal does not
|
|
102
|
+
find `nocek`, run `uv tool update-shell` and open a new terminal.
|
|
103
|
+
|
|
104
|
+
## First start
|
|
105
|
+
|
|
106
|
+
Start Nocek from its shortcut, or with `nocek` in a terminal. It opens in your
|
|
107
|
+
browser at `http://127.0.0.1:6475`. Starting it again while it runs just opens
|
|
108
|
+
the page once more.
|
|
109
|
+
|
|
110
|
+
The first time, it asks for two things:
|
|
111
|
+
|
|
112
|
+
- **A library**: one folder where Nocek keeps the recordings it copies and what
|
|
113
|
+
it found in them. It offers `Documents/Nocek`. A library can be backed up or
|
|
114
|
+
moved as a whole, as one folder.
|
|
115
|
+
- **The models**: one of the three ways Nocek tells bats apart needs about 52 MB
|
|
116
|
+
of files, downloaded once.
|
|
117
|
+
|
|
118
|
+
To stop Nocek, use **Quit** in the page's top right corner.
|
|
119
|
+
|
|
120
|
+
## Using Nocek
|
|
121
|
+
|
|
122
|
+
**Load new recordings.** Choose the folder with the recorder's files: the
|
|
123
|
+
memory card, a copy of it, or one of its `bats_dev000`-style folders; the
|
|
124
|
+
folders inside are searched too. Nothing on the card is changed, and recordings
|
|
125
|
+
already in the library are skipped, so the same card can be loaded again
|
|
126
|
+
safely. Recordings made in the recorder's bird mode are left out.
|
|
127
|
+
|
|
128
|
+
**Sites.** A pippyg can be set to a number, which also names its files
|
|
129
|
+
(`DEV_000_…`). Nocek takes each number to stand for a place, a site. The first
|
|
130
|
+
time a number turns up, Nocek asks which site it stands for and suggests a new
|
|
131
|
+
one named after it, such as `dev000`, placed where the recorder's GPS put it;
|
|
132
|
+
after that, its recordings go there by themselves. In the **⋯** menu by the
|
|
133
|
+
sites you can rename sites, move a number to another site, and say which bats
|
|
134
|
+
are expected at each.
|
|
135
|
+
|
|
136
|
+
**Nights.** The calendar shades each night by how many of its recordings named a
|
|
137
|
+
bat. Pick a night to see it.
|
|
138
|
+
|
|
139
|
+
**The night.** One bar from sunset to sunrise, with a mark for every recording:
|
|
140
|
+
coloured by the bat, as tall as what it holds (a named bat, calls with the name
|
|
141
|
+
withheld, or no calls). Point at a mark to see what it is, click it to open it.
|
|
142
|
+
The legend counts each kind; point at an entry, or click it, to pick out its
|
|
143
|
+
marks. On a busy night, zoom in with the magnifiers (or Ctrl and the scroll
|
|
144
|
+
wheel, or a pinch on a trackpad) and drag the bar sideways.
|
|
145
|
+
|
|
146
|
+
**The recording.** Its spectrogram, with each animal's calls boxed and
|
|
147
|
+
numbered; drag across it to look closer. Playback is slowed (10 times by
|
|
148
|
+
default) so that the calls fall where you can hear them. Under it, what was
|
|
149
|
+
heard; **Details** shows how each method saw it. The arrow keys step through the
|
|
150
|
+
night, the space bar plays and pauses.
|
|
151
|
+
|
|
152
|
+
**How a bat gets its name.** [BatDetect2](https://github.com/macaodha/batdetect2)
|
|
153
|
+
names the animals in a recording. Two other methods check it: a field key that
|
|
154
|
+
measures the calls, and [BattyBirdNET](https://github.com/rdz-oss/BattyBirdNET-Analyzer).
|
|
155
|
+
When both of them agree on something else, the name is withheld. So are names
|
|
156
|
+
of bats not expected at the site, while bats marked rare need strong evidence.
|
|
157
|
+
Bats that cannot be told apart by their calls are named as a group, such as
|
|
158
|
+
*Pipistrellus kuhlii / P. nathusii*.
|
|
159
|
+
|
|
160
|
+
The language, the light or dark theme, and the settings are in the top right
|
|
161
|
+
corner. Nocek speaks English, Polish and German.
|
|
162
|
+
|
|
163
|
+
## Update
|
|
164
|
+
|
|
165
|
+
Run the install command again, or `uv tool upgrade nocek`. Your library and
|
|
166
|
+
settings are kept. If Nocek was running, quit it and start it again.
|
|
167
|
+
|
|
168
|
+
## Uninstall
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
nocek shortcut --remove
|
|
172
|
+
uv tool uninstall nocek
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
This leaves your library, and the files below, in place; delete them yourself if
|
|
176
|
+
you want them gone.
|
|
177
|
+
|
|
178
|
+
## Where Nocek keeps its files
|
|
179
|
+
|
|
180
|
+
| | macOS | Windows | Linux |
|
|
181
|
+
| --- | --- | --- | --- |
|
|
182
|
+
| Library | `~/Documents/Nocek`, unless you chose another folder | `Documents\Nocek`, unless you chose another folder | `~/Documents/Nocek`, unless you chose another folder |
|
|
183
|
+
| Settings | `~/Library/Application Support/Nocek` | `%LOCALAPPDATA%\Nocek` | `~/.config/Nocek` |
|
|
184
|
+
| Models | `~/Library/Application Support/Nocek/models` | `%LOCALAPPDATA%\Nocek\models` | `~/.local/share/Nocek/models` |
|
|
185
|
+
| Log | `~/Library/Logs/Nocek/nocek.log` | `%LOCALAPPDATA%\Nocek\Logs\nocek.log` | `~/.local/state/Nocek/log/nocek.log` |
|
|
186
|
+
|
|
187
|
+
The log is the file to send along when reporting a problem.
|
|
188
|
+
|
|
189
|
+
## Privacy
|
|
190
|
+
|
|
191
|
+
Nocek works on your computer only. It goes online for one thing: to download
|
|
192
|
+
BattyBirdNET's model files, once. Your recordings, and what Nocek finds in
|
|
193
|
+
them, stay where you put them.
|
|
194
|
+
|
|
195
|
+
## Licence
|
|
196
|
+
|
|
197
|
+
Nocek may be used for non-commercial purposes only, under the
|
|
198
|
+
[PolyForm Noncommercial License 1.0.0](https://github.com/kazek/nocek/blob/main/LICENSE): by individuals, for research,
|
|
199
|
+
teaching and conservation, and by charities and public bodies. For any other
|
|
200
|
+
use, please ask.
|
|
201
|
+
|
|
202
|
+
Nocek uses the work of others, under their own licences:
|
|
203
|
+
|
|
204
|
+
- [BatDetect2](https://github.com/macaodha/batdetect2), Mac Aodha, O. et al.
|
|
205
|
+
(2022): CC BY-NC 4.0, non-commercial.
|
|
206
|
+
- [BattyBirdNET](https://github.com/rdz-oss/BattyBirdNET-Analyzer), Zinck, R.D.
|
|
207
|
+
(2023), built on BirdNET by Kahl, S. et al.: CC BY-NC-SA 4.0,
|
|
208
|
+
non-commercial. Downloaded by Nocek, not part of it.
|
|
209
|
+
- [Web Awesome](https://webawesome.com): MIT. Included in
|
|
210
|
+
`src/nocek/web/static/vendor/webawesome`.
|
|
211
|
+
- [Lucide](https://lucide.dev) icons: ISC. Included in
|
|
212
|
+
`src/nocek/web/static/vendor/lucide`.
|
|
213
|
+
|
|
214
|
+
## Development
|
|
215
|
+
|
|
216
|
+
Requires Python 3.11 or newer.
|
|
217
|
+
|
|
218
|
+
```
|
|
219
|
+
git clone https://github.com/kazek/nocek
|
|
220
|
+
cd nocek
|
|
221
|
+
python3 -m venv .venv
|
|
222
|
+
.venv/bin/pip install -e ".[dev]"
|
|
223
|
+
|
|
224
|
+
.venv/bin/pytest
|
|
225
|
+
.venv/bin/ruff check .
|
|
226
|
+
.venv/bin/ruff format --check .
|
|
227
|
+
.venv/bin/mypy
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
On Windows, use `.venv\Scripts\` instead of `.venv/bin/`. The interface is plain
|
|
231
|
+
JavaScript modules with no build step: change a file under
|
|
232
|
+
`src/nocek/web/static` and reload the page. See
|
|
233
|
+
[docs/roadmap.md](https://github.com/kazek/nocek/blob/main/docs/roadmap.md) for how Nocek came about.
|
nocek-0.1.0/README.md
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
# Nocek
|
|
2
|
+
|
|
3
|
+
Identify bats from ultrasonic recordings, in your browser.
|
|
4
|
+
|
|
5
|
+
<picture>
|
|
6
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/kazek/nocek/main/docs/screenshot-dark.png">
|
|
7
|
+
<img alt="Nocek's main page: three sites, a calendar of nights, one night's recordings from sunset to sunrise, and a recording with two bats in its spectrogram" src="https://raw.githubusercontent.com/kazek/nocek/main/docs/screenshot-light.png">
|
|
8
|
+
</picture>
|
|
9
|
+
|
|
10
|
+
Bring in the recordings from your recorder's card, and Nocek copies the new
|
|
11
|
+
ones, finds the echolocation calls, names the bats and shows you what has been
|
|
12
|
+
flying past, night by night. It runs on your own computer and your recordings
|
|
13
|
+
never leave it.
|
|
14
|
+
|
|
15
|
+
> **Status:** an early version, in use by its authors. Expect rough edges, and
|
|
16
|
+
> please report them.
|
|
17
|
+
|
|
18
|
+
## What you need
|
|
19
|
+
|
|
20
|
+
- A computer with one of:
|
|
21
|
+
- macOS 12 or newer on Apple Silicon (M1 or later)
|
|
22
|
+
- Windows 10 or 11, 64-bit
|
|
23
|
+
- Linux, x86-64 or ARM64
|
|
24
|
+
- About 1.5 GB of disk space for Nocek itself, most of it PyTorch, and room for
|
|
25
|
+
your recordings.
|
|
26
|
+
- A pippyg recorder. It is the only recorder Nocek reads for now.
|
|
27
|
+
- An internet connection to install Nocek, and once more on its first start, to
|
|
28
|
+
download one of its models (about 52 MB).
|
|
29
|
+
|
|
30
|
+
## Install
|
|
31
|
+
|
|
32
|
+
On **macOS or Linux**, open a terminal and paste:
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
curl -LsSf https://raw.githubusercontent.com/kazek/nocek/main/install.sh | sh
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
On **Windows**, open PowerShell and paste:
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/kazek/nocek/main/install.ps1 | iex"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
That is all. The script installs [uv](https://docs.astral.sh/uv/), which brings
|
|
45
|
+
the Python Nocek needs (so you do not need Python already), then Nocek itself with
|
|
46
|
+
the build of PyTorch that suits your computer, puts Nocek in your system's menu
|
|
47
|
+
(Applications on macOS, the Start menu on Windows, the applications menu on
|
|
48
|
+
Linux), and starts it. The first time it downloads about 1 GB.
|
|
49
|
+
|
|
50
|
+
### Installing by hand
|
|
51
|
+
|
|
52
|
+
If you would rather see each step, or already use uv or pipx:
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
uv tool install --torch-backend auto nocek
|
|
56
|
+
nocek shortcut
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
`--torch-backend auto` picks the build of PyTorch that suits your computer: with
|
|
60
|
+
an NVIDIA graphics card, one that uses it; without one, the much smaller build for
|
|
61
|
+
the processor alone. uv still calls the option experimental; should it ever fail,
|
|
62
|
+
leave it out. With pipx, `pipx install nocek` works too. If the terminal does not
|
|
63
|
+
find `nocek`, run `uv tool update-shell` and open a new terminal.
|
|
64
|
+
|
|
65
|
+
## First start
|
|
66
|
+
|
|
67
|
+
Start Nocek from its shortcut, or with `nocek` in a terminal. It opens in your
|
|
68
|
+
browser at `http://127.0.0.1:6475`. Starting it again while it runs just opens
|
|
69
|
+
the page once more.
|
|
70
|
+
|
|
71
|
+
The first time, it asks for two things:
|
|
72
|
+
|
|
73
|
+
- **A library**: one folder where Nocek keeps the recordings it copies and what
|
|
74
|
+
it found in them. It offers `Documents/Nocek`. A library can be backed up or
|
|
75
|
+
moved as a whole, as one folder.
|
|
76
|
+
- **The models**: one of the three ways Nocek tells bats apart needs about 52 MB
|
|
77
|
+
of files, downloaded once.
|
|
78
|
+
|
|
79
|
+
To stop Nocek, use **Quit** in the page's top right corner.
|
|
80
|
+
|
|
81
|
+
## Using Nocek
|
|
82
|
+
|
|
83
|
+
**Load new recordings.** Choose the folder with the recorder's files: the
|
|
84
|
+
memory card, a copy of it, or one of its `bats_dev000`-style folders; the
|
|
85
|
+
folders inside are searched too. Nothing on the card is changed, and recordings
|
|
86
|
+
already in the library are skipped, so the same card can be loaded again
|
|
87
|
+
safely. Recordings made in the recorder's bird mode are left out.
|
|
88
|
+
|
|
89
|
+
**Sites.** A pippyg can be set to a number, which also names its files
|
|
90
|
+
(`DEV_000_…`). Nocek takes each number to stand for a place, a site. The first
|
|
91
|
+
time a number turns up, Nocek asks which site it stands for and suggests a new
|
|
92
|
+
one named after it, such as `dev000`, placed where the recorder's GPS put it;
|
|
93
|
+
after that, its recordings go there by themselves. In the **⋯** menu by the
|
|
94
|
+
sites you can rename sites, move a number to another site, and say which bats
|
|
95
|
+
are expected at each.
|
|
96
|
+
|
|
97
|
+
**Nights.** The calendar shades each night by how many of its recordings named a
|
|
98
|
+
bat. Pick a night to see it.
|
|
99
|
+
|
|
100
|
+
**The night.** One bar from sunset to sunrise, with a mark for every recording:
|
|
101
|
+
coloured by the bat, as tall as what it holds (a named bat, calls with the name
|
|
102
|
+
withheld, or no calls). Point at a mark to see what it is, click it to open it.
|
|
103
|
+
The legend counts each kind; point at an entry, or click it, to pick out its
|
|
104
|
+
marks. On a busy night, zoom in with the magnifiers (or Ctrl and the scroll
|
|
105
|
+
wheel, or a pinch on a trackpad) and drag the bar sideways.
|
|
106
|
+
|
|
107
|
+
**The recording.** Its spectrogram, with each animal's calls boxed and
|
|
108
|
+
numbered; drag across it to look closer. Playback is slowed (10 times by
|
|
109
|
+
default) so that the calls fall where you can hear them. Under it, what was
|
|
110
|
+
heard; **Details** shows how each method saw it. The arrow keys step through the
|
|
111
|
+
night, the space bar plays and pauses.
|
|
112
|
+
|
|
113
|
+
**How a bat gets its name.** [BatDetect2](https://github.com/macaodha/batdetect2)
|
|
114
|
+
names the animals in a recording. Two other methods check it: a field key that
|
|
115
|
+
measures the calls, and [BattyBirdNET](https://github.com/rdz-oss/BattyBirdNET-Analyzer).
|
|
116
|
+
When both of them agree on something else, the name is withheld. So are names
|
|
117
|
+
of bats not expected at the site, while bats marked rare need strong evidence.
|
|
118
|
+
Bats that cannot be told apart by their calls are named as a group, such as
|
|
119
|
+
*Pipistrellus kuhlii / P. nathusii*.
|
|
120
|
+
|
|
121
|
+
The language, the light or dark theme, and the settings are in the top right
|
|
122
|
+
corner. Nocek speaks English, Polish and German.
|
|
123
|
+
|
|
124
|
+
## Update
|
|
125
|
+
|
|
126
|
+
Run the install command again, or `uv tool upgrade nocek`. Your library and
|
|
127
|
+
settings are kept. If Nocek was running, quit it and start it again.
|
|
128
|
+
|
|
129
|
+
## Uninstall
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
nocek shortcut --remove
|
|
133
|
+
uv tool uninstall nocek
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
This leaves your library, and the files below, in place; delete them yourself if
|
|
137
|
+
you want them gone.
|
|
138
|
+
|
|
139
|
+
## Where Nocek keeps its files
|
|
140
|
+
|
|
141
|
+
| | macOS | Windows | Linux |
|
|
142
|
+
| --- | --- | --- | --- |
|
|
143
|
+
| Library | `~/Documents/Nocek`, unless you chose another folder | `Documents\Nocek`, unless you chose another folder | `~/Documents/Nocek`, unless you chose another folder |
|
|
144
|
+
| Settings | `~/Library/Application Support/Nocek` | `%LOCALAPPDATA%\Nocek` | `~/.config/Nocek` |
|
|
145
|
+
| Models | `~/Library/Application Support/Nocek/models` | `%LOCALAPPDATA%\Nocek\models` | `~/.local/share/Nocek/models` |
|
|
146
|
+
| Log | `~/Library/Logs/Nocek/nocek.log` | `%LOCALAPPDATA%\Nocek\Logs\nocek.log` | `~/.local/state/Nocek/log/nocek.log` |
|
|
147
|
+
|
|
148
|
+
The log is the file to send along when reporting a problem.
|
|
149
|
+
|
|
150
|
+
## Privacy
|
|
151
|
+
|
|
152
|
+
Nocek works on your computer only. It goes online for one thing: to download
|
|
153
|
+
BattyBirdNET's model files, once. Your recordings, and what Nocek finds in
|
|
154
|
+
them, stay where you put them.
|
|
155
|
+
|
|
156
|
+
## Licence
|
|
157
|
+
|
|
158
|
+
Nocek may be used for non-commercial purposes only, under the
|
|
159
|
+
[PolyForm Noncommercial License 1.0.0](https://github.com/kazek/nocek/blob/main/LICENSE): by individuals, for research,
|
|
160
|
+
teaching and conservation, and by charities and public bodies. For any other
|
|
161
|
+
use, please ask.
|
|
162
|
+
|
|
163
|
+
Nocek uses the work of others, under their own licences:
|
|
164
|
+
|
|
165
|
+
- [BatDetect2](https://github.com/macaodha/batdetect2), Mac Aodha, O. et al.
|
|
166
|
+
(2022): CC BY-NC 4.0, non-commercial.
|
|
167
|
+
- [BattyBirdNET](https://github.com/rdz-oss/BattyBirdNET-Analyzer), Zinck, R.D.
|
|
168
|
+
(2023), built on BirdNET by Kahl, S. et al.: CC BY-NC-SA 4.0,
|
|
169
|
+
non-commercial. Downloaded by Nocek, not part of it.
|
|
170
|
+
- [Web Awesome](https://webawesome.com): MIT. Included in
|
|
171
|
+
`src/nocek/web/static/vendor/webawesome`.
|
|
172
|
+
- [Lucide](https://lucide.dev) icons: ISC. Included in
|
|
173
|
+
`src/nocek/web/static/vendor/lucide`.
|
|
174
|
+
|
|
175
|
+
## Development
|
|
176
|
+
|
|
177
|
+
Requires Python 3.11 or newer.
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
git clone https://github.com/kazek/nocek
|
|
181
|
+
cd nocek
|
|
182
|
+
python3 -m venv .venv
|
|
183
|
+
.venv/bin/pip install -e ".[dev]"
|
|
184
|
+
|
|
185
|
+
.venv/bin/pytest
|
|
186
|
+
.venv/bin/ruff check .
|
|
187
|
+
.venv/bin/ruff format --check .
|
|
188
|
+
.venv/bin/mypy
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
On Windows, use `.venv\Scripts\` instead of `.venv/bin/`. The interface is plain
|
|
192
|
+
JavaScript modules with no build step: change a file under
|
|
193
|
+
`src/nocek/web/static` and reload the page. See
|
|
194
|
+
[docs/roadmap.md](https://github.com/kazek/nocek/blob/main/docs/roadmap.md) for how Nocek came about.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Releasing
|
|
2
|
+
|
|
3
|
+
Nocek is published on [PyPI](https://pypi.org/project/nocek/) by the `Publish`
|
|
4
|
+
workflow (`.github/workflows/publish.yml`), through PyPI's trusted publishing: no
|
|
5
|
+
password or token is kept anywhere.
|
|
6
|
+
|
|
7
|
+
## Once: set up publishing
|
|
8
|
+
|
|
9
|
+
1. Make accounts on [PyPI](https://pypi.org/account/register/) and
|
|
10
|
+
[TestPyPI](https://test.pypi.org/account/register/) (two separate sites), with
|
|
11
|
+
two-factor authentication.
|
|
12
|
+
2. On each, add a pending trusted publisher (Account settings, Publishing, "Add a
|
|
13
|
+
new pending publisher", GitHub):
|
|
14
|
+
- PyPI project name: `nocek`
|
|
15
|
+
- Owner: `kazek`, repository: `nocek`
|
|
16
|
+
- Workflow name: `publish.yml`
|
|
17
|
+
- Environment name: `pypi` on PyPI, `testpypi` on TestPyPI
|
|
18
|
+
|
|
19
|
+
## Each release
|
|
20
|
+
|
|
21
|
+
1. Set the version in `src/nocek/__init__.py` (`0.1.0`, `0.1.1`, `0.2.0`, ...) and
|
|
22
|
+
commit it.
|
|
23
|
+
2. Try it on TestPyPI: on GitHub, Actions, "Publish", "Run workflow" on `main`. Then,
|
|
24
|
+
on a computer with uv:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
uv tool install --torch-backend auto --index-url https://test.pypi.org/simple/ \
|
|
28
|
+
--extra-index-url https://pypi.org/simple/ --index-strategy unsafe-best-match nocek
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
TestPyPI takes each version once too, so a second try needs a new version, such
|
|
32
|
+
as `0.1.1rc1`.
|
|
33
|
+
3. Publish it: tag the commit and push the tag.
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
git tag v0.1.0
|
|
37
|
+
git push origin v0.1.0
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
The workflow checks that the tag names the version in the code, builds Nocek,
|
|
41
|
+
and publishes it. Users then get it with the install script or
|
|
42
|
+
`uv tool upgrade nocek`.
|
|
43
|
+
|
|
44
|
+
A version once on PyPI cannot be replaced, only followed by a newer one.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Roadmap
|
|
2
|
+
|
|
3
|
+
Nocek is a rewrite of a single-station research setup as an application
|
|
4
|
+
anyone with a recorder can install and use. Work proceeds in stages; each
|
|
5
|
+
stage is small enough to review in one sitting.
|
|
6
|
+
|
|
7
|
+
| # | Stage | Content | Done |
|
|
8
|
+
| --- | --- | --- | --- |
|
|
9
|
+
| 0 | Skeleton | Package layout, tooling, tests, licence | ✓ |
|
|
10
|
+
| 1 | Core library | Pulse detection, the three classifiers behind one interface, cross-checking between them, tested against reference calls | ✓ |
|
|
11
|
+
| 2 | Storage | SQLite model: site, device, import, night, recording, per-classifier result. Species identified by scientific name | ✓ |
|
|
12
|
+
| 3 | Recorders | Safe, read-only import from a folder the user picks. Device adapters, starting with pippyg: device number, location, schedule and settings read from the card and respected | ✓ |
|
|
13
|
+
| 4 | Web backend | HTTP API, background jobs with progress, first-run model download, localisation plumbing | ✓ |
|
|
14
|
+
| 5 | Interface | One page: import, sites by recorder number, a calendar of nights, the night as one bar from sunset to sunrise, the recording with its spectrogram and slowed playback. Web Awesome components, light and dark themes | ✓ |
|
|
15
|
+
| 6 | Translations | English, Polish, German. Local species names, always shown with the scientific name | ✓ |
|
|
16
|
+
| 7 | Distribution | Published on PyPI; a one-line install script for each system, a shortcut in the system's menu, the browser opens on start | ✓ |
|
|
17
|
+
| 8 | Documentation | User guide, translator guide, architecture notes | |
|
|
18
|
+
|
|
19
|
+
Later: manual verification of identifications; other recorders (AudioMoth).
|
|
20
|
+
|
|
21
|
+
## Decisions
|
|
22
|
+
|
|
23
|
+
- Python 3.11+, macOS, Windows and Linux.
|
|
24
|
+
- Backend: FastAPI. Frontend: plain JavaScript modules, no build step.
|
|
25
|
+
- Storage: one SQLite database inside the library, the folder the user chose.
|
|
26
|
+
- Web interface only; the command line just starts it and makes its shortcut.
|
|
27
|
+
- Translations: JSON files, one per language.
|
|
28
|
+
- Recordings and their metadata are kept as the recorder wrote them.
|