def main():

    s1 = "Hen linell bell nad yw'n bod,"
    s2 = "Hen derfyn nad yw'n darfod."

    s1 = "Talog, boed law, boed heulwen, - y saif hi"
    s2 = "Er oes faith, anniben;"

    # s1 = "Wedi blwng ymosod blin, - encilio:"
    # s2 = "Wedi'n creithio dianc i'r eithin."

    s1 = "A'u gweld yn eu dillad gwaith - trwy'r oriau"
    s2 = "Yn rhwygo o greigiau eu goreugwaith"

    # s1 = "Mae antur dan y mintys - ac anial"
    # s2 = "Yw'r creithiau mâl lle bu'r crythau melys."

    s1 = "Wele rith fel ymyl rhod - o'n cwmpas,"
    s2 = "Campwaith dewin hynod;"

    s1 = "Rhwydd gamwr, hawdd ei gymell - i'r mynydd"
    s2 = "a'r mannau anghysbell"

    cwpled = Cwpled(Llinell(s1), Llinell(s2))

    dad = DadansoddwrPennill()
    cwc = dad.oes_cwpled_cywydd(cwpled)
    tod = dad.oes_toddaid(cwpled)
    tob = dad.oes_toddaid(cwpled, byr=True)
    toh = dad.oes_toddaid(cwpled, hir=True)
    if cwc[0]:
        print lliw.cyan('CWC')
        for ad in cwc[1]:
            print ad
        print cwc[2]
    elif tod[0]:
        print lliw.cyan('TOD')
        for ad in tod[1]:
            print ad
        print tod[2]
    elif tob[0]:
        print lliw.cyan('TOB')
        for ad in tob[1]:
            print ad
        print tob[2]
    elif toh[0]:
        print lliw.cyan('TOH')
        for ad in toh[1]:
            print ad
        print toh[2]
    else:
        print lliw.cyan('DIM')
        for ad in tob[1]:
            print ad
        print tob[2]
def main():
	
	s1 = "Hen linell bell nad yw'n bod,"
	s2 = "Hen derfyn nad yw'n darfod."
	
	s1 = "Talog, boed law, boed heulwen, - y saif hi"
	s2 = "Er oes faith, anniben;"
	
	# s1 = "Wedi blwng ymosod blin, - encilio:"
	# s2 = "Wedi'n creithio dianc i'r eithin."

	s1 = "A'u gweld yn eu dillad gwaith - trwy'r oriau"
	s2 = "Yn rhwygo o greigiau eu goreugwaith"

	# s1 = "Mae antur dan y mintys - ac anial"
	# s2 = "Yw'r creithiau mâl lle bu'r crythau melys."

	s1 = "Wele rith fel ymyl rhod - o'n cwmpas,"
	s2 = "Campwaith dewin hynod;"
	
	s1 = "Rhwydd gamwr, hawdd ei gymell - i'r mynydd"
	s2 = "a'r mannau anghysbell"


	cwpled = Cwpled( Llinell(s1), Llinell(s2) )
	
	dad = DadansoddwrPennill()	
	cwc = dad.oes_cwpled_cywydd( cwpled )
	tod = dad.oes_toddaid( cwpled )
	tob = dad.oes_toddaid( cwpled, byr=True )
	toh = dad.oes_toddaid( cwpled, hir=True )
	if cwc[0]:
		print lliw.cyan('CWC')
		for ad in cwc[1]: print ad
		print cwc[2]
	elif tod[0]:
		print lliw.cyan('TOD')
		for ad in tod[1]: print ad
		print tod[2]
	elif tob[0]:
		print lliw.cyan('TOB')
		for ad in tob[1]: print ad
		print tob[2]
	elif toh[0]:
		print lliw.cyan('TOH')
		for ad in toh[1]: print ad
		print toh[2]
	else:
		print lliw.cyan('DIM')
		for ad in tob[1]: print ad
		print tob[2]
Exemple #3
0
def run_demo(verbose=True):

    dad = DadansoddwrPennill()
    for key in [
            'cwpled_cywydd',
            'toddaid_byr',
            'toddaid',
            'toddaid_hir',
            'cywydd',
            'englyn',
            'cyhydedd_nawban',
            # 'hir_a_thoddaid'
    ]:
        val = penillion[key]
        for s in val:
            call(["clear"])
            print '========================================'
            print key.upper()
            print '========================================'
            llinynnau = s.split('\n')
            llinellau = [Llinell(s) for s in llinynnau]
            pennill = Pennill(llinellau)

            ateb = dad.oes_mesur(pennill)
            if ateb:
                print lliw.cyan(ateb[0])
                for adro in ateb[1]:
                    if verbose:
                        print adro
                    else:
                        print lliw.magenta(
                            adro.cynghanedd) + ': ' + adro.llinell.llinyn(
                            ).strip()
            else:
                print lliw.magenta('DIM')
            print '========================================'
            print
            try:
                aros = raw_input(">> bwrwch y dychwelwr i barhau ...")
            except KeyboardInterrupt:
                print
                return
            continue
Exemple #4
0
def run_demo(verbose=True):
	
	dad = DadansoddwrPennill()	
	for key in [
		'cwpled_cywydd', 
		'toddaid_byr', 
		'toddaid', 
		'toddaid_hir', 
		'cywydd',
		'englyn',
		'cyhydedd_nawban',
		# 'hir_a_thoddaid'
		]:
		val = penillion[key]
		for s in val:
			call(["clear"])
			print '========================================'
			print key.upper()
			print '========================================'
			llinynnau = s.split('\n')
			llinellau = [ Llinell(s) for s in llinynnau ]
			pennill = Pennill( llinellau )

			ateb = dad.oes_mesur( pennill )
			if ateb:
				print lliw.cyan( ateb[0] )
				for adro in ateb[1]:
					if verbose:
						print adro
					else:
						print lliw.magenta(adro.cynghanedd) + ': ' + adro.llinell.llinyn().strip()
			else:
				print lliw.magenta('DIM')
			print '========================================'
			print 
			try:
				aros = raw_input(">> bwrwch y dychwelwr i barhau ...")
			except KeyboardInterrupt:
				print
				return
			continue
Exemple #5
0
	def __unicode__(self):
		ss = []
		ss.append( '------------------------------' )
		# ss.append( 'Adroddiad:' )
		ss.append( self.llinell.llinyn() )
		ss.append( lliw.cyan( self.cynghanedd ) )
		# 
		# if self.cynghanedd:	
		# 	ss.append( 'CNG: ' + self.cynghanedd )
		# if self.aceniad:	
		# 	ss.append( 'ACE: ' + self.aceniad )
		# if self.bai:		
		# 	ss.append( 'BAI: ' + self.bai )
		# if self.sylwadau:	
		# 	ss.append( 'SYL: ' + self.sylwadau )
		if self.data:
			ss.append( self.text_strings() )
		ss.append( '------------------------------' )
		return '\n'.join(ss)
Exemple #6
0
def main(args=None):
	
	# dechrau
	log.info('peiriant: dechrau')


	# parser = OptionParser(usage="%prog [-v] [-q] [-d] [llinyn] [-i infile] [-o outfile]", version="%prog: fersiwn 1.0", add_help_option=False)
	parser = OptionParser(usage="%prog [-v] [-q] [-d] [-p] [-r] [llinyn] [-i infile]", version="%prog: fersiwn 0.1", add_help_option=False)

	parser.add_option("-d", "--demo", action="store_true", dest="demo", help="showan off")
	parser.add_option("-p", "--penillion", action="store_true", dest="demo_penillion", help="mwy o showan off")
	parser.add_option("-v", "--verbose", action="store_true", dest="verbose", help="allbwn amleiriog")
	parser.add_option("-q", "--quiet", action="store_false", dest="verbose", help="allbwn cryno")
	parser.add_option("-r", "--rhyddiaith", action="store_true", dest="rhyddiaith", help="mewnbwn rhyddiaith")
	parser.add_option("-i", "--input", dest="infile", help="ffeil mewnbwn")
	parser.add_option("-h", "--help", action="help", help="cymorth")
	parser.set_defaults(verbose=True, demo=False, rhyddiaith=False)

	(options, args) = parser.parse_args()
	
	# dosrannu'r dewisiadau
	llinyn = ''
	if not args:
		args = sys.argv[1:]
	else:
		llinyn = args[0]
	
	# 1. llinyn unigol neu demos
	if llinyn:
		dad = Dadansoddwr()
		adro = dad.oes_cynghanedd( Llinell( llinyn ) )
		if options.verbose:
			print adro
		else:
			print lliw.magenta(adro.cynghanedd) + ': ' + llinyn.strip()
		return

	# 2. demos
	if options.demo:
		import demo
		demo.run_demo(verbose=options.verbose)
		return

	if options.demo_penillion:
		import demo_penillion
		demo_penillion.run_demo(verbose=options.verbose)
		return

	# 3. darllen o ffeil
	if options.infile:
		
		# rhyddiaith (hac, ond ok)
		if options.rhyddiaith:
			with codecs.open(options.infile, "r", "utf-8") as f:
				s = f.read()
			br = s.split('.')
			br = [b.strip() for b in br]
			brawddegau = []
			for b in br:
				if len(b) > 0:
					brawddegau.append( b + u'.')
			print('----------------------------------------')
			
			dad = Dadansoddwr()

			for b in brawddegau:
				geiriau = [Gair(s) for s in b.split(' ')]
				ns = 0
				idx_ch = 0
				idx_dd = 1
				rhestr = []
				llinellau = []
				while idx_dd < len(geiriau):
					while idx_dd < len(geiriau) and sum([ g.nifer_sillau() for g in geiriau[idx_ch:idx_dd] ]) < 7:
						rhestr.append( geiriau[idx_dd] )
						idx_dd = idx_dd + 1
					while sum([ g.nifer_sillau() for g in geiriau[idx_ch:idx_dd] ]) > 7:
						rhestr.reverse()
						rhestr.pop()
						rhestr.reverse()
						idx_ch = idx_ch + 1
					if geiriau[idx_dd-1].llinyn() not in cy.geiriau_gwan:
						llinellau.append( Llinell( geiriau[idx_ch:idx_dd] ) )
					idx_ch = idx_ch + 1
				for llinell in llinellau:
					adro = dad.oes_cynghanedd( llinell )
					if not adro.cynghanedd in ['DIM','SAL']:
						if options.verbose:
							print adro
						else:
							print lliw.magenta(adro.cynghanedd) + '\t' + adro.llinell.llinyn()
			print('----------------------------------------')
			return

		# cerdd
		with open(options.infile) as f:
			rhestr_llinynnau = f.readlines()
			
		# creu rhestr llinellau
		llinellau = []
		for s in rhestr_llinynnau:
			s.strip()
			if re.search(r'^#', s) or re.search(r'^\s*$', s):
				continue
			llinellau.append( Llinell(s) )
		
		# allbwn
		# if options.verbose:
		# 	print('========================================')
		# 	for llinell in llinellau:
		# 		print llinell.llinyn()
		# 	print('========================================')

		# dadansoddi pob llinell yn unigol (beth am doddeidiau? Mae angen darganfod cysylltnod)
		dad = Dadansoddwr()
		adro_llinellau_unigol = []
		for llinell in llinellau:
			adro = dad.oes_cynghanedd( llinell )
			adro_llinellau_unigol.append(adro)

		# profi mesurau
		dad = DadansoddwrPennill()
		pennill = Pennill(llinellau)
		cyw = dad.oes_cywydd( pennill )
		eng = dad.oes_englyn( pennill )
		cyh = dad.oes_cyhydedd_nawban( pennill )
		hat = dad.oes_hir_a_thoddaid( pennill )
		
		dosb = None
		if cyw[0]:
			dosb = 'CYW'
			adro = cyw[1]
		elif eng[0]:
			dosb = 'ENG'
			adro = eng[1]
		elif cyh[0]:
			dosb = 'CYH'
			adro = cyh[1]
		elif hat[0]:
			dosb = 'HAT'
			adro = hat[1]
		else:
			dosb = 'DIM'
			adro = adro_llinellau_unigol
		
		# allbwn
		print('----------------------------------------')
		if dosb:
			print lliw.cyan( dosb )
		if adro:
			for ad in adro:
				if options.verbose:
					if ad.cynghanedd == 'DIM':
						print lliw.magenta( ad.cynghanedd )
						print ad.llinyn_acenion()
						print ad.llinell.llinyn()
					else:
						print ad
				else:
					ss = ad.cynghanedd + ': ' + ad.llinell.llinyn().strip()
					if ad.cynghanedd == 'DIM':
						print lliw.magenta( ss )
					else:
						print ss
		print('----------------------------------------')

	# diwedd
	print "hwyl fawr...\n"
	time_str = time.strftime("%Y.%m.%d.%H.%M.%S")
	log.info('peiriant: diwedd')
Exemple #7
0
	def llinyn_cytseinedd(self, html=False, blanksymbol=' '):
		if not html:
			ss_tor = list( self.llinyn_toriadau(blanksymbol=blanksymbol) )
			ss_par = list( self.llinyn_cytseiniaid_cyfatebol(blanksymbol=blanksymbol) )
			ss_tra = list( self.llinyn_cytseiniaid_traws(blanksymbol=blanksymbol) )
			ss_cwt = list( self.llinyn_cytseiniaid_cynffon(blanksymbol=blanksymbol) )
			ss_col = list( self.llinyn_acenion_colon(blanksymbol=blanksymbol) )
			ss = []
			for j in range( len(ss_col) ):
				if ss_tor[j] != blanksymbol:
					ss.append( ss_tor[j] )
				elif ss_par[j] != blanksymbol:
					ss.append( lliw.cyan( ss_par[j] ) )
				elif ss_tra[j] != blanksymbol:
					ss.append( lliw.coch( ss_tra[j] ) )
				elif ss_cwt[j] != blanksymbol:
					ss.append( lliw.melyn( ss_cwt[j] ) )
				elif ss_col[j] != blanksymbol:
					ss.append( ss_col[j] )
				else:
					ss.append( blanksymbol )
			return ''.join( ss )
		else:
			nodau_cyfatebol = []
			if self.data.has_key('parau'):
				nodau_cyfatebol += [nod for par in self.data['parau'] for nod in par]
			nodau_traws = []
			if self.data.has_key('pengoll_dde'):
				nodau_traws += self.data['pengoll_dde']
			nodau_cwt = []
			if self.data.has_key('cwt_chwith'):
				nodau_cwt += self.data['cwt_chwith']
			if self.data.has_key('cwt_dde'):
				nodau_cwt += self.data['cwt_dde']
			geiriau_dethol = []
			if self.data.has_key('gorffwysfeydd'):
				gorffwysfeydd = self.data['gorffwysfeydd']
				if len(gorffwysfeydd) < 3: # sain
					geiriau_dethol.append( gorffwysfeydd[-1] )
				else: # sain gadwynog	
					geiriau_dethol.append( gorffwysfeydd[-2] )
			geiriau_dethol.append(self.llinell.geiriau[-1])
				
			ss = []
			for g in self.llinell.geiriau:
				nodau_acen = []
				if g in geiriau_dethol:
					ace = g.nodau_acennog()
					nodau_acen = [ ace[-1] ]
					if g.pwyslais() == -2:
						nodau_acen.append( ace[-2] )
				s = []
				for nod in g.nodau:
					if nod in nodau_acen:
						s.append( ':' )
					elif nod in nodau_cyfatebol:
						s.append( '<span class="cytseiniaid_cyfatebol">' + nod.llinyn + '</span>' )
					elif nod in nodau_traws:
						s.append( '<span class="cytseiniaid_traws">' + nod.llinyn + '</span>' )
					elif nod in nodau_cwt:
						s.append( '<span class="cytseiniaid_cwt">' + nod.llinyn + '</span>' )
					else:
						s.append( blanksymbol*len(nod.llinyn) )
				ss.append( ''.join(s) )
				if g in geiriau_dethol[:-1]:
					ss.append( '<span class="toriadau">|</span>' )
				else:
					ss.append( blanksymbol )
			return ''.join(ss)
Exemple #8
0
def main(args=None):

    # dechrau
    log.info('peiriant: dechrau')

    # parser = OptionParser(usage="%prog [-v] [-q] [-d] [llinyn] [-i infile] [-o outfile]", version="%prog: fersiwn 1.0", add_help_option=False)
    parser = OptionParser(
        usage="%prog [-v] [-q] [-d] [-p] [-r] [llinyn] [-i infile]",
        version="%prog: fersiwn 0.1",
        add_help_option=False)

    parser.add_option("-d",
                      "--demo",
                      action="store_true",
                      dest="demo",
                      help="showan off")
    parser.add_option("-p",
                      "--penillion",
                      action="store_true",
                      dest="demo_penillion",
                      help="mwy o showan off")
    parser.add_option("-v",
                      "--verbose",
                      action="store_true",
                      dest="verbose",
                      help="allbwn amleiriog")
    parser.add_option("-q",
                      "--quiet",
                      action="store_false",
                      dest="verbose",
                      help="allbwn cryno")
    parser.add_option("-r",
                      "--rhyddiaith",
                      action="store_true",
                      dest="rhyddiaith",
                      help="mewnbwn rhyddiaith")
    parser.add_option("-i", "--input", dest="infile", help="ffeil mewnbwn")
    parser.add_option("-h", "--help", action="help", help="cymorth")
    parser.set_defaults(verbose=True, demo=False, rhyddiaith=False)

    (options, args) = parser.parse_args()

    # dosrannu'r dewisiadau
    llinyn = ''
    if not args:
        args = sys.argv[1:]
    else:
        llinyn = args[0]

    # 1. llinyn unigol neu demos
    if llinyn:
        dad = Dadansoddwr()
        adro = dad.oes_cynghanedd(Llinell(llinyn))
        if options.verbose:
            print adro
        else:
            print lliw.magenta(adro.cynghanedd) + ': ' + llinyn.strip()
        return

    # 2. demos
    if options.demo:
        import demo
        demo.run_demo(verbose=options.verbose)
        return

    if options.demo_penillion:
        import demo_penillion
        demo_penillion.run_demo(verbose=options.verbose)
        return

    # 3. darllen o ffeil
    if options.infile:

        # rhyddiaith (hac, ond ok)
        if options.rhyddiaith:
            with codecs.open(options.infile, "r", "utf-8") as f:
                s = f.read()
            br = s.split('.')
            br = [b.strip() for b in br]
            brawddegau = []
            for b in br:
                if len(b) > 0:
                    brawddegau.append(b + u'.')
            print('----------------------------------------')

            dad = Dadansoddwr()

            for b in brawddegau:
                geiriau = [Gair(s) for s in b.split(' ')]
                ns = 0
                idx_ch = 0
                idx_dd = 1
                rhestr = []
                llinellau = []
                while idx_dd < len(geiriau):
                    while idx_dd < len(geiriau) and sum(
                        [g.nifer_sillau()
                         for g in geiriau[idx_ch:idx_dd]]) < 7:
                        rhestr.append(geiriau[idx_dd])
                        idx_dd = idx_dd + 1
                    while sum(
                        [g.nifer_sillau()
                         for g in geiriau[idx_ch:idx_dd]]) > 7:
                        rhestr.reverse()
                        rhestr.pop()
                        rhestr.reverse()
                        idx_ch = idx_ch + 1
                    if geiriau[idx_dd - 1].llinyn() not in cy.geiriau_gwan:
                        llinellau.append(Llinell(geiriau[idx_ch:idx_dd]))
                    idx_ch = idx_ch + 1
                for llinell in llinellau:
                    adro = dad.oes_cynghanedd(llinell)
                    if not adro.cynghanedd in ['DIM', 'SAL']:
                        if options.verbose:
                            print adro
                        else:
                            print lliw.magenta(
                                adro.cynghanedd) + '\t' + adro.llinell.llinyn(
                                )
            print('----------------------------------------')
            return

        # cerdd
        with open(options.infile) as f:
            rhestr_llinynnau = f.readlines()

        # creu rhestr llinellau
        llinellau = []
        for s in rhestr_llinynnau:
            s.strip()
            if re.search(r'^#', s) or re.search(r'^\s*$', s):
                continue
            llinellau.append(Llinell(s))

        # allbwn
        # if options.verbose:
        # 	print('========================================')
        # 	for llinell in llinellau:
        # 		print llinell.llinyn()
        # 	print('========================================')

        # dadansoddi pob llinell yn unigol (beth am doddeidiau? Mae angen darganfod cysylltnod)
        dad = Dadansoddwr()
        adro_llinellau_unigol = []
        for llinell in llinellau:
            adro = dad.oes_cynghanedd(llinell)
            adro_llinellau_unigol.append(adro)

        # profi mesurau
        dad = DadansoddwrPennill()
        pennill = Pennill(llinellau)
        cyw = dad.oes_cywydd(pennill)
        eng = dad.oes_englyn(pennill)
        cyh = dad.oes_cyhydedd_nawban(pennill)
        hat = dad.oes_hir_a_thoddaid(pennill)

        dosb = None
        if cyw[0]:
            dosb = 'CYW'
            adro = cyw[1]
        elif eng[0]:
            dosb = 'ENG'
            adro = eng[1]
        elif cyh[0]:
            dosb = 'CYH'
            adro = cyh[1]
        elif hat[0]:
            dosb = 'HAT'
            adro = hat[1]
        else:
            dosb = 'DIM'
            adro = adro_llinellau_unigol

        # allbwn
        print('----------------------------------------')
        if dosb:
            print lliw.cyan(dosb)
        if adro:
            for ad in adro:
                if options.verbose:
                    if ad.cynghanedd == 'DIM':
                        print lliw.magenta(ad.cynghanedd)
                        print ad.llinyn_acenion()
                        print ad.llinell.llinyn()
                    else:
                        print ad
                else:
                    ss = ad.cynghanedd + ': ' + ad.llinell.llinyn().strip()
                    if ad.cynghanedd == 'DIM':
                        print lliw.magenta(ss)
                    else:
                        print ss
        print('----------------------------------------')

    # diwedd
    print "hwyl fawr...\n"
    time_str = time.strftime("%Y.%m.%d.%H.%M.%S")
    log.info('peiriant: diwedd')