Libearth Changelog¶
Version 0.3.3¶
Released on November 6, 2014.
- Fixed a bug that
complete()
never terminates for documentsread()
from a single chunk.
Version 0.3.2¶
Released on November 5, 2014.
- Fixed a bug that
SubscriptionList
s havingOutline
s without theircreated_at
attribute failed to be merged on Python 3. [issue #65] - Fixed a bug that a
DocumentElement
in streamed read mode is not properly marked as complete even when it’s completed bycomplete()
function in some cases.
Version 0.3.1¶
Released on July 20, 2014.
- Fixed two backward compatibility breakages:
- A bug that subcategory changes hadn’t been detected when
SubscriptionList
s are merged. - A bug that all children outlines become wiped when a category is deleted.
- A bug that subcategory changes hadn’t been detected when
Version 0.3.0¶
Released on July 12, 2014.
- Root
MergeableDocumentElement
s’__merge_entities__()
methods are not ignored anymore. Respnosibilty to merge two documents is now moved fromSession.merge()
method toMergeableDocumentElement.__merge_entities__()
method. crawl()
now return a set ofCrawlResult
objects instead oftuple
s.feeds
parameter ofcrawl()
function was renamed tofeed_urls
.- Added
feed_uri
parameter and correspondingfeed_uri
attribute toCrawlError
exception. - Timeout option was added to crawler.
- Added optional
timeout
parameter tocrawl()
. - Added optional
timeout
parameter toget_feed()
. - Added
DEFAULT_TIMEOUT
constant which is 10 seconds.
- Added optional
- Added
LinkList.favicon
property. [issue #49] Link.relation
attribute which had been optional now becomes requiredAutoDiscovery.find_feed_url()
method (that returned feed links) was gone. InsteadAutoDiscovery.find()
method (that returns a pair of feed links and favicon links) was introduced. [issue #49]Subscription.icon_uri
attribute was introduced. [issue #49]- Added an optional
icon_uri
parameter toSubscriptionSet.subscribe()
method. [issue #49] - Added
normalize_xml_encoding()
function to workaroundxml.etree.ElementTree
module’s encoding detection bug. [issue #41] - Added
guess_tzinfo_by_locale()
function. [issue #41] - Added
microseconds
option toRfc822
codec. - Fixed incorrect merge of subscription/category deletion.
- Subscriptions are now archived rather than deleted.
Outline
(which is a common superclass ofSubscription
andCategory
) now hasdeleted_at
attribute anddeleted
property.
- Fixed several
rss2
parser bugs.- Now the parser accepts several malformed
<pubDate>
and<lastBuildDate>
elements. - It become to guess the time zone according to its
<language>
and the ccTLD (if applicable) when the date time doesn’t give any explicit time zone (which is also malformed). [issue #41] - It had ignored
<category>
elements other than the last one, now it become to accept as many as there are. - It had ignored
<comments>
links at all, now these become to be parsed toLink
objects withrelation='discussion'
. - Some RSS 2 feeds put a URI into
<generator>
, so the parser now treat it asuri
rather thanvalue
for such situation. <enclosure>
links had been parsed asLink
object withoutrelation
attribute, but it becomes to properly set the attribute to'enclosure'
.- Mixed
<link>
elements with Atom namespace also becomes to be parsed well.
- Now the parser accepts several malformed
- Fixed several
atom
parser bugs.- Now it accepts obsolete PURL Atom namespace.
- Since some broken Atom feeds (e.g. Naver Blog) provide date time as RFC 822 format which is incorrect according to RFC 4287#section-3.3 (section 3.3), the parser becomes to accept RFC 822 format as well.
- Some broken Atom feeds (e.g. Naver Blog) use
<modified>
which is not standard instead of<updated>
which is standard, so the parser now treats<modified>
equivalent to<updated>
. <content>
and<summary>
can has text/plain and text/html in addition totext
andhtml
.<author>
/<contributor>
becomes ignored if it hasn’t any of<name>
,<uri>
, or<email>
.- Fixed a parser bug that hadn’t interpret omission of
link[rel]
attribute as'alternate'
.
- Fixed the parser to work well even if there’s any file separator characters
(FS,
'\x1c'
).
Version 0.2.1¶
Released on July 12, 2014.
- Fixed
rss2
parsing error when any empty element occurs. - Fixed a bug that
validate()
function errored when any subelement hasText
descriptor.
Version 0.2.0¶
Released on April 22, 2014.
- Session files in
.sessions/
directory become to be touched only once at a transaction. [issue #43] - Added
SubscriptionSet.contains()
method which providesrecursively=True
option. It’s useful for determining that a subcategory or subscription is in the whole tree. Attribute.default
option becomes to accept only callable objects. Below 0.2.0,default
is not a function but a value which is simply used as it is.libearth.parser.heuristic
module is gone; andget_format()
function in the module is moved tolibearth.parser.autodiscovery
module:get_format()
.- Added
Link.html
property. - Added
LinkList.permalink
property. - Fixed a
FileSystemRepository
bug that conflicts reading buffer and emits broken mixed bytes when there are simultaneous readings and writings to the same key. - Fixed broken functions related to repository urls on Windows.
- Fixed
libearth.compat.parallel.cpu_count()
function not to raiseNotImplementedError
in some cases. - Fixed
Rfc822
to properly work also on non-English locales e.g.ko_KR
.
Version 0.1.2¶
Released on January 19, 2014.
- XML elements in data files are written in canonical order. For example,
<title>
element of the feed was at the back before, but now is in front. write()
becomes to store length hints of children that ismultiple
, andread()
becomes aware of the hints. When hints are readlen()
for theElementList
is O(1).- Fixed a bug that
autodiscovery
raisesAttributeError
when the given HTML contains<link>
to both application/atom+xml and application/rss+xml. [issue #40] - Fill
<title>
to<description>
if there’s no<title>
(rss2
). - Fill
<id>
to the feed URL if there’s no<id>
(atom
).
Version 0.1.1¶
Released on January 2, 2014.
- Added a workaround for thread unsafety
time.strftime()
on CPython. See http://bugs.python.org/issue7980 as well. [issue #32] - Fixed
UnicodeDecodeError
which is raised when a feed title contains any non-ASCII characters. [issue #34 by Jae-Myoung Yu] - Now
libearth.parser.rss2
fillsEntry.updated_at
if it’s not given. [issue #35] - Fixed
TypeError
which is raised when anyDocumentElement
withmultiple
Child
elements is passed tovalidate()
function. - Fixed the race condition of two
FileSystemRepository
objects creating the same directory. [issue #36 by klutzy] parallel_map()
becomes to raise exceptions at the last, if any errored. [issue #38]
Version 0.1.0¶
Released on December 13, 2013. Initial alpha version.