Lattice
A workspace for your research.
Lightweight PDM bez serveru: zamykání souborů, historie, zálohy a skripty nad běžným síťovým diskem.
Translation pending
ProductivityPython · PHPGitHub @OndrejVopravilOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Jednoduchý PDM pro spolupráci na projektech ve složkách na běžném síťovém úložišti. Nepotřebuje
server, databázový stroj ani uživatelské účty – stačí síťový disk s právy zápisu a SPM.exe
nakopírovaný na počítače uživatelů (bez instalace, plug & play).
Na jednom projektu může pracovat víc lidí současně – zamyká se po jednotlivých souborech. Každý pracuje v místní kopii projektu; změny se na server dostanou odevzdáním (s komentářem a zálohou předchozí verze).
Hlavní akce jsou jen dvě (F3 nebo dvojklik na název projektu podle stavu spustí tu vhodnou):
<projekt>_puvodni_<datum>. Bez vybraného
souboru převzít nejde.Další chování:
( ) & , . ; = ^) se hlásí a takové soubory
nejdou odevzdat.* = cokoliv,
bez ohledu na velikost písmen a diakritiku), rozbalit / sbalit, rozbalit aktivní složky.
Kopírovat / Vyjmout / Vložit a přetahování myší (i do a z Průzkumníka; dočasné kopie se
připraví, až si o soubory řekne jiný program).@uživatel, #projekt,
vyřízení) a Vzkazy mezi uživateli nevázané na projekt; vzkaz zůstává otevřený, dokud ho
autor neoznačí jako dokončený (i když ho adresát už vyřídil), dokončené se po čase archivují.BEFORE / po nahrání):
zrcadlení do projektu jiné záložky (MIRROR), kopie, ZIP, textové soubory, dotazy na
uživatele… Editor s nápovědou, hledáním (Ctrl+F, F3) a zkušebním během. Změny jazyka musí
zůstat zpětně kompatibilní se staršími skripty.<síťová složka>/.spm/archiv (jen oprávnění
uživatelé) a obnova z archivu._puvodni_ / _obnova_ lze přesunout do Koše.<síťová složka>/spm_config.json – pokud existuje, řídí nastavení všech uživatelů dané síťové
složky (zálohy, ignorované soubory, kontrola názvů, archivace, oprávnění…); v aplikaci jsou
taková nastavení zamčená.spm_config.json ("usage_report": false); upozornění na
novou verzi funguje i s vypnutou statistikou. Web statistiky je ve složce web/.Dvojklikem na SPM.bat. Při prvním spuštění skript sám vytvoří .venv a nainstaluje závislosti.
Ručně (Python 3.13):
py -3.13 -m venv .venv
.venv\Scripts\python.exe -m pip install -r requirements.txt
.venv\Scripts\python.exe -m spm
Testy: .venv\Scripts\python.exe -m pytest -q tests
build.bat vytvoří dist\SPM\SPM.exe a zip dist\SPM-<verze>.zip (~30 MB). Zip stačí na cílovém
PC rozbalit do složky s právem zápisu (např. C:\SPM, ne Program Files) a spustit SPM.exe.
Nastavení se ukládá do settings.json vedle SPM.exe, vlastní skripty do scripts\.
Aktualizace = rozbalit nový zip přes stávající složku (nastavení zůstane).
\\server\projekty\ síťová složka s projekty (jedna záložka)
spm_config.json společné nastavení (volitelné)
.spm_users\<login>.json adresář uživatelů (jméno, přezdívka, počítač, verze SPM)
.spm\vzkazy\... vzkazy mezi uživateli (_archiv = dokončené)
.spm\archiv\*.zip archivované projekty
.spm\scripts\*.spm síťové skripty (CALL SERVER)
ProjektA\
.spm\project.db SQLite – soubory, zámky, sezení, odevzdání, změny, poznámky,
zrcadla, běhy skriptů
.spm\active\*.json kdo má projekt aktivovaný (pro rychlé zobrazení v seznamu)
.spm\write.lock existuje jen během krátkého zápisu do databáze
.spm\comment.json komentář projektu
.spm\backup\... předchozí verze: soubor.backup01, .backup02, … (posledních N)
.spm\trash\<sezení>\ soubory smazané během daného sezení
...soubory projektu...
V místním úložišti: místní kopie projektů (<projekt>\.spm\manifest.json – z jaké verze pochází),
složky <projekt>_puvodni_<datum> (odsunuté při aktivaci) a <projekt>_obnova_<datum>
(obnova ze zálohy), .spm_scripts\ (nedokončené běhy skriptů) a .spm_notes\.
| Modul | Účel |
|---|---|
spm/sync.py | aktivace, převzetí, odevzdání, aktualizace, deaktivace, publikování, zálohy, koš |
spm/db.py | schéma a přístup k databázi projektu |
spm/lock.py | značky aktivních uživatelů a zámek zápisu do databáze (O_CREAT | O_EXCL) |
spm/manifest.py | místní záznam, z jaké verze na serveru pochází místní kopie |
spm/scanner.py | procházení složek, SHA-256, bezpečné kopírování přes dočasný soubor |
spm/matcher.py | detekce přejmenovaných souborů (hash + podobnost názvu/velikosti/složky) |
spm/names.py | nepovolené znaky v názvech |
spm/file_locks.py | které programy mají soubory otevřené (Restart Manager) |
spm/restore.py | obnova projektu ze záloh k zvolenému odevzdání |
spm/archive.py | archivace projektů do zipu a obnova z archivu |
spm/storage.py | místo zabrané zálohami a košem, úklid, zbytky nedokončených operací |
spm/mirror.py | zrcadlení souborů do projektu jiné záložky (příkaz MIRROR) |
spm/notes.py, spm/messages.py, spm/mentions.py | poznámky k projektu, vzkazy, zmínky |
spm/comment.py | komentář projektu |
spm/users.py, spm/identity.py | adresář uživatelů síťové složky, identita uživatele a počítače |
spm/config.py, spm/shared_config.py | místní settings.json a společný spm_config.json |
spm/folder_ops.py, spm/folder_zones.py, spm/zip_ops.py | záložka Složka, chráněné oblasti, ZIP |
spm/recycle.py | mazání do Koše Windows |
spm/usage.py | anonymní statistika a kontrola nové verze |
Copyright © 2026 Ondřej Vopravil, všechna práva vyhrazena. Aplikaci lze bezplatně používat
(i komerčně) a šířit v nezměněné podobě; je poskytována tak, jak je, bez záruk – podmínky
v LICENSE.txt. Licence součástí třetích stran (Qt / PySide6 – LGPL-3.0,
Python, PyInstaller) jsou ve složce licenses\.
spm/scripting/ | jazyk skriptů: rozbor (lang), provádění (runtime), uložení (store), nápověda |
spm/gui/ | PySide6 rozhraní |
tools/make_icon.py | ikona aplikace (--web = ikony webu) |
web/ | PHP web se statistikou používání a stažením aktuální verze |