summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG9
-rw-r--r--beautifulsoup/element.py52
-rw-r--r--tests/test_tree.py32
3 files changed, 54 insertions, 39 deletions
diff --git a/CHANGELOG b/CHANGELOG
index af32d95..f219f9e 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -6,9 +6,16 @@ Methods have been renamed to comply with PEP 8. The old names still
work. Here are the renames:
* findAll -> find_all
- * findNext -> find_next
* findAllNext -> find_all_next
* findAllPrevious -> find_all_previous
+ * findNext -> find_next
+ * findNextSibling -> find_next_sibling
+ * findNextSiblings -> find_next_siblings
+ * findParent -> find_parent
+ * findParents -> find_parents
+ * findPrevious -> find_previous
+ * findPreviousSibling -> find_previous_sibling
+ * findPreviousSiblings -> find_previous_siblings
== Generators are now properties ==
diff --git a/beautifulsoup/element.py b/beautifulsoup/element.py
index 00b72b6..31e8fce 100644
--- a/beautifulsoup/element.py
+++ b/beautifulsoup/element.py
@@ -165,7 +165,7 @@ class PageElement:
"""Returns the first item that matches the given criteria and
appears after this Tag in the document."""
return self._findOne(self.find_all_next, name, attrs, text, **kwargs)
- findNext = find_next # Compatibility with BS3.
+ findNext = find_next # BS3
def find_all_next(self, name=None, attrs={}, text=None, limit=None,
**kwargs):
@@ -173,26 +173,30 @@ class PageElement:
after this Tag in the document."""
return self._find_all(name, attrs, text, limit, self.next_elements,
**kwargs)
- findAllNext = find_all_next # Compatibility with BS3.
+ findAllNext = find_all_next # BS3
- def find_nextSibling(self, name=None, attrs={}, text=None, **kwargs):
+ def find_next_sibling(self, name=None, attrs={}, text=None, **kwargs):
"""Returns the closest sibling to this Tag that matches the
given criteria and appears after this Tag in the document."""
- return self._findOne(self.find_nextSiblings, name, attrs, text,
+ return self._findOne(self.find_next_siblings, name, attrs, text,
**kwargs)
+ findNextSibling = find_next_sibling # BS3
- def find_nextSiblings(self, name=None, attrs={}, text=None, limit=None,
- **kwargs):
+ def find_next_siblings(self, name=None, attrs={}, text=None, limit=None,
+ **kwargs):
"""Returns the siblings of this Tag that match the given
criteria and appear after this Tag in the document."""
return self._find_all(name, attrs, text, limit,
- self.next_siblings, **kwargs)
- fetchNextSiblings = find_nextSiblings # Compatibility with BS2
+ self.next_siblings, **kwargs)
+ findNextSiblings = find_next_siblings # BS3
+ fetchNextSiblings = find_next_siblings # BS2
- def findPrevious(self, name=None, attrs={}, text=None, **kwargs):
+ def find_previous(self, name=None, attrs={}, text=None, **kwargs):
"""Returns the first item that matches the given criteria and
appears before this Tag in the document."""
- return self._findOne(self.find_all_previous, name, attrs, text, **kwargs)
+ return self._findOne(
+ self.find_all_previous, name, attrs, text, **kwargs)
+ findPrevious = find_previous # BS3
def find_all_previous(self, name=None, attrs={}, text=None, limit=None,
**kwargs):
@@ -200,41 +204,45 @@ class PageElement:
before this Tag in the document."""
return self._find_all(name, attrs, text, limit, self.previous_elements,
**kwargs)
- findAllPrevious = find_all_previous # Compatibility with BS3
- fetchPrevious = find_all_previous # Compatibility with BS2
+ findAllPrevious = find_all_previous # BS3
+ fetchPrevious = find_all_previous # BS2
- def findPreviousSibling(self, name=None, attrs={}, text=None, **kwargs):
+ def find_previous_sibling(self, name=None, attrs={}, text=None, **kwargs):
"""Returns the closest sibling to this Tag that matches the
given criteria and appears before this Tag in the document."""
- return self._findOne(self.findPreviousSiblings, name, attrs, text,
+ return self._findOne(self.find_previous_siblings, name, attrs, text,
**kwargs)
+ findPreviousSibling = find_previous_sibling # BS3
- def findPreviousSiblings(self, name=None, attrs={}, text=None,
- limit=None, **kwargs):
+ def find_previous_siblings(self, name=None, attrs={}, text=None,
+ limit=None, **kwargs):
"""Returns the siblings of this Tag that match the given
criteria and appear before this Tag in the document."""
return self._find_all(name, attrs, text, limit,
- self.previous_siblings, **kwargs)
- fetchPreviousSiblings = findPreviousSiblings # Compatibility with pre-3.x
+ self.previous_siblings, **kwargs)
+ findPreviousSiblings = find_previous_siblings # BS3
+ fetchPreviousSiblings = find_previous_siblings # BS2
- def findParent(self, name=None, attrs={}, **kwargs):
+ def find_parent(self, name=None, attrs={}, **kwargs):
"""Returns the closest parent of this Tag that matches the given
criteria."""
# NOTE: We can't use _findOne because findParents takes a different
# set of arguments.
r = None
- l = self.findParents(name, attrs, 1)
+ l = self.find_parents(name, attrs, 1)
if l:
r = l[0]
return r
+ findParent = find_parent # BS3
- def findParents(self, name=None, attrs={}, limit=None, **kwargs):
+ def find_parents(self, name=None, attrs={}, limit=None, **kwargs):
"""Returns the parents of this Tag that match the given
criteria."""
return self._find_all(name, attrs, None, limit, self.parents,
**kwargs)
- fetchParents = findParents # Compatibility with pre-3.x
+ findParents = find_parents # BS3
+ fetchParents = find_parents # BS2
#These methods do the real heavy lifting.
diff --git a/tests/test_tree.py b/tests/test_tree.py
index d2361cb..09bdb87 100644
--- a/tests/test_tree.py
+++ b/tests/test_tree.py
@@ -270,12 +270,12 @@ class TestParentOperations(TreeTest):
def test_find_parents(self):
self.assertSelectsIDs(
- self.start.findParents('ul'), ['bottom', 'middle', 'top'])
+ self.start.find_parents('ul'), ['bottom', 'middle', 'top'])
self.assertSelectsIDs(
- self.start.findParents('ul', id="middle"), ['middle'])
+ self.start.find_parents('ul', id="middle"), ['middle'])
def test_find_parent(self):
- self.assertEquals(self.start.findParent('ul')['id'], 'bottom')
+ self.assertEquals(self.start.find_parent('ul')['id'], 'bottom')
def test_parent_of_text_element(self):
text = self.tree.find(text="Start here")
@@ -283,7 +283,7 @@ class TestParentOperations(TreeTest):
def test_text_element_find_parent(self):
text = self.tree.find(text="Start here")
- self.assertEquals(text.findParent('ul')['id'], 'bottom')
+ self.assertEquals(text.find_parent('ul')['id'], 'bottom')
def test_parent_generator(self):
parents = [parent['id'] for parent in self.start.parentGenerator()
@@ -447,13 +447,13 @@ class TestNextSibling(SiblingTest):
self.assertEquals(last_span.nextSibling, None)
def test_find_next_sibling(self):
- self.assertEquals(self.start.find_nextSibling('span')['id'], '2')
+ self.assertEquals(self.start.find_next_sibling('span')['id'], '2')
def test_next_siblings(self):
- self.assertSelectsIDs(self.start.find_nextSiblings("span"),
+ self.assertSelectsIDs(self.start.find_next_siblings("span"),
['2', '3', '4'])
- self.assertSelectsIDs(self.start.find_nextSiblings(id='3'), ['3'])
+ self.assertSelectsIDs(self.start.find_next_siblings(id='3'), ['3'])
def test_next_sibling_for_text_element(self):
soup = self.soup("Foo<b>bar</b>baz")
@@ -461,9 +461,9 @@ class TestNextSibling(SiblingTest):
self.assertEquals(start.nextSibling.name, 'b')
self.assertEquals(start.nextSibling.nextSibling, 'baz')
- self.assertSelects(start.find_nextSiblings('b'), ['bar'])
- self.assertEquals(start.find_nextSibling(text="baz"), "baz")
- self.assertEquals(start.find_nextSibling(text="nonesuch"), None)
+ self.assertSelects(start.find_next_siblings('b'), ['bar'])
+ self.assertEquals(start.find_next_sibling(text="baz"), "baz")
+ self.assertEquals(start.find_next_sibling(text="nonesuch"), None)
class TestPreviousSibling(SiblingTest):
@@ -492,13 +492,13 @@ class TestPreviousSibling(SiblingTest):
self.assertEquals(first_span.previousSibling, None)
def test_find_previous_sibling(self):
- self.assertEquals(self.end.findPreviousSibling('span')['id'], '3')
+ self.assertEquals(self.end.find_previous_sibling('span')['id'], '3')
def test_previous_siblings(self):
- self.assertSelectsIDs(self.end.findPreviousSiblings("span"),
+ self.assertSelectsIDs(self.end.find_previous_siblings("span"),
['3', '2', '1'])
- self.assertSelectsIDs(self.end.findPreviousSiblings(id='1'), ['1'])
+ self.assertSelectsIDs(self.end.find_previous_siblings(id='1'), ['1'])
def test_previous_sibling_for_text_element(self):
soup = self.soup("Foo<b>bar</b>baz")
@@ -506,9 +506,9 @@ class TestPreviousSibling(SiblingTest):
self.assertEquals(start.previousSibling.name, 'b')
self.assertEquals(start.previousSibling.previousSibling, 'Foo')
- self.assertSelects(start.findPreviousSiblings('b'), ['bar'])
- self.assertEquals(start.findPreviousSibling(text="Foo"), "Foo")
- self.assertEquals(start.findPreviousSibling(text="nonesuch"), None)
+ self.assertSelects(start.find_previous_siblings('b'), ['bar'])
+ self.assertEquals(start.find_previous_sibling(text="Foo"), "Foo")
+ self.assertEquals(start.find_previous_sibling(text="nonesuch"), None)
class TestTreeModification(SoupTest):