Merge pull request #125 from maebert/remove-slugify

Port slugify to Python3
This commit is contained in:
Manuel Ebert 2014-01-19 03:13:13 -08:00
commit 40c2bc13b5
6 changed files with 16 additions and 7 deletions

View file

@ -4,6 +4,7 @@ Changelog
### 1.7 (December 22, 2013)
* __1.7.6__ Python 3 port for slugify
* __1.7.5__ Colorama is only needed on windows. Smaller fixes
* __1.7.3__ Touches temporary files before opening them to allow more external editors.
* __1.7.2__ Dateutil added to requirements.

View file

@ -7,7 +7,7 @@ jrnl is a simple journal application for your command line.
"""
__title__ = 'jrnl'
__version__ = '1.7.5'
__version__ = '1.7.6'
__author__ = 'Manuel Ebert'
__license__ = 'MIT License'
__copyright__ = 'Copyright 2013 - 2014 Manuel Ebert'

View file

@ -3,12 +3,10 @@
import os
import string
try: from slugify import slugify
except ImportError: import slugify
try: import simplejson as json
except ImportError: import json
try: from .util import u
except (SystemError, ValueError): from util import u
try: from .util import u, slugify
except (SystemError, ValueError): from util import u, slugify
def get_tags_count(journal):

View file

@ -15,6 +15,7 @@ import re
import tempfile
import subprocess
import codecs
import unicodedata
PY3 = sys.version_info[0] == 3
PY2 = sys.version_info[0] == 2
@ -144,3 +145,14 @@ def colorize(string):
"""Returns the string wrapped in cyan ANSI escape"""
return u"\033[36m{}\033[39m".format(string)
def slugify(string):
"""Slugifies a string.
Based on public domain code from https://github.com/zacharyvoase/slugify
and ported to deal with all kinds of python 2 and 3 strings
"""
string = u(string)
ascii_string = str(unicodedata.normalize('NFKD', string).encode('ascii', 'ignore'))
no_punctuation = re.sub(r'[^\w\s-]', '', ascii_string).strip().lower()
slug = re.sub(r'[-\s]+', '-', no_punctuation)
return u(slug)

View file

@ -3,6 +3,5 @@ pytz >= 2013b
pycrypto >= 2.6
argparse==1.2.1
tzlocal == 1.0
slugify==0.0.1
keyring==3.0.5
python-dateutil==2.2

View file

@ -73,7 +73,6 @@ setup(
"parsedatetime>=1.1.2",
"pytz>=2013b",
"tzlocal==1.0",
"slugify>=0.0.1",
"keyring>=3.3",
"python-dateutil>=2.2"
] + [p for p, cond in conditional_dependencies.items() if cond],