Citace od: A.P.Hacker kdy 15. 03. 2020, 13:07:59Citace od: PetrK kdy 15. 03. 2020, 13:00:56Citace od: A.P.Hacker kdy 15. 03. 2020, 11:34:38PetrK - pouzij knihovnu podporujici nacitani a validaci jsonu, dataclasses tohle neresitrebahttps://github.com/genomoncology/relatedpodporuje automaticke prejmenovani atributuJak je mozne ze to dataclasses neresi? Ma to funkce:protoze je urcena k necemu jinemu? Vubec neresi runtime validaci dat z venku. Fakt se na to vyser jestli tohle nechapes.
Citace od: PetrK kdy 15. 03. 2020, 13:00:56Citace od: A.P.Hacker kdy 15. 03. 2020, 11:34:38PetrK - pouzij knihovnu podporujici nacitani a validaci jsonu, dataclasses tohle neresitrebahttps://github.com/genomoncology/relatedpodporuje automaticke prejmenovani atributuJak je mozne ze to dataclasses neresi? Ma to funkce:
Citace od: A.P.Hacker kdy 15. 03. 2020, 11:34:38PetrK - pouzij knihovnu podporujici nacitani a validaci jsonu, dataclasses tohle neresitrebahttps://github.com/genomoncology/relatedpodporuje automaticke prejmenovani atributu
Citace od: PetrK kdy 15. 03. 2020, 13:13:47Citace od: A.P.Hacker kdy 15. 03. 2020, 13:07:59Citace od: PetrK kdy 15. 03. 2020, 13:00:56Citace od: A.P.Hacker kdy 15. 03. 2020, 11:34:38PetrK - pouzij knihovnu podporujici nacitani a validaci jsonu, dataclasses tohle neresitrebahttps://github.com/genomoncology/relatedpodporuje automaticke prejmenovani atributuJak je mozne ze to dataclasses neresi? Ma to funkce:protoze je urcena k necemu jinemu? Vubec neresi runtime validaci dat z venku. Fakt se na to vyser jestli tohle nechapes.Co to je za kravinu, jak neresi runtime validaci dat z venku - tak jsi jednoduchy Pythonista nebo nejsi? Tak proc to komplikujes jak nekde v Jave? Ma to "asdict" a nema to "fromdict". Tak znova, mas v Pythonu instanci nejake tridy. Jak ji serializujes do human readable podoby a jak ji pak deserializujes. A bez externich knihoven bych prosil, kdyz tam mas ty baterky included. To jsem zvedavy, jak se ted ukazes.A pripominam, ze prece jsi jednoduchy Pythonista, takze ne abys tento jednoduchy ukon delal moc slozite.
C(**d) # d je slovnik
Citace od: A.P.Hacker kdy 15. 03. 2020, 13:29:49Citace od: PetrK kdy 15. 03. 2020, 13:13:47Co to je za kravinu, jak neresi runtime validaci dat z venku - tak jsi jednoduchy Pythonista nebo nejsi? Tak proc to komplikujes jak nekde v Jave? Ma to "asdict" a nema to "fromdict". Tak znova, mas v Pythonu instanci nejake tridy. Jak ji serializujes do human readable podoby a jak ji pak deserializujes. A bez externich knihoven bych prosil, kdyz tam mas ty baterky included. To jsem zvedavy, jak se ted ukazes.A pripominam, ze prece jsi jednoduchy Pythonista, takze ne abys tento jednoduchy ukon delal moc slozite.dataclass z dictu vytvoris normalneKód [Vybrat] RozbalitC(**d) # d je slovnikale bez validace
Citace od: PetrK kdy 15. 03. 2020, 13:13:47Co to je za kravinu, jak neresi runtime validaci dat z venku - tak jsi jednoduchy Pythonista nebo nejsi? Tak proc to komplikujes jak nekde v Jave? Ma to "asdict" a nema to "fromdict". Tak znova, mas v Pythonu instanci nejake tridy. Jak ji serializujes do human readable podoby a jak ji pak deserializujes. A bez externich knihoven bych prosil, kdyz tam mas ty baterky included. To jsem zvedavy, jak se ted ukazes.A pripominam, ze prece jsi jednoduchy Pythonista, takze ne abys tento jednoduchy ukon delal moc slozite.
@dataclassclass B: b: str@dataclassclass A: a: str b: Bd = { 'a':'ahoj', 'b': { 'b': 'cau' }}
Citace od: PetrK kdy 15. 03. 2020, 13:33:24Citace od: A.P.Hacker kdy 15. 03. 2020, 13:29:49Citace od: PetrK kdy 15. 03. 2020, 13:13:47Co to je za kravinu, jak neresi runtime validaci dat z venku - tak jsi jednoduchy Pythonista nebo nejsi? Tak proc to komplikujes jak nekde v Jave? Ma to "asdict" a nema to "fromdict". Tak znova, mas v Pythonu instanci nejake tridy. Jak ji serializujes do human readable podoby a jak ji pak deserializujes. A bez externich knihoven bych prosil, kdyz tam mas ty baterky included. To jsem zvedavy, jak se ted ukazes.A pripominam, ze prece jsi jednoduchy Pythonista, takze ne abys tento jednoduchy ukon delal moc slozite.dataclass z dictu vytvoris normalneKód [Vybrat] RozbalitC(**d) # d je slovnikale bez validaceMohl by jsi mi to prosim nazorne ukazat? Tady ti dam tyto tridy:Kód [Vybrat] Rozbalit@dataclassclass B: b: str@dataclassclass A: a: str b: Bd = { 'a':'ahoj', 'b': { 'b': 'cau' }}Ukaz mi, jak do nich deserializujes dictionary.
from dataclasses import dataclass@dataclassclass B: b: str@dataclassclass A: a: str b: Bd = { 'a':'ahoj', 'b': { 'b': 'cau' }}a = A(**d) # A(a='ahoj', b=B(b='cau'))
Citace od: A.P.Hacker kdy 15. 03. 2020, 13:40:50Kód [Vybrat] Rozbalitfrom pydantic.dataclasses import dataclass
from pydantic.dataclasses import dataclass
Citace od: PetrK kdy 15. 03. 2020, 13:44:02Citace od: A.P.Hacker kdy 15. 03. 2020, 13:40:50Kód [Vybrat] Rozbalitfrom pydantic.dataclasses import dataclassPydantic? To neni standardni knihovna... Tesil jsem se jak me zahambis, ze v jave delam veci slozite a na vsechno potrebuju externi knihovnu.
Citace od: PetrK kdy 15. 03. 2020, 13:44:02Ale dobre. Tak jeste jedna vec. Ted mi ukaz, jak ten samy ukon muzu udelat pro normalni Classu (nikoliv dataclass). Tipuju ze budes muset ze zalohy vytahnout dalsi, uplne jinaci Pythnovskou knihovnu.
Citace od: A.P.Hacker kdy 15. 03. 2020, 13:48:39Citace od: PetrK kdy 15. 03. 2020, 13:44:02Ale dobre. Tak jeste jedna vec. Ted mi ukaz, jak ten samy ukon muzu udelat pro normalni Classu (nikoliv dataclass). Tipuju ze budes muset ze zalohy vytahnout dalsi, uplne jinaci Pythnovskou knihovnu.zalezi na tom, jaky ma ta trida konstruktor. vzdy muzes priradit do __dict__, ale to asi nechces
ObjectMapper mapper = new ObjectMapper(); Staff obj = mapper.readValue("{'name' : 'mkyong'}", Staff.class);
Citace od: PetrK kdy 13. 03. 2020, 04:10:12Jeste pro srovnani, Python a zapis do SNS:Kód [Vybrat] Rozbalitimport boto3# Write to SNSsns = boto3.resource('sns')sns.publish(TopicArn='myTopic123', Message='Hello world')Programator nevi co mu srajdovni knihovna vraci za datovy typ a cumet musi do bidne dokumntace.To same v Jave pro SNS:Kód [Vybrat] RozbalitAmazonSNS snsClient = AmazonSNSClient().standard().build();PublishRequest publishRequest = new PublishRequest().withMessage("Hello world").withTopic("myTopic1234);PublishResult publishResult = snsClient.publish(publishRequest); A jestli mi nekdo rekne, jak je Java ukecana, tak to potom fakt nevim co mam dotycnemu cloveku rict :-)
import boto3# Write to SNSsns = boto3.resource('sns')sns.publish(TopicArn='myTopic123', Message='Hello world')
AmazonSNS snsClient = AmazonSNSClient().standard().build();PublishRequest publishRequest = new PublishRequest().withMessage("Hello world").withTopic("myTopic1234);PublishResult publishResult = snsClient.publish(publishRequest);
Citace od: PetrK kdy 15. 03. 2020, 13:49:59Citace od: A.P.Hacker kdy 15. 03. 2020, 13:48:39Citace od: PetrK kdy 15. 03. 2020, 13:44:02Ale dobre. Tak jeste jedna vec. Ted mi ukaz, jak ten samy ukon muzu udelat pro normalni Classu (nikoliv dataclass). Tipuju ze budes muset ze zalohy vytahnout dalsi, uplne jinaci Pythnovskou knihovnu.zalezi na tom, jaky ma ta trida konstruktor. vzdy muzes priradit do __dict__, ale to asi nechcesNema zadny konstruktor. A do __dict__ ti to nebude fungovat s nested dictionaries.Tomu ja rikam byt nucen delat veci X ruznymi zpusoby a kazdy z nich stoji za ho*. Ja v Jave mam ve standardni knihovne vcelku prd, ale kazdy poradnejsi Javista pouziva externi knihovnu Jackson, ktera umi naprosto vsechno, vc. validaci o jakych se tem Pythnovskym ani nesnilo - Jackson strci do kapsy vsechny.Kód [Vybrat] Rozbalit ObjectMapper mapper = new ObjectMapper(); Staff obj = mapper.readValue("{'name' : 'mkyong'}", Staff.class);Hotovo. Je to tak tezke? A ta knihovna umi vsechno co si zamanes, validace, custom ovlivnovani chovani atp.
Citace od: A.P.Hacker kdy 15. 03. 2020, 14:03:08tohle je ve standardni knihovne?
Citace od: qelurg kdy 15. 03. 2020, 14:00:48Jo, presne tohle je ten javahnus pro masochisty, duvod proc ji nesnasim. A jinak, Python je pro programatory, proto ti nesedi, Java je pro uzivatele IDE, kteri jsou bez naseptavace ztraceni.
Citace od: PetrK kdy 15. 03. 2020, 09:58:47Citace od: Ink kdy 15. 03. 2020, 09:56:08Citace od: PetrK kdy 15. 03. 2020, 09:46:01...hromada keců...To je prosté, milý Watsone; když chceš používat dict, používej dict. Pokud Ti vadí, že nemůžeš mít jako název atributu klíčové slovo, jdi se pokorně vrátit k Javě a vesele si používej .equals() a další podobné geniální nápady návrhářů, kteří se domnívají, že nejsi dost chytrý na to, abys pochopil výhody a principy přetěžování operátorů.Tohle je typicka odpoved jednoduchouckeho Pyjthonisty. Takze kdyz ti z nejakeho API, nad kterym ty nemas kontrolu, nekdo vrati Dictionary ktere obsahuje klicove slovo v Pythonu, tak ty potom udelas jako co? Ja vim co udelas, vemes izolacku, hrebiky a kladivko a vyrobis kupu hnoje aby ti to pak jakoze fungovalo.Proc by nekdo do Swagger API psal:fromDate: DatetoDate: Datekdyz muze napsat jen:from: Dateto: DateA ty v Pyjthonu se z toho po...
Citace od: Ink kdy 15. 03. 2020, 09:56:08Citace od: PetrK kdy 15. 03. 2020, 09:46:01...hromada keců...To je prosté, milý Watsone; když chceš používat dict, používej dict. Pokud Ti vadí, že nemůžeš mít jako název atributu klíčové slovo, jdi se pokorně vrátit k Javě a vesele si používej .equals() a další podobné geniální nápady návrhářů, kteří se domnívají, že nejsi dost chytrý na to, abys pochopil výhody a principy přetěžování operátorů.
Citace od: PetrK kdy 15. 03. 2020, 09:46:01...hromada keců...