[ mr.marvin @ 19.03.2007. 22:57 ] @
Nakon sto sam shvatio da je Python jezik koji je kao stvoren za ono cime ja zelim da se bavim (jezik i eksperimenti sa istim) bacio sam se na ucenje. Ovo ovdje je rezultat vjezbanja programiranja u Pythonu (vrsta hobija) i rijec je o projektu u vezi sa latinskim jezikom. U trenutnoj verziji moze da deklinira imenice, pridjeve, neke zamjenice, da pravi neka vremena i slicno... Kada jednog dana bude konacno gotov, ovaj projekat ce posluziti za jedan mnogo veci zalogaj.

Eto, ako neko zeli neka pogleda, a iskusni progameri mogu da nabace koji savjet u vezi sa greskama/losom programerskom praksom.
[ StefanJer91 @ 23.03.2007. 20:00 ] @
Super sto si napravio Latinski recnik, bas mi je nesto takvo trebalo za skolu. Takodje i ja volim python samo sam pocetnik a tvoj program ne umem da pokrenem. Pa bih molio da das neko upustvo ako nije problem. Hvala unapred!
[ mr.marvin @ 23.03.2007. 23:26 ] @
Hm, gornja verzija ima gresku sa putanjama, tako da skini fajl uz ovu poruku. O "problemu" sa putanjama mozda u nekom od postova...

Latinam je paket i da bi mogao da radis sa modulima potrebno je jedno od ovoga: 1) kopirati citav direktorijum u lib\site-packages u pythonovom folderu ili 2) u istom folderu napraviti fajl koji mora imati eksenziju *.pth i fajl neka sadrzi putanju do foldera gdje je latinam.

Sad mozes da pokrenes python i importujes paket:

import latinam

Ako je sve ok nece biti greske. U latinam.locals sam ubacio cesce koriscene klase koje koristim, pa se moze i to importovati (from latinam.locals import *). Recimo da hoces da radis sa imenicama i da vidis oblike imenice lex,legis:

imenica = Nom("lex")

Padezi se dobijaju sa imenica.casii, a finu listu istih sa imenica.show(). Znacenje imenice je smjesteno u imenica.translate. E sad, rjecnik sam uzeo iz jedne Freelang distribucije i taj fajl ne mogu da distribuiram dok se ne uvjerim uz kakve licence ide.

Sta koji modul/klasa radi, opisano je u __doc__, a posto je sad paket u pythonovom path-u, sve se moze vidjeti u browseru kad startujes Module Docs.

Od modula koji su trenutno zanimljivi izdvajaju se latinam.morph i latinam.tools.out; latinam.lexicon je tu samo da klasama "prebaci" trazenu rijec. Sve ostalo je pokusaj nekih komplikovanijih stvari, odnosno brainstorming o tome kako bi se to moglo uraditi.

Po ovom se vidi se kako je paket zamisljen, kao "morfoloski generator" a ne kao rjecnik. A cilj svega ovoga za sada je veeeomaaaa daleko...

Uzgred, ako ti nije problem javi greske ukoliko budes eksperimentisao.
[ StefanJer91 @ 24.03.2007. 17:34 ] @
Ponovo nek iproblem! Evo sta mi izbaci kada pokusam da ga pokrenem:

Traceback (most recent call last):
File "<pyshell#4>", line 1, in ?
imenica = Nom('lex')
File "/usr/lib/python2.4/site-packages/latinam/morph/noun.py", line 59, in __init__
lex = Lex(nword, pos=pos) #current word
File "/usr/lib/python2.4/site-packages/latinam/lexicon/lexicon.py", line 58, in __init__
self.entry = self.entry(word, pos)
File "/usr/lib/python2.4/site-packages/latinam/lexicon/lexicon.py", line 64, in entry
f = open('%s\latin_%s%s' % (lexpath,part,EXTENSION),"r")
IOError: [Errno 2] No such file or directory: '/usr/lib/python2.4/site-packages/latinam/lexicon\\latin_n.txt'
[ mr.marvin @ 24.03.2007. 22:20 ] @
Evo pokusaj sad.

Jedino sto je promjenjeno je nacin na koji se putanja do fajla kreira; na Win radi ovo:

Code:

 f = open('%s\latin_%s%s' % (lexpath,part,EXTENSION),"r")


A na Linux ovo:

Code:

 f = open(os.path.join(lexpath, "latin_%s%s" % (part,EXTENSION)), "r")


Tj. bolje pomocu os.path.join() praviti putanje, zbog toga sto ce tako raditi na svakom sistemu. Makar mislim da je u ovom problem :)