Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
56bac7b9
Commit
56bac7b9
authored
Mar 12, 2012
by
Michael Foord
Browse files
Options
Browse Files
Download
Plain Diff
Merge
parents
b36c70c9
d5c613e4
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
165 additions
and
18 deletions
+165
-18
Lib/aifc.py
Lib/aifc.py
+6
-6
Lib/test/test_aifc.py
Lib/test/test_aifc.py
+149
-9
Misc/NEWS
Misc/NEWS
+2
-0
Modules/_pickle.c
Modules/_pickle.c
+8
-3
No files found.
Lib/aifc.py
View file @
56bac7b9
...
@@ -136,6 +136,7 @@ writeframesraw.
...
@@ -136,6 +136,7 @@ writeframesraw.
import
struct
import
struct
import
builtins
import
builtins
import
warnings
__all__
=
[
"Error"
,
"open"
,
"openfp"
]
__all__
=
[
"Error"
,
"open"
,
"openfp"
]
...
@@ -440,7 +441,7 @@ class Aifc_read:
...
@@ -440,7 +441,7 @@ class Aifc_read:
kludge
=
0
kludge
=
0
if
chunk
.
chunksize
==
18
:
if
chunk
.
chunksize
==
18
:
kludge
=
1
kludge
=
1
print
(
'Warning: bad COMM chunk size'
)
warnings
.
warn
(
'Warning: bad COMM chunk size'
)
chunk
.
chunksize
=
23
chunk
.
chunksize
=
23
#DEBUG end
#DEBUG end
self
.
_comptype
=
chunk
.
read
(
4
)
self
.
_comptype
=
chunk
.
read
(
4
)
...
@@ -484,11 +485,10 @@ class Aifc_read:
...
@@ -484,11 +485,10 @@ class Aifc_read:
# a position 0 and name ''
# a position 0 and name ''
self
.
_markers
.
append
((
id
,
pos
,
name
))
self
.
_markers
.
append
((
id
,
pos
,
name
))
except
EOFError
:
except
EOFError
:
print
(
'Warning: MARK chunk contains only'
,
end
=
' '
)
w
=
(
'Warning: MARK chunk contains only %s marker%s instead of %s'
%
print
(
len
(
self
.
_markers
),
end
=
' '
)
(
len
(
self
.
_markers
),
''
if
len
(
self
.
_markers
)
==
1
else
's'
,
if
len
(
self
.
_markers
)
==
1
:
print
(
'marker'
,
end
=
' '
)
nmarkers
))
else
:
print
(
'markers'
,
end
=
' '
)
warnings
.
warn
(
w
)
print
(
'instead of'
,
nmarkers
)
class
Aifc_write
:
class
Aifc_write
:
# Variables used in this class:
# Variables used in this class:
...
...
Lib/test/test_aifc.py
View file @
56bac7b9
from
test.support
import
findfile
,
run_unittest
,
TESTFN
from
test.support
import
findfile
,
run_unittest
,
TESTFN
,
unlink
import
unittest
import
unittest
import
os
import
os
import
io
import
io
import
struct
import
aifc
import
aifc
...
@@ -20,10 +21,8 @@ class AIFCTest(unittest.TestCase):
...
@@ -20,10 +21,8 @@ class AIFCTest(unittest.TestCase):
self
.
fout
.
close
()
self
.
fout
.
close
()
except
(
aifc
.
Error
,
AttributeError
):
except
(
aifc
.
Error
,
AttributeError
):
pass
pass
try
:
unlink
(
TESTFN
)
os
.
remove
(
TESTFN
)
unlink
(
TESTFN
+
'.aiff'
)
except
OSError
:
pass
def
test_skipunknown
(
self
):
def
test_skipunknown
(
self
):
#Issue 2245
#Issue 2245
...
@@ -32,6 +31,7 @@ class AIFCTest(unittest.TestCase):
...
@@ -32,6 +31,7 @@ class AIFCTest(unittest.TestCase):
def
test_params
(
self
):
def
test_params
(
self
):
f
=
self
.
f
=
aifc
.
open
(
self
.
sndfilepath
)
f
=
self
.
f
=
aifc
.
open
(
self
.
sndfilepath
)
self
.
assertEqual
(
f
.
getfp
().
name
,
self
.
sndfilepath
)
self
.
assertEqual
(
f
.
getnchannels
(),
2
)
self
.
assertEqual
(
f
.
getnchannels
(),
2
)
self
.
assertEqual
(
f
.
getsampwidth
(),
2
)
self
.
assertEqual
(
f
.
getsampwidth
(),
2
)
self
.
assertEqual
(
f
.
getframerate
(),
48000
)
self
.
assertEqual
(
f
.
getframerate
(),
48000
)
...
@@ -45,6 +45,7 @@ class AIFCTest(unittest.TestCase):
...
@@ -45,6 +45,7 @@ class AIFCTest(unittest.TestCase):
def
test_read
(
self
):
def
test_read
(
self
):
f
=
self
.
f
=
aifc
.
open
(
self
.
sndfilepath
)
f
=
self
.
f
=
aifc
.
open
(
self
.
sndfilepath
)
self
.
assertEqual
(
f
.
readframes
(
0
),
b''
)
self
.
assertEqual
(
f
.
tell
(),
0
)
self
.
assertEqual
(
f
.
tell
(),
0
)
self
.
assertEqual
(
f
.
readframes
(
2
),
b'
\
x00
\
x00
\
x00
\
x00
\
x0b
\
xd4
\
x0b
\
xd4
'
)
self
.
assertEqual
(
f
.
readframes
(
2
),
b'
\
x00
\
x00
\
x00
\
x00
\
x0b
\
xd4
\
x0b
\
xd4
'
)
f
.
rewind
()
f
.
rewind
()
...
@@ -58,6 +59,10 @@ class AIFCTest(unittest.TestCase):
...
@@ -58,6 +59,10 @@ class AIFCTest(unittest.TestCase):
self
.
assertEqual
(
f
.
readframes
(
2
),
b'
\
x17
t
\
x17
t"
\
xad
"
\
xad
'
)
self
.
assertEqual
(
f
.
readframes
(
2
),
b'
\
x17
t
\
x17
t"
\
xad
"
\
xad
'
)
f
.
setpos
(
pos0
)
f
.
setpos
(
pos0
)
self
.
assertEqual
(
f
.
readframes
(
2
),
b'
\
x00
\
x00
\
x00
\
x00
\
x0b
\
xd4
\
x0b
\
xd4
'
)
self
.
assertEqual
(
f
.
readframes
(
2
),
b'
\
x00
\
x00
\
x00
\
x00
\
x0b
\
xd4
\
x0b
\
xd4
'
)
with
self
.
assertRaises
(
aifc
.
Error
):
f
.
setpos
(
-
1
)
with
self
.
assertRaises
(
aifc
.
Error
):
f
.
setpos
(
f
.
getnframes
()
+
1
)
def
test_write
(
self
):
def
test_write
(
self
):
f
=
self
.
f
=
aifc
.
open
(
self
.
sndfilepath
)
f
=
self
.
f
=
aifc
.
open
(
self
.
sndfilepath
)
...
@@ -92,8 +97,6 @@ class AIFCTest(unittest.TestCase):
...
@@ -92,8 +97,6 @@ class AIFCTest(unittest.TestCase):
self
.
assertEqual
(
f
.
getparams
()[
0
:
3
],
fout
.
getparams
()[
0
:
3
])
self
.
assertEqual
(
f
.
getparams
()[
0
:
3
],
fout
.
getparams
()[
0
:
3
])
self
.
assertEqual
(
fout
.
getcomptype
(),
b'ULAW'
)
self
.
assertEqual
(
fout
.
getcomptype
(),
b'ULAW'
)
self
.
assertEqual
(
fout
.
getcompname
(),
b'foo'
)
self
.
assertEqual
(
fout
.
getcompname
(),
b'foo'
)
# XXX: this test fails, not sure if it should succeed or not
# self.assertEqual(f.readframes(5), fout.readframes(5))
def
test_close
(
self
):
def
test_close
(
self
):
class
Wrapfile
(
object
):
class
Wrapfile
(
object
):
...
@@ -112,7 +115,7 @@ class AIFCTest(unittest.TestCase):
...
@@ -112,7 +115,7 @@ class AIFCTest(unittest.TestCase):
def
test_write_header_comptype_sampwidth
(
self
):
def
test_write_header_comptype_sampwidth
(
self
):
for
comptype
in
(
b'ULAW'
,
b'ulaw'
,
b'ALAW'
,
b'alaw'
,
b'G722'
):
for
comptype
in
(
b'ULAW'
,
b'ulaw'
,
b'ALAW'
,
b'alaw'
,
b'G722'
):
fout
=
self
.
fout
=
aifc
.
open
(
io
.
BytesIO
(),
'wb'
)
fout
=
aifc
.
open
(
io
.
BytesIO
(),
'wb'
)
fout
.
setnchannels
(
1
)
fout
.
setnchannels
(
1
)
fout
.
setframerate
(
1
)
fout
.
setframerate
(
1
)
fout
.
setcomptype
(
comptype
,
b''
)
fout
.
setcomptype
(
comptype
,
b''
)
...
@@ -121,7 +124,7 @@ class AIFCTest(unittest.TestCase):
...
@@ -121,7 +124,7 @@ class AIFCTest(unittest.TestCase):
fout
.
initfp
(
None
)
fout
.
initfp
(
None
)
def
test_write_markers_values
(
self
):
def
test_write_markers_values
(
self
):
fout
=
self
.
fout
=
aifc
.
open
(
io
.
BytesIO
(),
'wb'
)
fout
=
aifc
.
open
(
io
.
BytesIO
(),
'wb'
)
self
.
assertEqual
(
fout
.
getmarkers
(),
None
)
self
.
assertEqual
(
fout
.
getmarkers
(),
None
)
fout
.
setmark
(
1
,
0
,
b'foo1'
)
fout
.
setmark
(
1
,
0
,
b'foo1'
)
fout
.
setmark
(
1
,
1
,
b'foo2'
)
fout
.
setmark
(
1
,
1
,
b'foo2'
)
...
@@ -179,6 +182,143 @@ class AIFCLowLevelTest(unittest.TestCase):
...
@@ -179,6 +182,143 @@ class AIFCLowLevelTest(unittest.TestCase):
with
self
.
assertRaises
(
ValueError
):
with
self
.
assertRaises
(
ValueError
):
aifc
.
_write_string
(
f
,
b'too long'
*
255
)
aifc
.
_write_string
(
f
,
b'too long'
*
255
)
def
test_wrong_open_mode
(
self
):
with
self
.
assertRaises
(
aifc
.
Error
):
aifc
.
open
(
TESTFN
,
'wrong_mode'
)
def
test_read_wrong_form
(
self
):
b1
=
io
.
BytesIO
(
b'WRNG'
+
struct
.
pack
(
'>L'
,
0
))
b2
=
io
.
BytesIO
(
b'FORM'
+
struct
.
pack
(
'>L'
,
4
)
+
b'WRNG'
)
self
.
assertRaises
(
aifc
.
Error
,
aifc
.
open
,
b1
)
self
.
assertRaises
(
aifc
.
Error
,
aifc
.
open
,
b2
)
def
test_read_no_comm_chunk
(
self
):
b
=
io
.
BytesIO
(
b'FORM'
+
struct
.
pack
(
'>L'
,
4
)
+
b'AIFF'
)
self
.
assertRaises
(
aifc
.
Error
,
aifc
.
open
,
b
)
def
test_read_wrong_compression_type
(
self
):
b
=
b'FORM'
+
struct
.
pack
(
'>L'
,
4
)
+
b'AIFC'
b
+=
b'COMM'
+
struct
.
pack
(
'>LhlhhLL'
,
23
,
0
,
0
,
0
,
0
,
0
,
0
)
b
+=
b'WRNG'
+
struct
.
pack
(
'B'
,
0
)
self
.
assertRaises
(
aifc
.
Error
,
aifc
.
open
,
io
.
BytesIO
(
b
))
def
test_read_wrong_marks
(
self
):
b
=
b'FORM'
+
struct
.
pack
(
'>L'
,
4
)
+
b'AIFF'
b
+=
b'COMM'
+
struct
.
pack
(
'>LhlhhLL'
,
18
,
0
,
0
,
0
,
0
,
0
,
0
)
b
+=
b'SSND'
+
struct
.
pack
(
'>L'
,
8
)
+
b'
\
x00
'
*
8
b
+=
b'MARK'
+
struct
.
pack
(
'>LhB'
,
3
,
1
,
1
)
with
self
.
assertWarns
(
UserWarning
):
f
=
aifc
.
open
(
io
.
BytesIO
(
b
))
self
.
assertEqual
(
f
.
getmarkers
(),
None
)
def
test_read_comm_kludge_compname_even
(
self
):
b
=
b'FORM'
+
struct
.
pack
(
'>L'
,
4
)
+
b'AIFC'
b
+=
b'COMM'
+
struct
.
pack
(
'>LhlhhLL'
,
18
,
0
,
0
,
0
,
0
,
0
,
0
)
b
+=
b'NONE'
+
struct
.
pack
(
'B'
,
4
)
+
b'even'
+
b'
\
x00
'
b
+=
b'SSND'
+
struct
.
pack
(
'>L'
,
8
)
+
b'
\
x00
'
*
8
with
self
.
assertWarns
(
UserWarning
):
f
=
aifc
.
open
(
io
.
BytesIO
(
b
))
self
.
assertEqual
(
f
.
getcompname
(),
b'even'
)
def
test_read_comm_kludge_compname_odd
(
self
):
b
=
b'FORM'
+
struct
.
pack
(
'>L'
,
4
)
+
b'AIFC'
b
+=
b'COMM'
+
struct
.
pack
(
'>LhlhhLL'
,
18
,
0
,
0
,
0
,
0
,
0
,
0
)
b
+=
b'NONE'
+
struct
.
pack
(
'B'
,
3
)
+
b'odd'
b
+=
b'SSND'
+
struct
.
pack
(
'>L'
,
8
)
+
b'
\
x00
'
*
8
with
self
.
assertWarns
(
UserWarning
):
f
=
aifc
.
open
(
io
.
BytesIO
(
b
))
self
.
assertEqual
(
f
.
getcompname
(),
b'odd'
)
def
test_write_params_raises
(
self
):
fout
=
aifc
.
open
(
io
.
BytesIO
(),
'wb'
)
wrong_params
=
(
0
,
0
,
0
,
0
,
b'WRNG'
,
''
)
self
.
assertRaises
(
aifc
.
Error
,
fout
.
setparams
,
wrong_params
)
self
.
assertRaises
(
aifc
.
Error
,
fout
.
getparams
)
self
.
assertRaises
(
aifc
.
Error
,
fout
.
setnchannels
,
0
)
self
.
assertRaises
(
aifc
.
Error
,
fout
.
getnchannels
)
self
.
assertRaises
(
aifc
.
Error
,
fout
.
setsampwidth
,
0
)
self
.
assertRaises
(
aifc
.
Error
,
fout
.
getsampwidth
)
self
.
assertRaises
(
aifc
.
Error
,
fout
.
setframerate
,
0
)
self
.
assertRaises
(
aifc
.
Error
,
fout
.
getframerate
)
self
.
assertRaises
(
aifc
.
Error
,
fout
.
setcomptype
,
b'WRNG'
,
''
)
fout
.
aiff
()
fout
.
setnchannels
(
1
)
fout
.
setsampwidth
(
1
)
fout
.
setframerate
(
1
)
fout
.
setnframes
(
1
)
fout
.
writeframes
(
b'
\
x00
'
)
self
.
assertRaises
(
aifc
.
Error
,
fout
.
setparams
,
(
1
,
1
,
1
,
1
,
1
,
1
))
self
.
assertRaises
(
aifc
.
Error
,
fout
.
setnchannels
,
1
)
self
.
assertRaises
(
aifc
.
Error
,
fout
.
setsampwidth
,
1
)
self
.
assertRaises
(
aifc
.
Error
,
fout
.
setframerate
,
1
)
self
.
assertRaises
(
aifc
.
Error
,
fout
.
setnframes
,
1
)
self
.
assertRaises
(
aifc
.
Error
,
fout
.
setcomptype
,
b'NONE'
,
''
)
self
.
assertRaises
(
aifc
.
Error
,
fout
.
aiff
)
self
.
assertRaises
(
aifc
.
Error
,
fout
.
aifc
)
def
test_write_params_singles
(
self
):
fout
=
aifc
.
open
(
io
.
BytesIO
(),
'wb'
)
fout
.
aifc
()
fout
.
setnchannels
(
1
)
fout
.
setsampwidth
(
2
)
fout
.
setframerate
(
3
)
fout
.
setnframes
(
4
)
fout
.
setcomptype
(
b'NONE'
,
b'name'
)
self
.
assertEqual
(
fout
.
getnchannels
(),
1
)
self
.
assertEqual
(
fout
.
getsampwidth
(),
2
)
self
.
assertEqual
(
fout
.
getframerate
(),
3
)
self
.
assertEqual
(
fout
.
getnframes
(),
0
)
self
.
assertEqual
(
fout
.
tell
(),
0
)
self
.
assertEqual
(
fout
.
getcomptype
(),
b'NONE'
)
self
.
assertEqual
(
fout
.
getcompname
(),
b'name'
)
fout
.
writeframes
(
b'
\
x00
'
*
4
*
fout
.
getsampwidth
()
*
fout
.
getnchannels
())
self
.
assertEqual
(
fout
.
getnframes
(),
4
)
self
.
assertEqual
(
fout
.
tell
(),
4
)
def
test_write_params_bunch
(
self
):
fout
=
aifc
.
open
(
io
.
BytesIO
(),
'wb'
)
fout
.
aifc
()
p
=
(
1
,
2
,
3
,
4
,
b'NONE'
,
b'name'
)
fout
.
setparams
(
p
)
self
.
assertEqual
(
fout
.
getparams
(),
p
)
fout
.
initfp
(
None
)
def
test_write_header_raises
(
self
):
fout
=
aifc
.
open
(
io
.
BytesIO
(),
'wb'
)
self
.
assertRaises
(
aifc
.
Error
,
fout
.
close
)
fout
.
setnchannels
(
1
)
self
.
assertRaises
(
aifc
.
Error
,
fout
.
close
)
fout
.
setsampwidth
(
1
)
self
.
assertRaises
(
aifc
.
Error
,
fout
.
close
)
fout
.
initfp
(
None
)
def
test_write_header_comptype_raises
(
self
):
for
comptype
in
(
b'ULAW'
,
b'ulaw'
,
b'ALAW'
,
b'alaw'
,
b'G722'
):
fout
=
aifc
.
open
(
io
.
BytesIO
(),
'wb'
)
fout
.
setsampwidth
(
1
)
fout
.
setcomptype
(
comptype
,
b''
)
self
.
assertRaises
(
aifc
.
Error
,
fout
.
close
)
fout
.
initfp
(
None
)
def
test_write_markers_raises
(
self
):
fout
=
aifc
.
open
(
io
.
BytesIO
(),
'wb'
)
self
.
assertRaises
(
aifc
.
Error
,
fout
.
setmark
,
0
,
0
,
b''
)
self
.
assertRaises
(
aifc
.
Error
,
fout
.
setmark
,
1
,
-
1
,
b''
)
self
.
assertRaises
(
aifc
.
Error
,
fout
.
setmark
,
1
,
0
,
None
)
self
.
assertRaises
(
aifc
.
Error
,
fout
.
getmark
,
1
)
fout
.
initfp
(
None
)
def
test_write_aiff_by_extension
(
self
):
sampwidth
=
2
fout
=
self
.
fout
=
aifc
.
open
(
TESTFN
+
'.aiff'
,
'wb'
)
fout
.
setparams
((
1
,
sampwidth
,
1
,
1
,
b'ULAW'
,
b''
))
frames
=
b'
\
x00
'
*
fout
.
getnchannels
()
*
sampwidth
fout
.
writeframes
(
frames
)
fout
.
close
()
f
=
self
.
f
=
aifc
.
open
(
TESTFN
+
'.aiff'
,
'rb'
)
self
.
assertEqual
(
f
.
getcomptype
(),
b'NONE'
)
f
.
close
()
def
test_main
():
def
test_main
():
run_unittest
(
AIFCTest
)
run_unittest
(
AIFCTest
)
...
...
Misc/NEWS
View file @
56bac7b9
...
@@ -24,6 +24,8 @@ Core and Builtins
...
@@ -24,6 +24,8 @@ Core and Builtins
Library
Library
-------
-------
-
Issue
#
13394
:
the
aifc
module
now
uses
warnings
.
warn
()
to
signal
warnings
.
-
Issue
#
14252
:
Fix
subprocess
.
Popen
.
terminate
()
to
not
raise
an
error
under
-
Issue
#
14252
:
Fix
subprocess
.
Popen
.
terminate
()
to
not
raise
an
error
under
Windows
when
the
child
process
has
already
exited
.
Windows
when
the
child
process
has
already
exited
.
...
...
Modules/_pickle.c
View file @
56bac7b9
...
@@ -2814,14 +2814,19 @@ save_global(PicklerObject *self, PyObject *obj, PyObject *name)
...
@@ -2814,14 +2814,19 @@ save_global(PicklerObject *self, PyObject *obj, PyObject *name)
static
int
static
int
save_ellipsis
(
PicklerObject
*
self
,
PyObject
*
obj
)
save_ellipsis
(
PicklerObject
*
self
,
PyObject
*
obj
)
{
{
return
save_global
(
self
,
Py_Ellipsis
,
PyUnicode_FromString
(
"Ellipsis"
));
PyObject
*
str
=
PyUnicode_FromString
(
"Ellipsis"
);
if
(
str
==
NULL
)
return
-
1
;
return
save_global
(
self
,
Py_Ellipsis
,
str
);
}
}
static
int
static
int
save_notimplemented
(
PicklerObject
*
self
,
PyObject
*
obj
)
save_notimplemented
(
PicklerObject
*
self
,
PyObject
*
obj
)
{
{
return
save_global
(
self
,
Py_NotImplemented
,
PyObject
*
str
=
PyUnicode_FromString
(
"NotImplemented"
);
PyUnicode_FromString
(
"NotImplemented"
));
if
(
str
==
NULL
)
return
-
1
;
return
save_global
(
self
,
Py_NotImplemented
,
str
);
}
}
static
int
static
int
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment