mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 11:49:12 +00:00 
			
		
		
		
	svn+ssh://svn.python.org/python/branches/py3k ................ r74609 | senthil.kumaran | 2009-08-31 18:43:45 +0200 (Mo, 31 Aug 2009) | 3 lines Doc fix for issue2637. ................ r74627 | georg.brandl | 2009-09-02 22:31:26 +0200 (Mi, 02 Sep 2009) | 1 line #6819: fix typo. ................ r74634 | georg.brandl | 2009-09-03 14:34:10 +0200 (Do, 03 Sep 2009) | 9 lines Merged revisions 74633 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r74633 | georg.brandl | 2009-09-03 14:31:39 +0200 (Do, 03 Sep 2009) | 1 line #6757: complete the list of types that marshal can serialize. ........ ................ r74645 | georg.brandl | 2009-09-04 10:07:32 +0200 (Fr, 04 Sep 2009) | 1 line #5221: fix related topics: SEQUENCEMETHODS[12] doesnt exist any more. ................ r74651 | georg.brandl | 2009-09-04 13:20:54 +0200 (Fr, 04 Sep 2009) | 9 lines Recorded merge of revisions 74650 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r74650 | georg.brandl | 2009-09-04 13:19:34 +0200 (Fr, 04 Sep 2009) | 1 line #5101: add back tests to test_funcattrs that were lost during unittest conversion, and make some PEP8 cleanups. ........ ................ r74738 | georg.brandl | 2009-09-09 18:51:05 +0200 (Mi, 09 Sep 2009) | 9 lines Merged revisions 74737 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r74737 | georg.brandl | 2009-09-09 18:49:13 +0200 (Mi, 09 Sep 2009) | 1 line Properly document copy and deepcopy as functions. ........ ................ r74840 | georg.brandl | 2009-09-16 18:40:45 +0200 (Mi, 16 Sep 2009) | 13 lines Merged revisions 74838-74839 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r74838 | georg.brandl | 2009-09-16 18:22:12 +0200 (Mi, 16 Sep 2009) | 1 line Remove some more boilerplate from the actual tests in test_pdb. ........ r74839 | georg.brandl | 2009-09-16 18:36:39 +0200 (Mi, 16 Sep 2009) | 1 line Make the pdb displayhook compatible with the standard displayhook: do not print Nones. Add a test for that. ........ ................ r75016 | georg.brandl | 2009-09-22 15:53:14 +0200 (Di, 22 Sep 2009) | 1 line #6969: make it explicit that configparser writes/reads text files, and fix the example. ................ r75316 | georg.brandl | 2009-10-10 23:12:35 +0200 (Sa, 10 Okt 2009) | 9 lines Merged revisions 75313 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r75313 | georg.brandl | 2009-10-10 23:07:35 +0200 (Sa, 10 Okt 2009) | 1 line Bring old demo up-to-date. ........ ................ r75317 | georg.brandl | 2009-10-10 23:13:21 +0200 (Sa, 10 Okt 2009) | 9 lines Merged revisions 75315 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r75315 | georg.brandl | 2009-10-10 23:10:05 +0200 (Sa, 10 Okt 2009) | 1 line Remove unneeded "L" suffixes. ........ ................ r75323 | georg.brandl | 2009-10-10 23:48:05 +0200 (Sa, 10 Okt 2009) | 9 lines Recorded merge of revisions 75321 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r75321 | georg.brandl | 2009-10-10 23:43:21 +0200 (Sa, 10 Okt 2009) | 1 line Remove outdated comment and fix a few style issues. ........ ................ r75324 | georg.brandl | 2009-10-10 23:49:24 +0200 (Sa, 10 Okt 2009) | 9 lines Merged revisions 75322 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r75322 | georg.brandl | 2009-10-10 23:47:31 +0200 (Sa, 10 Okt 2009) | 1 line Show use of range() step argument nicely. ........ ................ r75326 | georg.brandl | 2009-10-10 23:57:03 +0200 (Sa, 10 Okt 2009) | 9 lines Merged revisions 75325 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r75325 | georg.brandl | 2009-10-10 23:55:11 +0200 (Sa, 10 Okt 2009) | 1 line Modernize factorisation demo (mostly augassign.) ........ ................ r75328 | georg.brandl | 2009-10-11 00:05:26 +0200 (So, 11 Okt 2009) | 9 lines Merged revisions 75327 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r75327 | georg.brandl | 2009-10-11 00:03:43 +0200 (So, 11 Okt 2009) | 1 line Style fixes. ........ ................ r75330 | georg.brandl | 2009-10-11 00:32:28 +0200 (So, 11 Okt 2009) | 9 lines Merged revisions 75329 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r75329 | georg.brandl | 2009-10-11 00:26:45 +0200 (So, 11 Okt 2009) | 1 line Modernize all around (dont ask me how useful that script is nowadays...) ........ ................ r75338 | georg.brandl | 2009-10-11 10:31:41 +0200 (So, 11 Okt 2009) | 9 lines Merged revisions 75337 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r75337 | georg.brandl | 2009-10-11 10:18:44 +0200 (So, 11 Okt 2009) | 1 line Update morse script, avoid globals, use iterators. ........ ................ r75340 | georg.brandl | 2009-10-11 10:42:09 +0200 (So, 11 Okt 2009) | 9 lines Merged revisions 75339 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r75339 | georg.brandl | 2009-10-11 10:39:16 +0200 (So, 11 Okt 2009) | 1 line Update markov demo. ........ ................ r75341 | georg.brandl | 2009-10-11 10:43:08 +0200 (So, 11 Okt 2009) | 1 line Fix README description. ................ r75343 | georg.brandl | 2009-10-11 10:46:56 +0200 (So, 11 Okt 2009) | 9 lines Merged revisions 75342 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r75342 | georg.brandl | 2009-10-11 10:45:03 +0200 (So, 11 Okt 2009) | 1 line Remove useless script "mkrcs" and update README. ........ ................ r75352 | georg.brandl | 2009-10-11 14:04:10 +0200 (So, 11 Okt 2009) | 9 lines Merged revisions 75350 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r75350 | georg.brandl | 2009-10-11 14:00:18 +0200 (So, 11 Okt 2009) | 1 line Use getopt in script.py demo. ........ ................ r75353 | georg.brandl | 2009-10-11 14:04:40 +0200 (So, 11 Okt 2009) | 9 lines Merged revisions 75351 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r75351 | georg.brandl | 2009-10-11 14:03:01 +0200 (So, 11 Okt 2009) | 1 line Fix variable. ........ ................ r75355 | georg.brandl | 2009-10-11 16:27:51 +0200 (So, 11 Okt 2009) | 9 lines Merged revisions 75354 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r75354 | georg.brandl | 2009-10-11 16:23:49 +0200 (So, 11 Okt 2009) | 1 line Update lpwatch script. ........ ................ r75357 | georg.brandl | 2009-10-11 16:50:57 +0200 (So, 11 Okt 2009) | 9 lines Merged revisions 75356 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r75356 | georg.brandl | 2009-10-11 16:49:37 +0200 (So, 11 Okt 2009) | 1 line Remove ftpstats script, the daemon whose log files it reads is long gone. ........ ................ r75359 | georg.brandl | 2009-10-11 17:56:06 +0200 (So, 11 Okt 2009) | 9 lines Merged revisions 75358 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r75358 | georg.brandl | 2009-10-11 17:06:44 +0200 (So, 11 Okt 2009) | 1 line Overhaul of Demo/xml. ........ ................
		
			
				
	
	
		
			128 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			128 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
#! /usr/bin/env python
 | 
						|
 | 
						|
# DAH should be three DOTs.
 | 
						|
# Space between DOTs and DAHs should be one DOT.
 | 
						|
# Space between two letters should be one DAH.
 | 
						|
# Space between two words should be DOT DAH DAH.
 | 
						|
 | 
						|
import sys, math, aifc
 | 
						|
from contextlib import closing
 | 
						|
 | 
						|
DOT = 30
 | 
						|
DAH = 3 * DOT
 | 
						|
OCTAVE = 2                              # 1 == 441 Hz, 2 == 882 Hz, ...
 | 
						|
 | 
						|
morsetab = {
 | 
						|
        'A': '.-',              'a': '.-',
 | 
						|
        'B': '-...',            'b': '-...',
 | 
						|
        'C': '-.-.',            'c': '-.-.',
 | 
						|
        'D': '-..',             'd': '-..',
 | 
						|
        'E': '.',               'e': '.',
 | 
						|
        'F': '..-.',            'f': '..-.',
 | 
						|
        'G': '--.',             'g': '--.',
 | 
						|
        'H': '....',            'h': '....',
 | 
						|
        'I': '..',              'i': '..',
 | 
						|
        'J': '.---',            'j': '.---',
 | 
						|
        'K': '-.-',             'k': '-.-',
 | 
						|
        'L': '.-..',            'l': '.-..',
 | 
						|
        'M': '--',              'm': '--',
 | 
						|
        'N': '-.',              'n': '-.',
 | 
						|
        'O': '---',             'o': '---',
 | 
						|
        'P': '.--.',            'p': '.--.',
 | 
						|
        'Q': '--.-',            'q': '--.-',
 | 
						|
        'R': '.-.',             'r': '.-.',
 | 
						|
        'S': '...',             's': '...',
 | 
						|
        'T': '-',               't': '-',
 | 
						|
        'U': '..-',             'u': '..-',
 | 
						|
        'V': '...-',            'v': '...-',
 | 
						|
        'W': '.--',             'w': '.--',
 | 
						|
        'X': '-..-',            'x': '-..-',
 | 
						|
        'Y': '-.--',            'y': '-.--',
 | 
						|
        'Z': '--..',            'z': '--..',
 | 
						|
        '0': '-----',           ',': '--..--',
 | 
						|
        '1': '.----',           '.': '.-.-.-',
 | 
						|
        '2': '..---',           '?': '..--..',
 | 
						|
        '3': '...--',           ';': '-.-.-.',
 | 
						|
        '4': '....-',           ':': '---...',
 | 
						|
        '5': '.....',           "'": '.----.',
 | 
						|
        '6': '-....',           '-': '-....-',
 | 
						|
        '7': '--...',           '/': '-..-.',
 | 
						|
        '8': '---..',           '(': '-.--.-',
 | 
						|
        '9': '----.',           ')': '-.--.-',
 | 
						|
        ' ': ' ',               '_': '..--.-',
 | 
						|
}
 | 
						|
 | 
						|
nowave = b'\0' * 200
 | 
						|
 | 
						|
# If we play at 44.1 kHz (which we do), then if we produce one sine
 | 
						|
# wave in 100 samples, we get a tone of 441 Hz.  If we produce two
 | 
						|
# sine waves in these 100 samples, we get a tone of 882 Hz.  882 Hz
 | 
						|
# appears to be a nice one for playing morse code.
 | 
						|
def mkwave(octave):
 | 
						|
    sinewave = bytearray()
 | 
						|
    for i in range(100):
 | 
						|
        val = int(math.sin(math.pi * i * octave / 50.0) * 30000)
 | 
						|
        sinewave.extend([(val >> 8) & 255, val & 255])
 | 
						|
    return bytes(sinewave)
 | 
						|
 | 
						|
defaultwave = mkwave(OCTAVE)
 | 
						|
 | 
						|
def main():
 | 
						|
    import getopt
 | 
						|
    try:
 | 
						|
        opts, args = getopt.getopt(sys.argv[1:], 'o:p:')
 | 
						|
    except getopt.error:
 | 
						|
        sys.stderr.write('Usage ' + sys.argv[0] +
 | 
						|
                         ' [ -o outfile ] [ -p octave ] [ words ] ...\n')
 | 
						|
        sys.exit(1)
 | 
						|
    wave = defaultwave
 | 
						|
    outfile = 'morse.aifc'
 | 
						|
    for o, a in opts:
 | 
						|
        if o == '-o':
 | 
						|
            outfile = a
 | 
						|
        if o == '-p':
 | 
						|
            wave = mkwave(int(a))
 | 
						|
    with closing(aifc.open(outfile, 'w')) as fp:
 | 
						|
        fp.setframerate(44100)
 | 
						|
        fp.setsampwidth(2)
 | 
						|
        fp.setnchannels(1)
 | 
						|
        if args:
 | 
						|
            source = [' '.join(args)]
 | 
						|
        else:
 | 
						|
            source = iter(sys.stdin.readline, '')
 | 
						|
        for line in source:
 | 
						|
            mline = morse(line)
 | 
						|
            play(mline, fp, wave)
 | 
						|
 | 
						|
# Convert a string to morse code with \001 between the characters in
 | 
						|
# the string.
 | 
						|
def morse(line):
 | 
						|
    res = ''
 | 
						|
    for c in line:
 | 
						|
        try:
 | 
						|
            res += morsetab[c] + '\001'
 | 
						|
        except KeyError:
 | 
						|
            pass
 | 
						|
    return res
 | 
						|
 | 
						|
# Play a line of morse code.
 | 
						|
def play(line, fp, wave):
 | 
						|
    for c in line:
 | 
						|
        if c == '.':
 | 
						|
            sine(fp, DOT, wave)
 | 
						|
        elif c == '-':
 | 
						|
            sine(fp, DAH, wave)
 | 
						|
        else:                   # space
 | 
						|
            pause(fp, DAH + DOT)
 | 
						|
        pause(fp, DOT)
 | 
						|
 | 
						|
def sine(fp, length, wave):
 | 
						|
    for i in range(length):
 | 
						|
        fp.writeframesraw(wave)
 | 
						|
 | 
						|
def pause(fp, length):
 | 
						|
    for i in range(length):
 | 
						|
        fp.writeframesraw(nowave)
 | 
						|
 | 
						|
if __name__ == '__main__':
 | 
						|
    main()
 |