Python 3.4 - jak uchovat nastavení

lck

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #15 kdy: 26. 07. 2015, 21:01:43 »
Shelve jsem nikdy nepoužil a nemám k tomu moc motivaci, pickle je pohodlné, pokud se používá jenom z Pythonu.

Shelve je jen syntax suggar na pickle.

ZODB je overene casom a vyborne zdokumentovane

Ověřené časem ano, ale ta dokumentace docela pokulhává. Ne že by nebyla, ale je roztříštěná a ve spojení se ZEO clusterem je tam pár věcí, které umí překvapit.

namiesto ZEO je uz dnes lepsie pouzit RelStorage backend (postgresql/mysql/oracle) ktorym zaroven vyriesite aj backup/restore


mikrom

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #16 kdy: 26. 07. 2015, 21:32:23 »
...YAML je exot (nic proti)...
YAML som pouzil par krat v Ruby (ktory ma v standardnej kniznici YAML aj JSON).
Myslel som teda, ze Python ma YAML tiez v standardej kniznici, ale neni tomu tak.

O to mi nešlo. Ten formát zná poměrně málo lidí a podle mě je méně intuitivní než třeba INI.
Podla mna lepsie pasuje k filozofii Pythonu ako JSON. Netreba {...}, ale treba odsadzovat tak ako v Pythone.
YAML bol navrhnuty ako ludsky-citatelny format. Je ale pravda ze JSON sa pouziva viac.

mikrom

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #17 kdy: 26. 07. 2015, 21:43:25 »
Shelve jsem nikdy nepoužil a nemám k tomu moc motivaci, pickle je pohodlné, pokud se používá jenom z Pythonu.

Shelve je jen syntax suggar na pickle.
Shelve som nepoznal, tak som ho teraz vyskusal, ale moc ma nenadchol.
Zatial co Pickle pri ulozeni vytvori iba jeden subor, Shelve mi vytvoril az tri subory:
*.dir, *.txt, *bak (t.j. kopia *.dir)

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #18 kdy: 26. 07. 2015, 23:08:04 »
namiesto ZEO je uz dnes lepsie pouzit RelStorage backend (postgresql/mysql/oracle) ktorym zaroven vyriesite aj backup/restore

Jak to spolu souvisí? ZEO je server nad ZODB, který se stará o přístup z vícero procesů, cacheování a tak. RelStorage backend je jen způsob uložení dat. Nebo to chápu špatně?

lck

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #19 kdy: 26. 07. 2015, 23:47:01 »
namiesto ZEO je uz dnes lepsie pouzit RelStorage backend (postgresql/mysql/oracle) ktorym zaroven vyriesite aj backup/restore

Jak to spolu souvisí? ZEO je server nad ZODB, který se stará o přístup z vícero procesů, cacheování a tak. RelStorage backend je jen způsob uložení dat. Nebo to chápu špatně?

ano chapete to spatne ;-) RelStorage bol vytvoreny ako plna nahrada za ZEO - teda riesi aj pristup viacerych klientov/procesov k ZODB


karel

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #20 kdy: 27. 07. 2015, 10:41:54 »
Divní trolové,
tazatel se ptal v čem si má uchovat pár hodnot oběktu pro znovuspuštění, dokonce uvádí že si potřebuje uchovat tři proměné, a vy na něj jdete s databází ? Proboha proberte se a začněte přemýšlet než něco kváknete. Já jen doufám, že podobně neřešíte i vaše pracovní zadání. Já bych vás hnal, pokud by jste mi dotáhly kód kde místo využití základních knihoven na jednoduchý program/script budete mít půl A4 popsanou dependencies jen, že potřebujete uchovat pár bajtů kvuli znovu spuštění.


Re:Python 3.4 - jak uchovat nastavení
« Odpověď #21 kdy: 27. 07. 2015, 17:32:45 »
Divní trolové,
tazatel se ptal v čem si má uchovat pár hodnot oběktu pro znovuspuštění, dokonce uvádí že si potřebuje uchovat tři proměné, a vy na něj jdete s databází ? Proboha proberte se a začněte přemýšlet než něco kváknete. Já jen doufám, že podobně neřešíte i vaše pracovní zadání. Já bych vás hnal, pokud by jste mi dotáhly kód kde místo využití základních knihoven na jednoduchý program/script budete mít půl A4 popsanou dependencies jen, že potřebujete uchovat pár bajtů kvuli znovu spuštění.

Amen, promluvil E-mudrc, co musí srát do ostatních. Zrovna shelve je součástí standardní distribuce a dělá přesně to, co OP chtěl - uchovává stav objektu a kód pro jeho použití je asi tak na pět řádků. OP nemusí řešit serializaci a deserializaci, narozdíl od případu použití JSON/YAML/INI.

To že se tu bavíme o ZODB, která je vhodná pro projekty většího typu* můžeš ignorovat, když se ti to nelíbí. Fakt nechápu, kde se bere ta potřeba si hned otevírat na všechny kanál.

*Doslova jsem psal: Případně pokud bys chtěl něco vhodného pro více threadů a komerční nasazení, tak http://www.zodb.org/

rizi

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #22 kdy: 27. 07. 2015, 17:45:29 »
Použij csv, zapisuje se do něj fakt rychle, dívej

Kód: [Vybrat]
hodnoty = [1,2,3,4]
f = file("soubor.csv", "w")
delka = len(hodnoty)
for x in range(delka):
    f.write(hodnoty[x] + "\n")

A je to

mikrom

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #23 kdy: 27. 07. 2015, 20:30:25 »
Myslim, ze je zbytocne dohadovat sa o tom, ktory modul je lepsi  pre danu ulohu, ked OP nereaguje.

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #24 kdy: 27. 07. 2015, 23:04:19 »
Tohle není soukromá poradna pro OPa, čte to podstatně víc lidí, kteří se z toho třeba i něco zajímavého dozví.

evil

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #25 kdy: 27. 07. 2015, 23:36:54 »
Když to OP už nečte, poradil bych mu eval.

uložení:
Kód: [Vybrat]
conf = {'x': 'foo'}
with open('config.dat', 'w') as f:
    f.write(repr(conf))

načtení:
Kód: [Vybrat]
conf = eval(open('config.dat').read())
hahahahahahahaHAHAHAAAA!!

karel

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #26 kdy: 28. 07. 2015, 04:15:26 »
Tohle není soukromá poradna pro OPa, čte to podstatně víc lidí, kteří se z toho třeba i něco zajímavého dozví.

Nemohu plně souhlasit s myšlenkou,

tazatel něco neumí nebo něčemu nerozumí, vytvoří nové téma kde pokud někdo ví poradí. A tečka.
Sem tam se najde někdo kdo ho trolí, ale to už tak v naší společnosti je. No a pak se tam nabalí offtopic příspěvky. Ano to se stává, ale k tomu to primárně neslouží. Primární je zodpovědět a poradit co nejlepší cestu.

Databáze pro python by si zasloužily vlastní diskuzi, určitě ale nepatří jejich zmiňování do dotazu na uchování nastavení programu.

Tento příspěvek je také mimo mísu.

Snow

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #27 kdy: 28. 07. 2015, 07:17:21 »
Použij csv, zapisuje se do něj fakt rychle, dívej

Kód: [Vybrat]
hodnoty = [1,2,3,4]
f = file("soubor.csv", "w")
delka = len(hodnoty)
for x in range(delka):
    f.write(hodnoty[x] + "\n")

A je to
Bože to je prasárna...



Já osobně používám YAML, (pokud soubor beru řekněme jako config) líbí se mě to odsazování a snadná úprava.
Pokud do souboru chci jen ukládat, číst a nechci ho editovat tak YAML (i když taky snadno lze editovat...) případně pickle tam kde by mohlo svádět soubor ručně editovat, což si nepřeji...

Snow

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #28 kdy: 28. 07. 2015, 07:19:35 »
Použij csv, zapisuje se do něj fakt rychle, dívej

Kód: [Vybrat]
hodnoty = [1,2,3,4]
f = file("soubor.csv", "w")
delka = len(hodnoty)
for x in range(delka):
    f.write(hodnoty[x] + "\n")

A je to
Bože to je prasárna...



Já osobně používám YAML, (pokud soubor beru řekněme jako config) líbí se mě to odsazování a snadná úprava.
Pokud do souboru chci jen ukládat, číst a nechci ho editovat tak JSON (i když taky snadno lze editovat...) případně pickle tam kde by mohlo svádět soubor ručně editovat, což si nepřeji... U obou je výhoda že je nemusíš doinstalovávat.
Oprava...

rizi

Re:Python 3.4 - jak uchovat nastavení
« Odpověď #29 kdy: 28. 07. 2015, 11:25:05 »
Použij csv, zapisuje se do něj fakt rychle, dívej

Kód: [Vybrat]
hodnoty = [1,2,3,4]
f = file("soubor.csv", "w")
delka = len(hodnoty)
for x in range(delka):
    f.write(hodnoty[x] + "\n")

A je to
Bože to je prasárna...


Co je na tom za prasárnu? Ve skole sem za to dostal jednicku a ten ucitel ma vysokou skolu, tak by mi ji asi nedal ne?