Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
D
django
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
django
Commits
52f0b2b6
Kaydet (Commit)
52f0b2b6
authored
Ock 02, 2015
tarafından
Tim Graham
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Updated six to 1.9.0.
üst
839f431e
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
87 additions
and
41 deletions
+87
-41
six.py
django/utils/six.py
+83
-25
1.4.17.txt
docs/releases/1.4.17.txt
+1
-1
1.6.9.txt
docs/releases/1.6.9.txt
+1
-1
1.7.2.txt
docs/releases/1.7.2.txt
+1
-1
python3.txt
docs/topics/python3.txt
+1
-13
No files found.
django/utils/six.py
Dosyayı görüntüle @
52f0b2b6
"""Utilities for writing code that runs on Python 2 and 3"""
# Copyright (c) 2010-201
4
Benjamin Peterson
# Copyright (c) 2010-201
5
Benjamin Peterson
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
...
...
@@ -23,12 +23,13 @@
from
__future__
import
absolute_import
import
functools
import
itertools
import
operator
import
sys
import
types
__author__
=
"Benjamin Peterson <benjamin@python.org>"
__version__
=
"1.
8
.0"
__version__
=
"1.
9
.0"
# Useful for very coarse version differentiation.
...
...
@@ -88,8 +89,12 @@ class _LazyDescr(object):
def
__get__
(
self
,
obj
,
tp
):
result
=
self
.
_resolve
()
setattr
(
obj
,
self
.
name
,
result
)
# Invokes __set__.
# This is a bit ugly, but it avoids running this again.
delattr
(
obj
.
__class__
,
self
.
name
)
try
:
# This is a bit ugly, but it avoids running this again by
# removing this descriptor.
delattr
(
obj
.
__class__
,
self
.
name
)
except
AttributeError
:
pass
return
result
...
...
@@ -554,6 +559,12 @@ if PY3:
def
iterlists
(
d
,
**
kw
):
return
iter
(
d
.
lists
(
**
kw
))
viewkeys
=
operator
.
methodcaller
(
"keys"
)
viewvalues
=
operator
.
methodcaller
(
"values"
)
viewitems
=
operator
.
methodcaller
(
"items"
)
else
:
def
iterkeys
(
d
,
**
kw
):
return
iter
(
d
.
iterkeys
(
**
kw
))
...
...
@@ -567,6 +578,12 @@ else:
def
iterlists
(
d
,
**
kw
):
return
iter
(
d
.
iterlists
(
**
kw
))
viewkeys
=
operator
.
methodcaller
(
"viewkeys"
)
viewvalues
=
operator
.
methodcaller
(
"viewvalues"
)
viewitems
=
operator
.
methodcaller
(
"viewitems"
)
_add_doc
(
iterkeys
,
"Return an iterator over the keys of a dictionary."
)
_add_doc
(
itervalues
,
"Return an iterator over the values of a dictionary."
)
_add_doc
(
iteritems
,
...
...
@@ -593,6 +610,9 @@ if PY3:
import
io
StringIO
=
io
.
StringIO
BytesIO
=
io
.
BytesIO
_assertCountEqual
=
"assertCountEqual"
_assertRaisesRegex
=
"assertRaisesRegex"
_assertRegex
=
"assertRegex"
else
:
def
b
(
s
):
return
s
...
...
@@ -605,14 +625,28 @@ else:
return
ord
(
bs
[
0
])
def
indexbytes
(
buf
,
i
):
return
ord
(
buf
[
i
])
def
iterbytes
(
buf
):
return
(
ord
(
byte
)
for
byte
in
buf
)
iterbytes
=
functools
.
partial
(
itertools
.
imap
,
ord
)
import
StringIO
StringIO
=
BytesIO
=
StringIO
.
StringIO
_assertCountEqual
=
"assertItemsEqual"
_assertRaisesRegex
=
"assertRaisesRegexp"
_assertRegex
=
"assertRegexpMatches"
_add_doc
(
b
,
"""Byte literal"""
)
_add_doc
(
u
,
"""Text literal"""
)
def
assertCountEqual
(
self
,
*
args
,
**
kwargs
):
return
getattr
(
self
,
_assertCountEqual
)(
*
args
,
**
kwargs
)
def
assertRaisesRegex
(
self
,
*
args
,
**
kwargs
):
return
getattr
(
self
,
_assertRaisesRegex
)(
*
args
,
**
kwargs
)
def
assertRegex
(
self
,
*
args
,
**
kwargs
):
return
getattr
(
self
,
_assertRegex
)(
*
args
,
**
kwargs
)
if
PY3
:
exec_
=
getattr
(
moves
.
builtins
,
"exec"
)
...
...
@@ -643,6 +677,21 @@ else:
"""
)
if
sys
.
version_info
[:
2
]
==
(
3
,
2
):
exec_
(
"""def raise_from(value, from_value):
if from_value is None:
raise value
raise value from from_value
"""
)
elif
sys
.
version_info
[:
2
]
>
(
3
,
2
):
exec_
(
"""def raise_from(value, from_value):
raise value from from_value
"""
)
else
:
def
raise_from
(
value
,
from_value
):
raise
value
print_
=
getattr
(
moves
.
builtins
,
"print"
,
None
)
if
print_
is
None
:
def
print_
(
*
args
,
**
kwargs
):
...
...
@@ -697,6 +746,14 @@ if print_ is None:
write
(
sep
)
write
(
arg
)
write
(
end
)
if
sys
.
version_info
[:
2
]
<
(
3
,
3
):
_print
=
print_
def
print_
(
*
args
,
**
kwargs
):
fp
=
kwargs
.
get
(
"file"
,
sys
.
stdout
)
flush
=
kwargs
.
pop
(
"flush"
,
False
)
_print
(
*
args
,
**
kwargs
)
if
flush
and
fp
is
not
None
:
fp
.
flush
()
_add_doc
(
reraise
,
"""Reraise an exception."""
)
...
...
@@ -704,7 +761,7 @@ if sys.version_info[0:2] < (3, 4):
def
wraps
(
wrapped
,
assigned
=
functools
.
WRAPPER_ASSIGNMENTS
,
updated
=
functools
.
WRAPPER_UPDATES
):
def
wrapper
(
f
):
f
=
functools
.
wraps
(
wrapped
)(
f
)
f
=
functools
.
wraps
(
wrapped
,
assigned
,
updated
)(
f
)
f
.
__wrapped__
=
wrapped
return
f
return
wrapper
...
...
@@ -737,6 +794,25 @@ def add_metaclass(metaclass):
return
metaclass
(
cls
.
__name__
,
cls
.
__bases__
,
orig_vars
)
return
wrapper
def
python_2_unicode_compatible
(
klass
):
"""
A decorator that defines __unicode__ and __str__ methods under Python 2.
Under Python 3 it does nothing.
To support Python 2 and 3 with a single code base, define a __str__ method
returning text and apply this decorator to the class.
"""
if
PY2
:
if
'__str__'
not
in
klass
.
__dict__
:
raise
ValueError
(
"@python_2_unicode_compatible cannot be applied "
"to
%
s because it doesn't define __str__()."
%
klass
.
__name__
)
klass
.
__unicode__
=
klass
.
__str__
klass
.
__str__
=
lambda
self
:
self
.
__unicode__
()
.
encode
(
'utf-8'
)
return
klass
# Complete the moves implementation.
# This code is at the end of this module to speed up module loading.
# Turn this module into a package.
...
...
@@ -765,15 +841,9 @@ sys.meta_path.append(_importer)
### Additional customizations for Django ###
if
PY3
:
_assertCountEqual
=
"assertCountEqual"
_assertRaisesRegex
=
"assertRaisesRegex"
_assertRegex
=
"assertRegex"
memoryview
=
memoryview
buffer_types
=
(
bytes
,
bytearray
,
memoryview
)
else
:
_assertCountEqual
=
"assertItemsEqual"
_assertRaisesRegex
=
"assertRaisesRegexp"
_assertRegex
=
"assertRegexpMatches"
# memoryview and buffer are not strictly equivalent, but should be fine for
# django core usage (mainly BinaryField). However, Jython doesn't support
# buffer (see http://bugs.jython.org/issue1521), so we have to be careful.
...
...
@@ -782,15 +852,3 @@ else:
else
:
memoryview
=
buffer
buffer_types
=
(
bytearray
,
memoryview
)
def
assertCountEqual
(
self
,
*
args
,
**
kwargs
):
return
getattr
(
self
,
_assertCountEqual
)(
*
args
,
**
kwargs
)
def
assertRaisesRegex
(
self
,
*
args
,
**
kwargs
):
return
getattr
(
self
,
_assertRaisesRegex
)(
*
args
,
**
kwargs
)
def
assertRegex
(
self
,
*
args
,
**
kwargs
):
return
getattr
(
self
,
_assertRegex
)(
*
args
,
**
kwargs
)
docs/releases/1.4.17.txt
Dosyayı görüntüle @
52f0b2b6
...
...
@@ -7,7 +7,7 @@ Django 1.4.17 release notes
Django 1.4.17 fixes a regression in the 1.4.14 security release.
Additionally, Django's vendored version of six, :mod:`django.utils.six`, has
been upgraded to the latest release (1.
8
.0).
been upgraded to the latest release (1.
9
.0).
Bugfixes
========
...
...
docs/releases/1.6.9.txt
Dosyayı görüntüle @
52f0b2b6
...
...
@@ -7,7 +7,7 @@ Django 1.6.9 release notes
Django 1.6.9 fixes a regression in the 1.6.6 security release.
Additionally, Django's vendored version of six, :mod:`django.utils.six`, has
been upgraded to the latest release (1.
8
.0).
been upgraded to the latest release (1.
9
.0).
Bugfixes
========
...
...
docs/releases/1.7.2.txt
Dosyayı görüntüle @
52f0b2b6
...
...
@@ -7,7 +7,7 @@ Django 1.7.2 release notes
Django 1.7.2 fixes several bugs in 1.7.1.
Additionally, Django's vendored version of six, :mod:`django.utils.six`, has
been upgraded to the latest release (1.
8
.0).
been upgraded to the latest release (1.
9
.0).
Bugfixes
========
...
...
docs/topics/python3.txt
Dosyayı görüntüle @
52f0b2b6
...
...
@@ -387,19 +387,7 @@ Django customized version of six
--------------------------------
The version of six bundled with Django (``django.utils.six``) includes a few
extras.
.. function:: assertRaisesRegex(testcase, *args, **kwargs)
This replaces ``testcase.assertRaisesRegexp`` on Python 2, and
``testcase.assertRaisesRegex`` on Python 3. ``assertRaisesRegexp`` still
exists in current Python 3 versions, but issues a warning.
.. function:: assertRegex(testcase, *args, **kwargs)
This replaces ``testcase.assertRegexpMatches`` on Python 2, and
``testcase.assertRegex`` on Python 3. ``assertRegexpMatches`` still
exists in current Python 3 versions, but issues a warning.
customizations for internal use only.
.. _unicode: https://docs.python.org/2/library/functions.html#unicode
.. _ __unicode__(): https://docs.python.org/2/reference/datamodel.html#object.__unicode__
...
...
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