[Python-modules-commits] [safe] 01/08: import safe-0.4.orig.tar.gz

Carl Suster arcresu-guest at moszumanska.debian.org
Sat Jan 7 07:15:07 UTC 2017


This is an automated email from the git hooks/post-receive script.

arcresu-guest pushed a commit to branch master
in repository safe.

commit e162d04c94f09a1df674ea2b4a6f8f11bf581235
Author: Carl Suster <carl at contraflo.ws>
Date:   Sat Jan 7 17:26:13 2017 +1100

    import safe-0.4.orig.tar.gz
---
 LICENSE                            |    27 +
 MANIFEST.in                        |     3 +
 PKG-INFO                           |    98 +
 README.rst                         |    71 +
 Safe.egg-info/PKG-INFO             |    98 +
 Safe.egg-info/SOURCES.txt          |    12 +
 Safe.egg-info/dependency_links.txt |     1 +
 Safe.egg-info/not-zip-safe         |     1 +
 Safe.egg-info/top_level.txt        |     1 +
 safe/__init__.py                   |   193 +
 safe/_compat.py                    |    38 +
 safe/words.dat                     | 10000 +++++++++++++++++++++++++++++++++++
 setup.cfg                          |     5 +
 setup.py                           |    61 +
 14 files changed, 10609 insertions(+)

diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..e16aae2
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,27 @@
+Copyright (c) 2014, Hsiaoming Yang.
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of flask-oauthlib nor the names of its contributors
+      may be used to endorse or promote products derived from this software
+      without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000..9d63b4c
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1,3 @@
+include README.rst
+include LICENSE
+include safe/words.dat
diff --git a/PKG-INFO b/PKG-INFO
new file mode 100644
index 0000000..602145e
--- /dev/null
+++ b/PKG-INFO
@@ -0,0 +1,98 @@
+Metadata-Version: 1.1
+Name: Safe
+Version: 0.4
+Summary: Is your password safe?
+Home-page: https://github.com/lepture/safe
+Author: Hsiaoming Yang
+Author-email: me at lepture.com
+License: BSD
+Description: Safe
+        ====
+        
+        Is your password safe? **Safe** will check the password strength for you.
+        
+        .. image:: https://travis-ci.org/lepture/safe.png?branch=master
+           :target: https://travis-ci.org/lepture/safe
+        
+        How it works
+        ------------
+        
+        **Safe** will check if the password has a simple pattern, for instance:
+        
+        1. password is in the order on your QWERT keyboards.
+        2. password is simple alphabet step by step, such as: abcd, 1357
+        
+        **Safe** will check if the password is a common used password.
+        Many thanks to Mark Burnett for the great work on `10000 Top Passwords <https://xato.net/passwords/more-top-worst-passwords/>`_.
+        
+        **Safe** will check if the password has mixed number, alphabet, marks.
+        
+        Installation
+        ------------
+        
+        Install Safe with pip::
+        
+            $ pip install Safe
+        
+        If pip is not available, try easy_install::
+        
+            $ easy_install Safe
+        
+        Usage
+        -----
+        
+        It's very simple to check the strength of a password::
+        
+            >>> import safe
+            >>> safe.check(1)
+            terrible
+            >>> safe.check('password')
+            simpile
+            >>> safe.check('is.safe')
+            medium
+            >>> safe.check('x*V-92Ba')
+            strong
+            >>> strength = safe.check('x*V-92Ba')
+            >>> bool(strength)
+            True
+            >>> repr(strength)
+            'strong'
+            >>> str(strength)
+            'password is perfect'
+            >>> strength.valid
+            True
+            >>> strength.strength
+            'strong'
+            >>> strength.message
+            'good password'
+        
+        
+        Environ Variables
+        -----------------
+        
+        1. **PYTHON_SAFE_WORDS_CACHE**: cache words in this file, default is a tempfile
+        2. **PYTHON_SAFE_WORDS_FILE**: words vocabulary file, default is the 10k top passwords
+        
+        Other Implementations
+        ---------------------
+        
+        1. **JavaScript**: `lepture/safe.js <https://github.com/lepture/safe.js>`_
+        
+Platform: any
+Classifier: Development Status :: 3 - Alpha
+Classifier: Environment :: Web Environment
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved
+Classifier: License :: OSI Approved :: BSD License
+Classifier: Operating System :: MacOS
+Classifier: Operating System :: POSIX
+Classifier: Operating System :: POSIX :: Linux
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2.6
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3.3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: Implementation
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Classifier: Programming Language :: Python :: Implementation :: PyPy
+Classifier: Topic :: Software Development :: Libraries :: Python Modules
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..2a1517c
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,71 @@
+Safe
+====
+
+Is your password safe? **Safe** will check the password strength for you.
+
+.. image:: https://travis-ci.org/lepture/safe.png?branch=master
+   :target: https://travis-ci.org/lepture/safe
+
+How it works
+------------
+
+**Safe** will check if the password has a simple pattern, for instance:
+
+1. password is in the order on your QWERT keyboards.
+2. password is simple alphabet step by step, such as: abcd, 1357
+
+**Safe** will check if the password is a common used password.
+Many thanks to Mark Burnett for the great work on `10000 Top Passwords <https://xato.net/passwords/more-top-worst-passwords/>`_.
+
+**Safe** will check if the password has mixed number, alphabet, marks.
+
+Installation
+------------
+
+Install Safe with pip::
+
+    $ pip install Safe
+
+If pip is not available, try easy_install::
+
+    $ easy_install Safe
+
+Usage
+-----
+
+It's very simple to check the strength of a password::
+
+    >>> import safe
+    >>> safe.check(1)
+    terrible
+    >>> safe.check('password')
+    simpile
+    >>> safe.check('is.safe')
+    medium
+    >>> safe.check('x*V-92Ba')
+    strong
+    >>> strength = safe.check('x*V-92Ba')
+    >>> bool(strength)
+    True
+    >>> repr(strength)
+    'strong'
+    >>> str(strength)
+    'password is perfect'
+    >>> strength.valid
+    True
+    >>> strength.strength
+    'strong'
+    >>> strength.message
+    'good password'
+
+
+Environ Variables
+-----------------
+
+1. **PYTHON_SAFE_WORDS_CACHE**: cache words in this file, default is a tempfile
+2. **PYTHON_SAFE_WORDS_FILE**: words vocabulary file, default is the 10k top passwords
+
+Other Implementations
+---------------------
+
+1. **JavaScript**: `lepture/safe.js <https://github.com/lepture/safe.js>`_
diff --git a/Safe.egg-info/PKG-INFO b/Safe.egg-info/PKG-INFO
new file mode 100644
index 0000000..602145e
--- /dev/null
+++ b/Safe.egg-info/PKG-INFO
@@ -0,0 +1,98 @@
+Metadata-Version: 1.1
+Name: Safe
+Version: 0.4
+Summary: Is your password safe?
+Home-page: https://github.com/lepture/safe
+Author: Hsiaoming Yang
+Author-email: me at lepture.com
+License: BSD
+Description: Safe
+        ====
+        
+        Is your password safe? **Safe** will check the password strength for you.
+        
+        .. image:: https://travis-ci.org/lepture/safe.png?branch=master
+           :target: https://travis-ci.org/lepture/safe
+        
+        How it works
+        ------------
+        
+        **Safe** will check if the password has a simple pattern, for instance:
+        
+        1. password is in the order on your QWERT keyboards.
+        2. password is simple alphabet step by step, such as: abcd, 1357
+        
+        **Safe** will check if the password is a common used password.
+        Many thanks to Mark Burnett for the great work on `10000 Top Passwords <https://xato.net/passwords/more-top-worst-passwords/>`_.
+        
+        **Safe** will check if the password has mixed number, alphabet, marks.
+        
+        Installation
+        ------------
+        
+        Install Safe with pip::
+        
+            $ pip install Safe
+        
+        If pip is not available, try easy_install::
+        
+            $ easy_install Safe
+        
+        Usage
+        -----
+        
+        It's very simple to check the strength of a password::
+        
+            >>> import safe
+            >>> safe.check(1)
+            terrible
+            >>> safe.check('password')
+            simpile
+            >>> safe.check('is.safe')
+            medium
+            >>> safe.check('x*V-92Ba')
+            strong
+            >>> strength = safe.check('x*V-92Ba')
+            >>> bool(strength)
+            True
+            >>> repr(strength)
+            'strong'
+            >>> str(strength)
+            'password is perfect'
+            >>> strength.valid
+            True
+            >>> strength.strength
+            'strong'
+            >>> strength.message
+            'good password'
+        
+        
+        Environ Variables
+        -----------------
+        
+        1. **PYTHON_SAFE_WORDS_CACHE**: cache words in this file, default is a tempfile
+        2. **PYTHON_SAFE_WORDS_FILE**: words vocabulary file, default is the 10k top passwords
+        
+        Other Implementations
+        ---------------------
+        
+        1. **JavaScript**: `lepture/safe.js <https://github.com/lepture/safe.js>`_
+        
+Platform: any
+Classifier: Development Status :: 3 - Alpha
+Classifier: Environment :: Web Environment
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved
+Classifier: License :: OSI Approved :: BSD License
+Classifier: Operating System :: MacOS
+Classifier: Operating System :: POSIX
+Classifier: Operating System :: POSIX :: Linux
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2.6
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3.3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: Implementation
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Classifier: Programming Language :: Python :: Implementation :: PyPy
+Classifier: Topic :: Software Development :: Libraries :: Python Modules
diff --git a/Safe.egg-info/SOURCES.txt b/Safe.egg-info/SOURCES.txt
new file mode 100644
index 0000000..ecc8a91
--- /dev/null
+++ b/Safe.egg-info/SOURCES.txt
@@ -0,0 +1,12 @@
+LICENSE
+MANIFEST.in
+README.rst
+setup.py
+Safe.egg-info/PKG-INFO
+Safe.egg-info/SOURCES.txt
+Safe.egg-info/dependency_links.txt
+Safe.egg-info/not-zip-safe
+Safe.egg-info/top_level.txt
+safe/__init__.py
+safe/_compat.py
+safe/words.dat
\ No newline at end of file
diff --git a/Safe.egg-info/dependency_links.txt b/Safe.egg-info/dependency_links.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/Safe.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/Safe.egg-info/not-zip-safe b/Safe.egg-info/not-zip-safe
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/Safe.egg-info/not-zip-safe
@@ -0,0 +1 @@
+
diff --git a/Safe.egg-info/top_level.txt b/Safe.egg-info/top_level.txt
new file mode 100644
index 0000000..b7767f6
--- /dev/null
+++ b/Safe.egg-info/top_level.txt
@@ -0,0 +1 @@
+safe
diff --git a/safe/__init__.py b/safe/__init__.py
new file mode 100644
index 0000000..10e0624
--- /dev/null
+++ b/safe/__init__.py
@@ -0,0 +1,193 @@
+# coding: utf-8
+"""
+    safe
+    ~~~~
+
+    Detect if your password is safe.
+
+    :copyright: (c) 2014 by Hsiaoming Yang
+"""
+
+import re
+import logging
+import os.path
+import tempfile
+from ._compat import to_unicode, pickle
+
+__version__ = '0.4'
+__author__ = 'Hsiaoming Yang <me at lepture.com>'
+
+__all__ = [
+    'is_asdf', 'is_by_step', 'is_common_password',
+    'check', 'Strength',
+]
+
+log = logging.getLogger('safe')
+
+LOWER = re.compile(r'[a-z]')
+UPPER = re.compile(r'[A-Z]')
+NUMBER = re.compile(r'[0-9]')
+MARKS = re.compile(r'[^0-9a-zA-Z]')
+
+TERRIBLE = 0
+SIMPLE = 1
+MEDIUM = 2
+STRONG = 3
+
+
+def _load_words():
+    filename = 'safe-%s.words.cache' % __version__
+    _cache_file = os.environ.get(
+        'PYTHON_SAFE_WORDS_CACHE',
+        os.path.join(tempfile.gettempdir(), filename),
+    )
+
+    if os.path.exists(_cache_file):
+        log.debug('Reading from cache file %s' % _cache_file)
+        try:
+            with open(_cache_file, 'rb') as f:
+                return pickle.load(f)
+        except:
+            pass
+
+    filepath = os.environ.get(
+        'PYTHON_SAFE_WORDS_FILE',
+        os.path.join(os.path.dirname(__file__), 'words.dat'),
+    )
+    words = {}
+    with open(filepath, 'rb') as f:
+        for line in f.readlines():
+            name, freq = line.split()
+            words[to_unicode(name.strip())] = int(freq.strip())
+
+    with open(_cache_file, 'wb') as f:
+        log.debug('Dump to cache file %s' % _cache_file)
+        pickle.dump(words, f)
+    return words
+
+WORDS = _load_words()
+ASDF = ['qwertyuiop', 'asdfghjkl', 'zxcvbnm']
+
+
+def is_asdf(raw):
+    """If the password is in the order on keyboard."""
+
+    reverse = raw[::-1]
+    asdf = ''.join(ASDF)
+
+    if raw in asdf or reverse in asdf:
+        return True
+
+    asdf = ''.join(ASDF[::-1])
+
+    return raw in asdf or reverse in asdf
+
+
+def is_by_step(raw):
+    """If the password is alphabet step by step."""
+    # make sure it is unicode
+    delta = ord(raw[1]) - ord(raw[0])
+
+    for i in range(2, len(raw)):
+        if ord(raw[i]) - ord(raw[i-1]) != delta:
+            return False
+
+    return True
+
+
+def is_common_password(raw, freq=0):
+    """If the password is common used.
+
+    10k top passwords: https://xato.net/passwords/more-top-worst-passwords/
+    """
+    frequent = WORDS.get(raw, 0)
+    if freq:
+        return frequent > freq
+    return bool(frequent)
+
+
+class Strength(object):
+    """Measure the strength of a password.
+
+    Here are some common usages of strength::
+
+        >>> strength = Strength(True, 'strong', 'password is perfect')
+        >>> bool(strength)
+        True
+        >>> repr(strength)
+        'strong'
+        >>> str(strength)
+        'password is perfect'
+
+    :param valid: if the password is valid to use
+    :param strength: the strength level of the password
+    :param message: a message related to the password
+    """
+    def __init__(self, valid, strength, message):
+        self.valid = valid
+        self.strength = strength
+        self.message = message
+
+    def __repr__(self):
+        return self.strength
+
+    def __str__(self):
+        return self.message
+
+    def __unicode__(self):
+        return self.message
+
+    def __nonzero__(self):
+        return self.valid
+
+    def __bool__(self):
+        return self.valid
+
+
+def check(raw, length=8, freq=0, min_types=3, level=STRONG):
+    """Check the safety level of the password.
+
+    :param raw: raw text password.
+    :param length: minimal length of the password.
+    :param freq: minimum frequency.
+    :param min_types: minimum character family.
+    :param level: minimum level to validate a password.
+    """
+    raw = to_unicode(raw)
+    if level > STRONG:
+        level = STRONG
+
+    if len(raw) < length:
+        return Strength(False, 'terrible', 'password is too short')
+
+    if is_asdf(raw) or is_by_step(raw):
+        return Strength(False, 'simple', 'password has a pattern')
+
+    if is_common_password(raw, freq=freq):
+        return Strength(False, 'simple', 'password is too common')
+
+    types = 0
+
+    if LOWER.search(raw):
+        types += 1
+
+    if UPPER.search(raw):
+        types += 1
+
+    if NUMBER.search(raw):
+        types += 1
+
+    if MARKS.search(raw):
+        types += 1
+
+    if len(raw) < 8 and types < 2:
+        return Strength(level<=SIMPLE, 'simple', 'password is too simple')
+
+    if types < min_types:
+        return Strength(level<=MEDIUM, 'medium', 'password is good enough, but not strong')
+
+    return Strength(True, 'strong', 'password is perfect')
+
+
+def safety(raw, length=8, freq=0, min_types=2, level=STRONG):
+    return check(raw, length=8, freq=0, min_types=2, level=STRONG)
diff --git a/safe/_compat.py b/safe/_compat.py
new file mode 100644
index 0000000..5ed211b
--- /dev/null
+++ b/safe/_compat.py
@@ -0,0 +1,38 @@
+# coding: utf-8
+"""
+    safe._compat
+
+    Compatible module for Python 2 and Python 3.
+
+    :copyright: (c) 2014 by Hsiaoming Yang
+"""
+
+
+import sys
+try:
+    import cPickle as pickle
+except ImportError:
+    import pickle
+
+if sys.version_info[0] == 3:
+    unicode_type = str
+    bytes_type = bytes
+else:
+    unicode_type = unicode
+    bytes_type = str
+
+
+__all__ = ['pickle', 'to_unicode']
+
+
+def to_unicode(value, encoding='utf-8'):
+    if isinstance(value, unicode_type):
+        return value
+
+    if isinstance(value, bytes_type):
+        return unicode_type(value, encoding=encoding)
+
+    if isinstance(value, int):
+        return unicode_type(str(value))
+
+    return value
diff --git a/safe/words.dat b/safe/words.dat
new file mode 100644
index 0000000..507f8b3
--- /dev/null
+++ b/safe/words.dat
@@ -0,0 +1,10000 @@
+password 32027
+123456 25969
+12345678 8667
+1234 5786
+qwerty 5455
+12345 4523
+dragon 4321
+pussy 3945
+baseball 3739
+football 3682
+letmein 3536
+monkey 3487
+696969 3345
+abc123 3310
+mustang 3289
+michael 3249
+shadow 3209
+master 3182
+jennifer 2581
+111111 2570
+2000 2550
+jordan 2538
+superman 2523
+harley 2485
+1234567 2479
+fuckme 2378
+hunter 2377
+fuckyou 2362
+trustno1 2347
+ranger 2265
+buster 2254
+thomas 2194
+tigger 2192
+robert 2176
+soccer 2120
+fuck 2119
+batman 2108
+test 2097
+pass 2093
+killer 2044
+hockey 2040
+george 2033
+charlie 2013
+andrew 2009
+michelle 1977
+love 1960
+sunshine 1956
+jessica 1924
+asshole 1913
+6969 1889
+pepper 1881
+daniel 1822
+access 1817
+123456789 1793
+654321 1772
+joshua 1737
+maggie 1690
+starwars 1679
+silver 1666
+william 1662
+dallas 1659
+yankees 1657
+123123 1654
+ashley 1652
+666666 1645
+hello 1644
+amanda 1642
+orange 1623
+biteme 1621
+freedom 1612
+computer 1609
+sexy 1608
+nicole 1606
+thunder 1606
+ginger 1602
+heather 1597
+hammer 1596
+summer 1592
+corvette 1591
+taylor 1578
+fucker 1577
+austin 1554
+1111 1541
+merlin 1531
+matthew 1527
+121212 1499
+golfer 1491
+princess 1486
+cheese 1486
+martin 1469
+chelsea 1459
+patrick 1458
+richard 1457
+diamond 1432
+yellow 1422
+bigdog 1419
+secret 1406
+asdfgh 1403
+sparky 1400
+cowboy 1398
+camaro 1374
+anthony 1371
+matrix 1370
+falcon 1362
+iloveyou 1355
+bailey 1353
+guitar 1352
+jackson 1351
+purple 1341
+scooter 1340
+phoenix 1339
+aaaaaa 1329
+tigers 1302
+morgan 1302
+porsche 1295
+mickey 1291
+maverick 1288
+cookie 1287
+nascar 1277
+justin 1271
+131313 1271
+peanut 1271
+money 1270
+horny 1265
+samantha 1263
+panties 1261
+steelers 1259
+joseph 1253
+snoopy 1248
+boomer 1233
+whatever 1230
+iceman 1230
+smokey 1228
+gateway 1226
+dakota 1222
+cowboys 1221
+eagles 1218
+chicken 1200
+dick 1197
+black 1192
+zxcvbn 1190
+please 1187
+andrea 1187
+ferrari 1182
+knight 1177
+hardcore 1175
+melissa 1172
+compaq 1170
+booboo 1169
+coffee 1169
+bitch 1168
+johnny 1163
+bulldog 1157
+xxxxxx 1156
+welcome 1154
+james 1147
+player 1146
+ncc1701 1143
+wizard 1136
+scooby 1131
+charles 1130
+junior 1128
+internet 1127
+bigdick 1121
+mike 1120
+brandy 1113
+tennis 1107
+blowjob 1105
+banana 1100
+monster 1097
+lakers 1096
+spider 1096
+miller 1092
+rabbit 1091
+enter 1088
+mercedes 1085
+brandon 1080
+steven 1076
+fender 1076
+john 1073
+yamaha 1067
+diablo 1061
+chris 1059
+boston 1058
+tiger 1054
+marine 1054
+rangers 1053
+chicago 1053
+gandalf 1050
+winter 1048
+bigtits 1044
+barney 1036
+edward 1035
+raiders 1032
+porn 1030
+badboy 1028
+spanky 1023
+blowme 1023
+bigdaddy 1022
+johnson 1015
+chester 1015
+london 1014
+midnight 1010
+fishing 1004
+blue 1004
+000000 1003
+hannah 1000
+slayer 998
+11111111 997
+rachel 989
+sexsex 985
+redsox 981
+thx1138 979
+asdf 975
+panther 967
+marlboro 967
+zxcvbnm 966
+oliver 963
+arsenal 963
+qazwsx 962
+mother 960
+victoria 951
+7777777 950
+angel 949
+jasper 949
+david 944
+winner 941
+crystal 931
+golden 928
+butthead 925
+viking 922
+iwantu 921
+jack 921
+shannon 918
+murphy 915
+angels 912
+prince 912
+cameron 908
+girls 902
+madison 901
+wilson 899
+carlos 897
+hooters 891
+willie 886
+startrek 884
+captain 882
+maddog 882
+jasmine 878
+butter 877
+booger 876
+angela 875
+golf 873
+lauren 869
+rocket 868
+tiffany 866
+theman 865
+dennis 863
+liverpoo 862
+flower 859
+forever 858
+green 856
+jackie 852
+muffin 849
+turtle 845
+sophie 841
+danielle 836
+redskins 834
+toyota 834
+jason 831
+sierra 830
+winston 829
+debbie 828
+giants 824
+packers 823
+newyork 823
+jeremy 822
+casper 819
+bubba 817
+112233 816
+lovers 813
+sandra 813
+united 812
+mountain 812
+cooper 809
+driver 807
+tucker 806
+helpme 804
+fucking 800
+pookie 799
+lucky 799
+maxwell 798
+8675309 797
+bear 795
+suckit 794
+gators 794
+5150 792
+fuckoff 791
+222222 791
+shithead 791
+jaguar 788
+monica 787
+fred 786
+hotdog 784
+happy 784
+tits 780
+gemini 778
+lover 776
+canada 775
+777777 775
+xxxxxxxx 775
+nathan 774
+victor 772
+florida 772
+88888888 771
+nicholas 771
+rosebud 769
+metallic 768
+trouble 768
+doctor 768
+tomcat 767
+success 767
+stupid 767
+warrior 766
+peaches 765
+fish 763
+apples 763
+qwertyui 759
+magic 758
+buddy 758
+rainbow 753
+dolphins 753
+gunner 751
+987654 750
+freddy 748
+alexis 746
+braves 746
+cock 743
+2112 742
+1212 741
+cocacola 741
+xavier 739
+dolphin 739
+testing 738
+bond007 737
+member 732
+calvin 728
+voodoo 727
+7777 724
+samson 723
+alex 722
+fire 722
+apollo 722
+tester 719
+walter 716
+beavis 715
+voyager 712
+peter 711
+porno 711
+bonnie 710
+rush2112 709
+scorpio 708
+beer 708
... 9716 lines suppressed ...

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/safe.git



More information about the Python-modules-commits mailing list