Re: [python] Je k dispozici novější verze?

2018-12-04 Tema obsahu Petr Viktorin

On 12/4/18 8:11 AM, Petr Blahoš wrote:
[...]
Já jsem to na začátku neřekl jasně, Chtěl jsem pouze použít ty funkce 
pipu, které umí vyextrahovat verzi z názvy souboru,
a verze porovnat. Protože to číslování verzí, když uvážíme veškeré bety 
a rc a různé formáty je zatraceně složitý, takže
by bylo lepší použít už existující funkce spíš než to psát, a to i 
přesto, že ty balíčky, o kterých mluvíme jsou moje, takže

to jejich schéma verzování znám, a můžu to postavit přímo na ně.


Ahoj!
pip není knihovna, nemá veřejné funkce. Jeho vnitřnosti se mění dost 
často na to, aby se nevyplatilo ho importovat. Určité části pipu se 
postupně reimplementují ve znovupoužitelných knihovnách, ale parsování 
jmen wheel souborů v tomhle myslím není moc priorita. Naštěstí je 
relativně jednoduché.


Jména wheelů jsou standardizována v [PEP 427]. Části jména souboru jsou 
oddělené pomlčkama, a verze je druhá část. (Specifikace dál říká, že ty 
části jsou navíc pozměněné aby obsahovaly jen písmena/čísla/tečku. Ale 
validní verze nemůže obsahovat jiné znaky, takže ji lze z jména wheelu 
korektně získat.)


Verze a jejich porovnání jsou standardizovány v [PEP 440], ale tam je to 
trochu složitější než `name.split('-')[1]`. Naštěstí na porovnávání 
verzí existuje oficiální knihovna [packaging]. Chceš třídu 
`packaging.version.Version`.




Implementace v pipu je ještě složitější, protože pip se umí postarat i o 
starší způsoby verzování, které už by jako wheel nemělo být možné vydat. 
(Ani se nedají rozumně zakódovat do jména wheelu.) Tyhle způsoby nebyly 
standardizované; "správně" je porovnat byl ideál kterému se dá 
přibližovat, ale nedá se ho dosáhnout.
Pro úplnost: na verze pip aktuálně používá [heuristiku] která se snaží 
být kompatibilní s [distutils.version], jehož [nedokumentované] třídy 
LooseVersion a StrictVersion jsou sbírka černé magie (s odpovídajícím 
komentářem!), resp. nepovedený pokus to nějak vyřešit.
Asi si dokážeš představit, že udržovat kód který takové věci dělá není 
jednoduché. To je asi hlavní důvod proč samotný pip nemá API a je 
tendence standardizované/korektní části dávat z pipu ven do knihoven 
jako `packaging`.



[PEP 427]: https://www.python.org/dev/peps/pep-0427/#file-name-convention
[PEP 503]: https://www.python.org/dev/peps/pep-0503/#normalized-names
[packaging]: https://packaging.pypa.io/en/latest/version/
[heuristiku]: 
https://github.com/pypa/pip/blob/873662179aebbf5eacdf681078f47bbfe5ee6149/src/pip/_vendor/distlib/version.py
[distutils.version]: 
https://github.com/python/cpython/blob/master/Lib/distutils/version.py
[nedokumentované]: 
https://docs.python.org/3/distutils/apiref.html#module-distutils.version

___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Je k dispozici novější verze?

2018-12-03 Tema obsahu Petr Blahoš
Wow! Moc pěkně popsaný.

po 3. 12. 2018 v 19:46 odesílatel Petr Blahoš  napsal:
>
>> To je na nějakých desktopech? Na Windows nebo tak něčem?
>>>
>> Ano. Desktopech, a Windows. Ikdyž to podle mě nedělá rozdíl.
>>
>
> Malinkatý rozdíl např. v nástrojích, které lze nebo je vhodné použít :)
>

No, tak z tohoto pohledu je to rozdíl zatraceně velkej.


> Jde o aktualizaci programů v noci, nebo se fakt musí řešit nějaké
>>> HA/nepřerušený běh?
>>>
>> V noci nestačí, HA/nepřeušený běh se řešit musí.
>>
>>
>>>
>>> Asi znáš věci jako Ansible, Chocolatey... V čem konkrétně nevyhovují?
>>>
>>
>> No, jen tak zběžně znám, ale nedovedu si představit, jak konkrétně zrovna
>> tohle
>> udělat. Já totiž neřeším problém jak na tu stanici něco dostat nebo jak
>> tam něco
>> spustit, ale jak co nejjednoduššeji v tom běžícím program poznat, že se
>> má ukončit.
>> Nebo se v něčem nějak škaredě mýlím?
>>
>> A nechápejte mě špatně, já to umím udělat, ale říkám si, že pip už řeší
>> tu otázku, zda
>> tohle je novější verze než tamto, a doufal jsem, že ta jeho funkcionalita
>> půjde využít.
>>
>
> Pip je package manager. Ty řešíš nějaký řekněme deployment. Takže v tom
> cítím jistou impedanci :) Pravděpodobně by spíš řešení, které bys chtěl,
> mohlo někde uvnitř obsahovat pip, než aby to řešil pip samotný.
>

Já jsem to na začátku neřekl jasně, Chtěl jsem pouze použít ty funkce pipu,
které umí vyextrahovat verzi z názvy souboru,
a verze porovnat. Protože to číslování verzí, když uvážíme veškeré bety a
rc a různé formáty je zatraceně složitý, takže
by bylo lepší použít už existující funkce spíš než to psát, a to i přesto,
že ty balíčky, o kterých mluvíme jsou moje, takže
to jejich schéma verzování znám, a můžu to postavit přímo na ně.


>
> ...jak konkrétně zrovna tohle udělat. Já totiž neřeším problém jak na tu
>> stanici něco dostat nebo jak tam něco spustit, ale jak co nejjednoduššeji v
>> tom běžícím program poznat, že se má ukončit.
>>
>
> Takže to, jak to na tu stanici dostat, už máš vyřešené? Výborně :) Tak
> stačí poslat tomu běžícímu procesu SIGTERM, což je standardní cesta, jak
> nějakému procesu naznačit, že je očekáván jeho graceful shutdown. Ten nový
> proces lze spustit nějak automaticky nějakým process managementem (na
> Linuxu systemd, na Windows taky něco bude), nebo ten nový proces lze
> spustit rovnou a sdělit mu PID toho původního procesu, aby mohl počkat na
> jeho skončení.
>
> Nad tímhle bych doporučoval zamyslet se - aby to všechno neřešil dotyčný
> program, ale spíš tooling okolo a ten dotyčný program by měl umět jenom dvě
> věci - tu věc, kterou dělá, a korektně se ukončit na příkaz zvenčí :)
>
> Restart procesu lze řešit i včetně předání resourců (naslouchajícího
> socketu apod.) nastávajícímu procesu, dělá to např. uwsgi. Ale je to hodně
> pokročilé a asi to sem nepatří, jen jsem chtěl napsat, že to jde. Řešit
> toto takhle do hloubky není úplně jednoduchá problematika.
> https://uwsgi-docs.readthedocs.io/en/latest/articles/TheArtOfGracefulReloading.html
>

Já vám ty linuxy docela závidím.


> Jak tuto situaci řeším já (v našem případě pro deployment docker
> kontejnerů):
> - použil bych config management tool (Ansible, Salt apod.), aby na
> cílových strojích udržoval aktuální verzi "deployment skriptu"
> - ten deployment skript je pak zároveň i spuštěn přes ten config mgmt tool
> - deployment skript se podívá, jestli je k dispozici nová verze; pokud ne,
> ukončí se
> - deployment skript stáhne novou verzi (v našem případě docker registry,
> ale může to být cokoliv, včetně FTP, S3, nebo se to tam dá natlačit opět
> tím Ansiblem)
> - deployment skript ukončí předchozí instanci (starou verzi) a spustí
> novou instanci z nové verze (v našem případě jde o docker kontejnery, ve
> tvém asi půjde o procesy, nebo nějaké windows services?)
> - hotovo :)
>
> Mimochodem, zrovna management dockeru zvládají config management tooly
> (Salt, Ansible) samy o sobě, ale postupem času se mi nastřádaly důvody,
> proč jsem si to chtěl napsat sám. To už je nad rámec této diskuze :)
>
> Ten deployment skript může provádět jednu z mnoha strategií:
> - dělat hloupý stop + start
> - trochu chytřejší stop + start + check + případný rollback
> - ještě trochu chytřejší start (nové verze) + check + switch + stop (staré
> verze) (aneb blue-green deployment)
> - ještě víc ultimátnější start + check + koordinovaný distribuovaný switch
> v celém clusteru + stop
>
>
> Jestli se nějakým "deployment skriptem" vůbec nechceš zabývat, tak si do
> toho programu udělej jednoduché ukončení sebe sama, pokud se na určitém
> místě na disku objeví nová verze tohoto programu. No a prostě dostaň na
> disk novou verzi toho programu. Ale můj point tady je, že v ideálním
> případě by se o to neměl starat ten program, ale tooling okolo (to je ten
> deployment skript).
>

Ano, takhle jsem to od začátku myslel, ovšem jak píšeš,  že v ideálním
případě by se o to neměl starat ten program, ale tooling okolo, je pravda.


Docela už jsme se dostali dost daleko od 

Re: [python] Je k dispozici novější verze?

2018-12-03 Tema obsahu Petr Messner
po 3. 12. 2018 v 19:46 odesílatel Petr Blahoš  napsal:

> To je na nějakých desktopech? Na Windows nebo tak něčem?
>>
> Ano. Desktopech, a Windows. Ikdyž to podle mě nedělá rozdíl.
>

Malinkatý rozdíl např. v nástrojích, které lze nebo je vhodné použít :)


>
>
>> Jde o aktualizaci programů v noci, nebo se fakt musí řešit nějaké
>> HA/nepřerušený běh?
>>
> V noci nestačí, HA/nepřeušený běh se řešit musí.
>
>
>>
>> Asi znáš věci jako Ansible, Chocolatey... V čem konkrétně nevyhovují?
>>
>
> No, jen tak zběžně znám, ale nedovedu si představit, jak konkrétně zrovna
> tohle
> udělat. Já totiž neřeším problém jak na tu stanici něco dostat nebo jak
> tam něco
> spustit, ale jak co nejjednoduššeji v tom běžícím program poznat, že se má
> ukončit.
> Nebo se v něčem nějak škaredě mýlím?
>
> A nechápejte mě špatně, já to umím udělat, ale říkám si, že pip už řeší tu
> otázku, zda
> tohle je novější verze než tamto, a doufal jsem, že ta jeho funkcionalita
> půjde využít.
>

Pip je package manager. Ty řešíš nějaký řekněme deployment. Takže v tom
cítím jistou impedanci :) Pravděpodobně by spíš řešení, které bys chtěl,
mohlo někde uvnitř obsahovat pip, než aby to řešil pip samotný.

...jak konkrétně zrovna tohle udělat. Já totiž neřeším problém jak na tu
> stanici něco dostat nebo jak tam něco spustit, ale jak co nejjednoduššeji v
> tom běžícím program poznat, že se má ukončit.
>

Takže to, jak to na tu stanici dostat, už máš vyřešené? Výborně :) Tak
stačí poslat tomu běžícímu procesu SIGTERM, což je standardní cesta, jak
nějakému procesu naznačit, že je očekáván jeho graceful shutdown. Ten nový
proces lze spustit nějak automaticky nějakým process managementem (na
Linuxu systemd, na Windows taky něco bude), nebo ten nový proces lze
spustit rovnou a sdělit mu PID toho původního procesu, aby mohl počkat na
jeho skončení.

Nad tímhle bych doporučoval zamyslet se - aby to všechno neřešil dotyčný
program, ale spíš tooling okolo a ten dotyčný program by měl umět jenom dvě
věci - tu věc, kterou dělá, a korektně se ukončit na příkaz zvenčí :)

Restart procesu lze řešit i včetně předání resourců (naslouchajícího
socketu apod.) nastávajícímu procesu, dělá to např. uwsgi. Ale je to hodně
pokročilé a asi to sem nepatří, jen jsem chtěl napsat, že to jde. Řešit
toto takhle do hloubky není úplně jednoduchá problematika.
https://uwsgi-docs.readthedocs.io/en/latest/articles/TheArtOfGracefulReloading.html

Jak tuto situaci řeším já (v našem případě pro deployment docker
kontejnerů):
- použil bych config management tool (Ansible, Salt apod.), aby na cílových
strojích udržoval aktuální verzi "deployment skriptu"
- ten deployment skript je pak zároveň i spuštěn přes ten config mgmt tool
- deployment skript se podívá, jestli je k dispozici nová verze; pokud ne,
ukončí se
- deployment skript stáhne novou verzi (v našem případě docker registry,
ale může to být cokoliv, včetně FTP, S3, nebo se to tam dá natlačit opět
tím Ansiblem)
- deployment skript ukončí předchozí instanci (starou verzi) a spustí novou
instanci z nové verze (v našem případě jde o docker kontejnery, ve tvém asi
půjde o procesy, nebo nějaké windows services?)
- hotovo :)

Mimochodem, zrovna management dockeru zvládají config management tooly
(Salt, Ansible) samy o sobě, ale postupem času se mi nastřádaly důvody,
proč jsem si to chtěl napsat sám. To už je nad rámec této diskuze :)

Ten deployment skript může provádět jednu z mnoha strategií:
- dělat hloupý stop + start
- trochu chytřejší stop + start + check + případný rollback
- ještě trochu chytřejší start (nové verze) + check + switch + stop (staré
verze) (aneb blue-green deployment)
- ještě víc ultimátnější start + check + koordinovaný distribuovaný switch
v celém clusteru + stop


Jestli se nějakým "deployment skriptem" vůbec nechceš zabývat, tak si do
toho programu udělej jednoduché ukončení sebe sama, pokud se na určitém
místě na disku objeví nová verze tohoto programu. No a prostě dostaň na
disk novou verzi toho programu. Ale můj point tady je, že v ideálním
případě by se o to neměl starat ten program, ale tooling okolo (to je ten
deployment skript).


Docela už jsme se dostali dost daleko od původní otázky "Existuje nějaké
API, které je schopné říct mi, jaká je aktuální nainstalovaná verze
balíčku, a jestli verze na vzdáleném úložišti je novější?", ale přijde mi,
že ta původní otázka moc nereflektovala skutečný původní problém. Nebo
respektive API, které je schopné ti říct, zda je na vzdáleném úložišti
novější balíček, by jaksi mělo poskytovat to vzdálené úložiště, tak se
podívej do jeho dokumentace :) Nebo aspoň do zdrojového kódu klienta toho
vzdáleného úložiště :)

Verzi sebe sama by měl program znát. Nebo použiješ např. pip freeze. Verzi
.whl souboru by mělo jít získat z názvu toho souboru, myslím, že je toto
dokonce i standardizované, ale nejsem si jistý. Nebo používej nějaký
pomocný soubor s číslem verze.

Např. když si do requirements.txt napíšu "
http://cdn.example.com/foobar-1.0.2-py3-none-any.whl;, případně "

Re: [python] Je k dispozici novější verze?

2018-12-03 Tema obsahu Radim Novotny
Jasně, chápu. pip API jako takové (z pythonu) nepodporuje, viz
https://pip.pypa.io/en/latest/user_guide/#using-pip-from-your-program
takže pokud k tomu chceš využít pip tak jedně tak jak je tam popsáno. Dalšé
možností je napsat si vlastní parser pro pypi.org ale oficialní public HTTP
API, pokud vím, neexistuje.

-- 
Radim

On Mon, Dec 3, 2018 at 7:35 PM Petr Blahoš  wrote:

> On Mon, Dec 3, 2018 at 4:38 PM Radim Novotny 
> wrote:
>
>> Pardon, tak tady máš API:
>>
>> pip list --outdated --format=json
>>
>
> To je o něco lepší, a aby bylo jasno, jsem Tobě i ostatním vděčný za
> veškeré podněty,
> a když něco rozporuju, tak proto, že doufám, že se společně dostaneme k
> něčemu lepšímu.
>
>
>> A pokud to pořád není podle tebe API, tak "čo vy si predstavujete pod
>> takým slovom API" ?
>>
>>
> Není to API. Je to volání externího programu a parsování výstupu.
> Analogie: os.listdir je API.
> Parsování výstupu ls není API.
>
> --
> Petr
>
>
>> --
>> Radim
>>
>> On Mon, Dec 3, 2018 at 4:33 PM Petr Blahoš  wrote:
>>
>>> Jenže to není API. Jistěže to můžu spustit a parsovat výstup,
>>> ale to je tupé. To už si verzi balíčku můžu vytahovat ze zipu.
>>> --
>>> Petr
>>>
>>> On Mon, Dec 3, 2018 at 4:29 PM Radim Novotny 
>>> wrote:
>>>
 Tohle by mělo fungovat

 pip list --outdated

 a pokud máš balíčky jinde jak na pypi tak to bere i --index-url nebo
 --find-links jako obvykle.

 Radim

 On Mon, Dec 3, 2018 at 4:18 PM Petr Messner 
 wrote:

> Když uděláš novou verzi aplikace, tak v následujícím deploy procesu
> (nějaký skript, nebo ideálně spuštěný automaticky přes CI) se tato nasadí.
> Tohle? Nebo něco jiného?
>
> PM
>
> po 3. 12. 2018 v 16:02 odesílatel Petr Blahoš 
> napsal:
>
>> Tohle je ale API warehousu, můj balíček vůbec na warehousu nebude,
>> bude
>> na nějakým místním disku. Já jsem spíš doufal, že tomu předhodím
>> soubor,
>> a ono mi to řekne: Je / není novější, než ten nainstalovaný.
>>
>> --
>> Petr
>>
>> On Mon, Dec 3, 2018 at 3:51 PM Jirka Vejrazka <
>> jirka.vejra...@gmail.com> wrote:
>>
>>> Neco jako https://warehouse.pypa.io/api-reference/#available-apis ?
>>>
>>>   Jirka
>>>
>>> On Mon, 3 Dec 2018 at 15:48, Petr Blahoš  wrote:
>>>
 Ahoj,

 tak už máme solidně fungující pip, takže když uděláme pip install
 -U balíčekwhl,
 tak ho to nainstaluje. Teď si ale představte, že mám nějakou dlouho
 běžící aplikaci,
 a v ní bych se potřeboval ptát, jestli existuje nová verze (v
 kterémžto případě aplikaci
 ukončím, zaktualizuju, a znovu spustím).

 Existuje nějaké API, které je schopné říct mi, jaká je aktuální
 nainstalovaná verze
 balíčku, a jestli verze na vzdáleném úložišti je novější?

 Díky,
 Petr
 --
 https://blahos.com/
 https://traceability.cz/
 ___
 Python mailing list
 python@py.cz
 http://www.py.cz/mailman/listinfo/python

 Visit: http://www.py.cz

>>> ___
>>> Python mailing list
>>> python@py.cz
>>> http://www.py.cz/mailman/listinfo/python
>>>
>>> Visit: http://www.py.cz
>>>
>>
>>
>> --
>> https://blahos.com/
>> https://traceability.cz/
>> ___
>> Python mailing list
>> python@py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
>> Visit: http://www.py.cz
>>
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
 ___
 Python mailing list
 python@py.cz
 http://www.py.cz/mailman/listinfo/python

 Visit: http://www.py.cz

>>>
>>>
>>> --
>>> https://blahos.com/
>>> https://traceability.cz/
>>> ___
>>> Python mailing list
>>> python@py.cz
>>> http://www.py.cz/mailman/listinfo/python
>>>
>>> Visit: http://www.py.cz
>>>
>> ___
>> Python mailing list
>> python@py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
>> Visit: http://www.py.cz
>>
>
>
> --
> https://blahos.com/
> https://traceability.cz/
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Je k dispozici novější verze?

2018-12-03 Tema obsahu Petr Blahoš
>
> To je na nějakých desktopech? Na Windows nebo tak něčem?
>
Ano. Desktopech, a Windows. Ikdyž to podle mě nedělá rozdíl.


> Jde o aktualizaci programů v noci, nebo se fakt musí řešit nějaké
> HA/nepřerušený běh?
>
V noci nestačí, HA/nepřeušený běh se řešit musí.


>
> Asi znáš věci jako Ansible, Chocolatey... V čem konkrétně nevyhovují?
>

No, jen tak zběžně znám, ale nedovedu si představit, jak konkrétně zrovna
tohle
udělat. Já totiž neřeším problém jak na tu stanici něco dostat nebo jak tam
něco
spustit, ale jak co nejjednoduššeji v tom běžícím program poznat, že se má
ukončit.
Nebo se v něčem nějak škaredě mýlím?

A nechápejte mě špatně, já to umím udělat, ale říkám si, že pip už řeší tu
otázku, zda
tohle je novější verze než tamto, a doufal jsem, že ta jeho funkcionalita
půjde využít.

--
Petr



> PM
>
>
>
>
> po 3. 12. 2018 v 16:30 odesílatel Petr Blahoš  napsal:
>
>> Ano. Ovšem ten deploy proces vypadá tak, že se někam nahraje nová verze
>> balíčku, a nějaké množství počítačů si tu novou verzi musí nějak opatrně
>> převzít. Opatrně znamená, že je nemůžu jenom tak zabít a přeinstalovat,
>> ale
>> musím počkat, až tam něco doběhne, zařídit, aby se to nerozběhlo znovu,
>> shodit aplikaci, nainstalovat, a spustit znovu. Dále, ne všechny ty
>> počítače
>> musí nutně běžet, proto ten deploy vypadá tak, že když se počítač spustí,
>> tak
>> si zaktualizuje na poslední verzi, ale když běží, tak se musí nějak
>> dozvědět,
>> že se má zaktualizovat. A teď řeším tu část: Dozvědět se, že se má
>> zaktualizovat.
>>
>> --
>> Petr
>>
>>
>>
>> On Mon, Dec 3, 2018 at 4:18 PM Petr Messner 
>> wrote:
>>
>>> Když uděláš novou verzi aplikace, tak v následujícím deploy procesu
>>> (nějaký skript, nebo ideálně spuštěný automaticky přes CI) se tato nasadí.
>>> Tohle? Nebo něco jiného?
>>>
>>> PM
>>>
>>> po 3. 12. 2018 v 16:02 odesílatel Petr Blahoš  napsal:
>>>
 Tohle je ale API warehousu, můj balíček vůbec na warehousu nebude, bude
 na nějakým místním disku. Já jsem spíš doufal, že tomu předhodím soubor,
 a ono mi to řekne: Je / není novější, než ten nainstalovaný.

 --
 Petr

 On Mon, Dec 3, 2018 at 3:51 PM Jirka Vejrazka 
 wrote:

> Neco jako https://warehouse.pypa.io/api-reference/#available-apis ?
>
>   Jirka
>
> On Mon, 3 Dec 2018 at 15:48, Petr Blahoš  wrote:
>
>> Ahoj,
>>
>> tak už máme solidně fungující pip, takže když uděláme pip install -U
>> balíčekwhl,
>> tak ho to nainstaluje. Teď si ale představte, že mám nějakou dlouho
>> běžící aplikaci,
>> a v ní bych se potřeboval ptát, jestli existuje nová verze (v
>> kterémžto případě aplikaci
>> ukončím, zaktualizuju, a znovu spustím).
>>
>> Existuje nějaké API, které je schopné říct mi, jaká je aktuální
>> nainstalovaná verze
>> balíčku, a jestli verze na vzdáleném úložišti je novější?
>>
>> Díky,
>> Petr
>> --
>> https://blahos.com/
>> https://traceability.cz/
>> ___
>> Python mailing list
>> python@py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
>> Visit: http://www.py.cz
>>
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>


 --
 https://blahos.com/
 https://traceability.cz/
 ___
 Python mailing list
 python@py.cz
 http://www.py.cz/mailman/listinfo/python

 Visit: http://www.py.cz

>>> ___
>>> Python mailing list
>>> python@py.cz
>>> http://www.py.cz/mailman/listinfo/python
>>>
>>> Visit: http://www.py.cz
>>>
>>
>>
>> --
>> https://blahos.com/
>> https://traceability.cz/
>> ___
>> Python mailing list
>> python@py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
>> Visit: http://www.py.cz
>>
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>


-- 
https://blahos.com/
https://traceability.cz/
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Je k dispozici novější verze?

2018-12-03 Tema obsahu Petr Blahoš
On Mon, Dec 3, 2018 at 4:38 PM Radim Novotny 
wrote:

> Pardon, tak tady máš API:
>
> pip list --outdated --format=json
>

To je o něco lepší, a aby bylo jasno, jsem Tobě i ostatním vděčný za
veškeré podněty,
a když něco rozporuju, tak proto, že doufám, že se společně dostaneme k
něčemu lepšímu.


> A pokud to pořád není podle tebe API, tak "čo vy si predstavujete pod
> takým slovom API" ?
>
>
Není to API. Je to volání externího programu a parsování výstupu. Analogie:
os.listdir je API.
Parsování výstupu ls není API.

--
Petr


> --
> Radim
>
> On Mon, Dec 3, 2018 at 4:33 PM Petr Blahoš  wrote:
>
>> Jenže to není API. Jistěže to můžu spustit a parsovat výstup,
>> ale to je tupé. To už si verzi balíčku můžu vytahovat ze zipu.
>> --
>> Petr
>>
>> On Mon, Dec 3, 2018 at 4:29 PM Radim Novotny 
>> wrote:
>>
>>> Tohle by mělo fungovat
>>>
>>> pip list --outdated
>>>
>>> a pokud máš balíčky jinde jak na pypi tak to bere i --index-url nebo
>>> --find-links jako obvykle.
>>>
>>> Radim
>>>
>>> On Mon, Dec 3, 2018 at 4:18 PM Petr Messner 
>>> wrote:
>>>
 Když uděláš novou verzi aplikace, tak v následujícím deploy procesu
 (nějaký skript, nebo ideálně spuštěný automaticky přes CI) se tato nasadí.
 Tohle? Nebo něco jiného?

 PM

 po 3. 12. 2018 v 16:02 odesílatel Petr Blahoš  napsal:

> Tohle je ale API warehousu, můj balíček vůbec na warehousu nebude, bude
> na nějakým místním disku. Já jsem spíš doufal, že tomu předhodím
> soubor,
> a ono mi to řekne: Je / není novější, než ten nainstalovaný.
>
> --
> Petr
>
> On Mon, Dec 3, 2018 at 3:51 PM Jirka Vejrazka <
> jirka.vejra...@gmail.com> wrote:
>
>> Neco jako https://warehouse.pypa.io/api-reference/#available-apis ?
>>
>>   Jirka
>>
>> On Mon, 3 Dec 2018 at 15:48, Petr Blahoš  wrote:
>>
>>> Ahoj,
>>>
>>> tak už máme solidně fungující pip, takže když uděláme pip install -U
>>> balíčekwhl,
>>> tak ho to nainstaluje. Teď si ale představte, že mám nějakou dlouho
>>> běžící aplikaci,
>>> a v ní bych se potřeboval ptát, jestli existuje nová verze (v
>>> kterémžto případě aplikaci
>>> ukončím, zaktualizuju, a znovu spustím).
>>>
>>> Existuje nějaké API, které je schopné říct mi, jaká je aktuální
>>> nainstalovaná verze
>>> balíčku, a jestli verze na vzdáleném úložišti je novější?
>>>
>>> Díky,
>>> Petr
>>> --
>>> https://blahos.com/
>>> https://traceability.cz/
>>> ___
>>> Python mailing list
>>> python@py.cz
>>> http://www.py.cz/mailman/listinfo/python
>>>
>>> Visit: http://www.py.cz
>>>
>> ___
>> Python mailing list
>> python@py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
>> Visit: http://www.py.cz
>>
>
>
> --
> https://blahos.com/
> https://traceability.cz/
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
 ___
 Python mailing list
 python@py.cz
 http://www.py.cz/mailman/listinfo/python

 Visit: http://www.py.cz

>>> ___
>>> Python mailing list
>>> python@py.cz
>>> http://www.py.cz/mailman/listinfo/python
>>>
>>> Visit: http://www.py.cz
>>>
>>
>>
>> --
>> https://blahos.com/
>> https://traceability.cz/
>> ___
>> Python mailing list
>> python@py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
>> Visit: http://www.py.cz
>>
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>


-- 
https://blahos.com/
https://traceability.cz/
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Je k dispozici novější verze?

2018-12-03 Tema obsahu Petr Messner
To je na nějakých desktopech? Na Windows nebo tak něčem? Jde o aktualizaci
programů v noci, nebo se fakt musí řešit nějaké HA/nepřerušený běh?

Asi znáš věci jako Ansible, Chocolatey... V čem konkrétně nevyhovují?

PM




po 3. 12. 2018 v 16:30 odesílatel Petr Blahoš  napsal:

> Ano. Ovšem ten deploy proces vypadá tak, že se někam nahraje nová verze
> balíčku, a nějaké množství počítačů si tu novou verzi musí nějak opatrně
> převzít. Opatrně znamená, že je nemůžu jenom tak zabít a přeinstalovat, ale
> musím počkat, až tam něco doběhne, zařídit, aby se to nerozběhlo znovu,
> shodit aplikaci, nainstalovat, a spustit znovu. Dále, ne všechny ty
> počítače
> musí nutně běžet, proto ten deploy vypadá tak, že když se počítač spustí,
> tak
> si zaktualizuje na poslední verzi, ale když běží, tak se musí nějak
> dozvědět,
> že se má zaktualizovat. A teď řeším tu část: Dozvědět se, že se má
> zaktualizovat.
>
> --
> Petr
>
>
>
> On Mon, Dec 3, 2018 at 4:18 PM Petr Messner 
> wrote:
>
>> Když uděláš novou verzi aplikace, tak v následujícím deploy procesu
>> (nějaký skript, nebo ideálně spuštěný automaticky přes CI) se tato nasadí.
>> Tohle? Nebo něco jiného?
>>
>> PM
>>
>> po 3. 12. 2018 v 16:02 odesílatel Petr Blahoš  napsal:
>>
>>> Tohle je ale API warehousu, můj balíček vůbec na warehousu nebude, bude
>>> na nějakým místním disku. Já jsem spíš doufal, že tomu předhodím soubor,
>>> a ono mi to řekne: Je / není novější, než ten nainstalovaný.
>>>
>>> --
>>> Petr
>>>
>>> On Mon, Dec 3, 2018 at 3:51 PM Jirka Vejrazka 
>>> wrote:
>>>
 Neco jako https://warehouse.pypa.io/api-reference/#available-apis ?

   Jirka

 On Mon, 3 Dec 2018 at 15:48, Petr Blahoš  wrote:

> Ahoj,
>
> tak už máme solidně fungující pip, takže když uděláme pip install -U
> balíčekwhl,
> tak ho to nainstaluje. Teď si ale představte, že mám nějakou dlouho
> běžící aplikaci,
> a v ní bych se potřeboval ptát, jestli existuje nová verze (v
> kterémžto případě aplikaci
> ukončím, zaktualizuju, a znovu spustím).
>
> Existuje nějaké API, které je schopné říct mi, jaká je aktuální
> nainstalovaná verze
> balíčku, a jestli verze na vzdáleném úložišti je novější?
>
> Díky,
> Petr
> --
> https://blahos.com/
> https://traceability.cz/
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
 ___
 Python mailing list
 python@py.cz
 http://www.py.cz/mailman/listinfo/python

 Visit: http://www.py.cz

>>>
>>>
>>> --
>>> https://blahos.com/
>>> https://traceability.cz/
>>> ___
>>> Python mailing list
>>> python@py.cz
>>> http://www.py.cz/mailman/listinfo/python
>>>
>>> Visit: http://www.py.cz
>>>
>> ___
>> Python mailing list
>> python@py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
>> Visit: http://www.py.cz
>>
>
>
> --
> https://blahos.com/
> https://traceability.cz/
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Je k dispozici novější verze?

2018-12-03 Tema obsahu Radim Novotny
Pardon, tak tady máš API:

pip list --outdated --format=json

A pokud to pořád není podle tebe API, tak "čo vy si predstavujete pod takým
slovom API" ?

-- 
Radim

On Mon, Dec 3, 2018 at 4:33 PM Petr Blahoš  wrote:

> Jenže to není API. Jistěže to můžu spustit a parsovat výstup,
> ale to je tupé. To už si verzi balíčku můžu vytahovat ze zipu.
> --
> Petr
>
> On Mon, Dec 3, 2018 at 4:29 PM Radim Novotny 
> wrote:
>
>> Tohle by mělo fungovat
>>
>> pip list --outdated
>>
>> a pokud máš balíčky jinde jak na pypi tak to bere i --index-url nebo
>> --find-links jako obvykle.
>>
>> Radim
>>
>> On Mon, Dec 3, 2018 at 4:18 PM Petr Messner 
>> wrote:
>>
>>> Když uděláš novou verzi aplikace, tak v následujícím deploy procesu
>>> (nějaký skript, nebo ideálně spuštěný automaticky přes CI) se tato nasadí.
>>> Tohle? Nebo něco jiného?
>>>
>>> PM
>>>
>>> po 3. 12. 2018 v 16:02 odesílatel Petr Blahoš  napsal:
>>>
 Tohle je ale API warehousu, můj balíček vůbec na warehousu nebude, bude
 na nějakým místním disku. Já jsem spíš doufal, že tomu předhodím soubor,
 a ono mi to řekne: Je / není novější, než ten nainstalovaný.

 --
 Petr

 On Mon, Dec 3, 2018 at 3:51 PM Jirka Vejrazka 
 wrote:

> Neco jako https://warehouse.pypa.io/api-reference/#available-apis ?
>
>   Jirka
>
> On Mon, 3 Dec 2018 at 15:48, Petr Blahoš  wrote:
>
>> Ahoj,
>>
>> tak už máme solidně fungující pip, takže když uděláme pip install -U
>> balíčekwhl,
>> tak ho to nainstaluje. Teď si ale představte, že mám nějakou dlouho
>> běžící aplikaci,
>> a v ní bych se potřeboval ptát, jestli existuje nová verze (v
>> kterémžto případě aplikaci
>> ukončím, zaktualizuju, a znovu spustím).
>>
>> Existuje nějaké API, které je schopné říct mi, jaká je aktuální
>> nainstalovaná verze
>> balíčku, a jestli verze na vzdáleném úložišti je novější?
>>
>> Díky,
>> Petr
>> --
>> https://blahos.com/
>> https://traceability.cz/
>> ___
>> Python mailing list
>> python@py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
>> Visit: http://www.py.cz
>>
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>


 --
 https://blahos.com/
 https://traceability.cz/
 ___
 Python mailing list
 python@py.cz
 http://www.py.cz/mailman/listinfo/python

 Visit: http://www.py.cz

>>> ___
>>> Python mailing list
>>> python@py.cz
>>> http://www.py.cz/mailman/listinfo/python
>>>
>>> Visit: http://www.py.cz
>>>
>> ___
>> Python mailing list
>> python@py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
>> Visit: http://www.py.cz
>>
>
>
> --
> https://blahos.com/
> https://traceability.cz/
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Je k dispozici novější verze?

2018-12-03 Tema obsahu Petr Blahoš
Jenže to není API. Jistěže to můžu spustit a parsovat výstup,
ale to je tupé. To už si verzi balíčku můžu vytahovat ze zipu.
--
Petr

On Mon, Dec 3, 2018 at 4:29 PM Radim Novotny 
wrote:

> Tohle by mělo fungovat
>
> pip list --outdated
>
> a pokud máš balíčky jinde jak na pypi tak to bere i --index-url nebo
> --find-links jako obvykle.
>
> Radim
>
> On Mon, Dec 3, 2018 at 4:18 PM Petr Messner 
> wrote:
>
>> Když uděláš novou verzi aplikace, tak v následujícím deploy procesu
>> (nějaký skript, nebo ideálně spuštěný automaticky přes CI) se tato nasadí.
>> Tohle? Nebo něco jiného?
>>
>> PM
>>
>> po 3. 12. 2018 v 16:02 odesílatel Petr Blahoš  napsal:
>>
>>> Tohle je ale API warehousu, můj balíček vůbec na warehousu nebude, bude
>>> na nějakým místním disku. Já jsem spíš doufal, že tomu předhodím soubor,
>>> a ono mi to řekne: Je / není novější, než ten nainstalovaný.
>>>
>>> --
>>> Petr
>>>
>>> On Mon, Dec 3, 2018 at 3:51 PM Jirka Vejrazka 
>>> wrote:
>>>
 Neco jako https://warehouse.pypa.io/api-reference/#available-apis ?

   Jirka

 On Mon, 3 Dec 2018 at 15:48, Petr Blahoš  wrote:

> Ahoj,
>
> tak už máme solidně fungující pip, takže když uděláme pip install -U
> balíčekwhl,
> tak ho to nainstaluje. Teď si ale představte, že mám nějakou dlouho
> běžící aplikaci,
> a v ní bych se potřeboval ptát, jestli existuje nová verze (v
> kterémžto případě aplikaci
> ukončím, zaktualizuju, a znovu spustím).
>
> Existuje nějaké API, které je schopné říct mi, jaká je aktuální
> nainstalovaná verze
> balíčku, a jestli verze na vzdáleném úložišti je novější?
>
> Díky,
> Petr
> --
> https://blahos.com/
> https://traceability.cz/
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
 ___
 Python mailing list
 python@py.cz
 http://www.py.cz/mailman/listinfo/python

 Visit: http://www.py.cz

>>>
>>>
>>> --
>>> https://blahos.com/
>>> https://traceability.cz/
>>> ___
>>> Python mailing list
>>> python@py.cz
>>> http://www.py.cz/mailman/listinfo/python
>>>
>>> Visit: http://www.py.cz
>>>
>> ___
>> Python mailing list
>> python@py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
>> Visit: http://www.py.cz
>>
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>


-- 
https://blahos.com/
https://traceability.cz/
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Je k dispozici novější verze?

2018-12-03 Tema obsahu Petr Blahoš
Ano. Ovšem ten deploy proces vypadá tak, že se někam nahraje nová verze
balíčku, a nějaké množství počítačů si tu novou verzi musí nějak opatrně
převzít. Opatrně znamená, že je nemůžu jenom tak zabít a přeinstalovat, ale
musím počkat, až tam něco doběhne, zařídit, aby se to nerozběhlo znovu,
shodit aplikaci, nainstalovat, a spustit znovu. Dále, ne všechny ty
počítače
musí nutně běžet, proto ten deploy vypadá tak, že když se počítač spustí,
tak
si zaktualizuje na poslední verzi, ale když běží, tak se musí nějak
dozvědět,
že se má zaktualizovat. A teď řeším tu část: Dozvědět se, že se má
zaktualizovat.

--
Petr



On Mon, Dec 3, 2018 at 4:18 PM Petr Messner  wrote:

> Když uděláš novou verzi aplikace, tak v následujícím deploy procesu
> (nějaký skript, nebo ideálně spuštěný automaticky přes CI) se tato nasadí.
> Tohle? Nebo něco jiného?
>
> PM
>
> po 3. 12. 2018 v 16:02 odesílatel Petr Blahoš  napsal:
>
>> Tohle je ale API warehousu, můj balíček vůbec na warehousu nebude, bude
>> na nějakým místním disku. Já jsem spíš doufal, že tomu předhodím soubor,
>> a ono mi to řekne: Je / není novější, než ten nainstalovaný.
>>
>> --
>> Petr
>>
>> On Mon, Dec 3, 2018 at 3:51 PM Jirka Vejrazka 
>> wrote:
>>
>>> Neco jako https://warehouse.pypa.io/api-reference/#available-apis ?
>>>
>>>   Jirka
>>>
>>> On Mon, 3 Dec 2018 at 15:48, Petr Blahoš  wrote:
>>>
 Ahoj,

 tak už máme solidně fungující pip, takže když uděláme pip install -U
 balíčekwhl,
 tak ho to nainstaluje. Teď si ale představte, že mám nějakou dlouho
 běžící aplikaci,
 a v ní bych se potřeboval ptát, jestli existuje nová verze (v kterémžto
 případě aplikaci
 ukončím, zaktualizuju, a znovu spustím).

 Existuje nějaké API, které je schopné říct mi, jaká je aktuální
 nainstalovaná verze
 balíčku, a jestli verze na vzdáleném úložišti je novější?

 Díky,
 Petr
 --
 https://blahos.com/
 https://traceability.cz/
 ___
 Python mailing list
 python@py.cz
 http://www.py.cz/mailman/listinfo/python

 Visit: http://www.py.cz

>>> ___
>>> Python mailing list
>>> python@py.cz
>>> http://www.py.cz/mailman/listinfo/python
>>>
>>> Visit: http://www.py.cz
>>>
>>
>>
>> --
>> https://blahos.com/
>> https://traceability.cz/
>> ___
>> Python mailing list
>> python@py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
>> Visit: http://www.py.cz
>>
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>


-- 
https://blahos.com/
https://traceability.cz/
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Je k dispozici novější verze?

2018-12-03 Tema obsahu Radim Novotny
Tohle by mělo fungovat

pip list --outdated

a pokud máš balíčky jinde jak na pypi tak to bere i --index-url nebo
--find-links jako obvykle.

Radim

On Mon, Dec 3, 2018 at 4:18 PM Petr Messner  wrote:

> Když uděláš novou verzi aplikace, tak v následujícím deploy procesu
> (nějaký skript, nebo ideálně spuštěný automaticky přes CI) se tato nasadí.
> Tohle? Nebo něco jiného?
>
> PM
>
> po 3. 12. 2018 v 16:02 odesílatel Petr Blahoš  napsal:
>
>> Tohle je ale API warehousu, můj balíček vůbec na warehousu nebude, bude
>> na nějakým místním disku. Já jsem spíš doufal, že tomu předhodím soubor,
>> a ono mi to řekne: Je / není novější, než ten nainstalovaný.
>>
>> --
>> Petr
>>
>> On Mon, Dec 3, 2018 at 3:51 PM Jirka Vejrazka 
>> wrote:
>>
>>> Neco jako https://warehouse.pypa.io/api-reference/#available-apis ?
>>>
>>>   Jirka
>>>
>>> On Mon, 3 Dec 2018 at 15:48, Petr Blahoš  wrote:
>>>
 Ahoj,

 tak už máme solidně fungující pip, takže když uděláme pip install -U
 balíčekwhl,
 tak ho to nainstaluje. Teď si ale představte, že mám nějakou dlouho
 běžící aplikaci,
 a v ní bych se potřeboval ptát, jestli existuje nová verze (v kterémžto
 případě aplikaci
 ukončím, zaktualizuju, a znovu spustím).

 Existuje nějaké API, které je schopné říct mi, jaká je aktuální
 nainstalovaná verze
 balíčku, a jestli verze na vzdáleném úložišti je novější?

 Díky,
 Petr
 --
 https://blahos.com/
 https://traceability.cz/
 ___
 Python mailing list
 python@py.cz
 http://www.py.cz/mailman/listinfo/python

 Visit: http://www.py.cz

>>> ___
>>> Python mailing list
>>> python@py.cz
>>> http://www.py.cz/mailman/listinfo/python
>>>
>>> Visit: http://www.py.cz
>>>
>>
>>
>> --
>> https://blahos.com/
>> https://traceability.cz/
>> ___
>> Python mailing list
>> python@py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
>> Visit: http://www.py.cz
>>
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz