From e9485b6fdf9c9949f1253bef798866cd145b9dac Mon Sep 17 00:00:00 2001 From: Richard Harding Date: Fri, 29 Nov 2013 11:51:57 -0500 Subject: [PATCH] Tests working, makefile back into play --- CREDITS.txt | 1 + Makefile | 65 +++++++++++++++++++++++++++++++++++++++++ readability/__init__.py | 12 +++++--- readability/readable.py | 4 +-- requirements.txt | 7 +++-- setup.py | 29 ++++++++++-------- 6 files changed, 98 insertions(+), 20 deletions(-) create mode 100644 Makefile diff --git a/CREDITS.txt b/CREDITS.txt index 25afcc7..4f9d6b8 100644 --- a/CREDITS.txt +++ b/CREDITS.txt @@ -1,3 +1,4 @@ Rick Harding nhnifong Craig Maloney +Mišo Belica diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..e33b31c --- /dev/null +++ b/Makefile @@ -0,0 +1,65 @@ +# Makefile to help automate tasks +WD := $(shell pwd) +PY := bin/python +PIP := bin/pip +PEP8 := bin/pep8 +NOSE := bin/nosetests + +# ########### +# Tests rule! +# ########### +.PHONY: test +test: venv develop $(NOSE) + $(NOSE) -s tests + +$(NOSE): + $(PIP) install nose nose-selecttests pep8 pylint coverage + +# ####### +# INSTALL +# ####### +.PHONY: all +all: venv deps develop + +venv: bin/python +bin/python: + virtualenv . + +.PHONY: deps +deps: venv + pip install -r requirements.txt + +.PHONY: clean_venv +clean_venv: + rm -rf bin include lib local man share + +.PHONY: develop +develop: lib/python*/site-packages/readability.egg-link +lib/python*/site-packages/readability.egg-link: + $(PY) setup.py develop + + +# ########### +# Development +# ########### +.PHONY: clean_all +clean_all: clean_venv + if [ -d dist ]; then \ + rm -r dist; \ + fi + + +# ########### +# Deploy +# ########### +.PHONY: dist +dist: + $(PY) setup.py sdist + +.PHONY: upload +upload: + $(PY) setup.py sdist upload + +.PHONY: version_update +version_update: + $(EDITOR) setup.py NEWS.txt diff --git a/readability/__init__.py b/readability/__init__.py index 9fef9f4..d3ba9fb 100644 --- a/readability/__init__.py +++ b/readability/__init__.py @@ -1,7 +1,11 @@ # -*- coding: utf8 -*- -from __future__ import absolute_import -from __future__ import division, print_function, unicode_literals +from __future__ import ( + absolute_import, + division, + print_function, + unicode_literals +) +import pkg_resources - -__version__ = "0.1.14" +__version__ = pkg_resources.get_distribution("readability").version diff --git a/readability/readable.py b/readability/readable.py index e8f6bdd..4d297dd 100644 --- a/readability/readable.py +++ b/readability/readable.py @@ -2,7 +2,6 @@ from __future__ import absolute_import -import re import logging from copy import deepcopy @@ -154,7 +153,8 @@ def check_siblings(candidate_node, candidate_list): # filtered out later by accident. sibling.tag = "div" - candidate_node.node.append(sibling) + if candidate_node.node != sibling: + candidate_node.node.append(sibling) return candidate_node diff --git a/requirements.txt b/requirements.txt index 3fa08f7..ce7695a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,8 @@ -docopt>=0.6.1,<0.7 charade -lxml coverage +docopt>=0.6.1,<0.7 +lxml nose +nose-selecttests +pep8 +pylint diff --git a/setup.py b/setup.py index 22d821e..046e3a6 100644 --- a/setup.py +++ b/setup.py @@ -2,8 +2,8 @@ import sys from os.path import abspath, dirname, join from setuptools import setup, find_packages -from readability import __version__ +VERSION = "0.1.14" VERSION_SUFFIX = "%d.%d" % sys.version_info[:2] CURRENT_DIRECTORY = abspath(dirname(__file__)) @@ -28,10 +28,20 @@ tests_require = [ if sys.version_info < (2, 7): install_requires.append("unittest2") +console_script_targets = [ + "readability = readability.scripts.client:main", + "readability-{} = readability.scripts.client:main", + "readability_test = readability.scripts.test_helper:main", + "readability_test-{} = readability.scripts.test_helper:main", +] +console_script_targets = [ + target.format(VERSION_SUFFIX) for target in console_script_targets +] + setup( name="readability", - version=__version__, + version=VERSION, description="Port of Readability HTML parser in Python", long_description=long_description, keywords=[ @@ -40,10 +50,11 @@ setup( "parsing", "HTML", "content", + "bookie", ], - author="Michal Belica", - author_email="miso.belica@gmail.com", - url="https://github.com/miso-belica/readability.py", + author="Rick Harding", + author_email="rharding@mitechie.com", + url="https://github.com/bookieio/b readability", license="BSD", classifiers=[ "Development Status :: 5 - Production/Stable", @@ -62,7 +73,6 @@ setup( "Topic :: Software Development :: Pre-processors", "Topic :: Text Processing :: Filters", "Topic :: Text Processing :: Markup :: HTML", - ], packages=find_packages(), include_package_data=True, @@ -71,11 +81,6 @@ setup( tests_require=tests_require, test_suite="tests.run_tests.run", entry_points={ - "console_scripts": [ - "readability = readability.scripts.client:main", - "readability-%s = readability.scripts.client:main" % VERSION_SUFFIX, - "readability_test = readability.scripts.test_helper:main", - "readability_test-%s = readability.scripts.test_helper:main" % VERSION_SUFFIX, - ] + "console_scripts": console_script_targets, } )