<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>freedom blog reloaded &#187; argvalidate</title>
	<atom:link href="http://blog.peijnik.at/topics/python/argvalidate/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.peijnik.at</link>
	<description>Stephan's Free Software blog</description>
	<lastBuildDate>Tue, 10 Nov 2009 18:04:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>python-argvalidate has hit Debian unstable</title>
		<link>http://blog.peijnik.at/2009/03/29/python-argvalidate-has-hit-debian-unstable/</link>
		<comments>http://blog.peijnik.at/2009/03/29/python-argvalidate-has-hit-debian-unstable/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 10:32:40 +0000</pubDate>
		<dc:creator>stephan</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[argvalidate]]></category>

		<guid isPermaLink="false">http://blog.peijnik.at/?p=68</guid>
		<description><![CDATA[I am proud to announce that python-argvalidate has hit Debian unstable yesterday.
This does not only mean that you can install argvalidate on Debian-based systems more easily now, but also that python-argvalidate has met the strict criteria of the Debian Free Software Guidelines, and as such has been confirmed to be Free Software.
Also, I wanted to [...]]]></description>
			<content:encoded><![CDATA[<p>I am proud to announce that python-argvalidate has hit Debian unstable yesterday.</p>
<p>This does not only mean that you can install argvalidate on Debian-based systems more easily now, but also that python-argvalidate has met the strict criteria of the <a title="DFSG @ debian.org" href="http://www.debian.org/social_contract#guidelines">Debian Free Software Guidelines</a>, and as such has been confirmed to be Free Software.</p>
<p>Also, I wanted to let you know that I am maintaining the Debian package itself, which means that updates to python-argvalidate itself will be included in Debian as fast as possible, usually within two days.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.peijnik.at/2009/03/29/python-argvalidate-has-hit-debian-unstable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>python-argvalidate 0.9.0 released</title>
		<link>http://blog.peijnik.at/2009/03/24/python-argvalidate-090-released/</link>
		<comments>http://blog.peijnik.at/2009/03/24/python-argvalidate-090-released/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 15:02:32 +0000</pubDate>
		<dc:creator>stephan</dc:creator>
				<category><![CDATA[argvalidate]]></category>
		<category><![CDATA[foss]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.peijnik.at/?p=57</guid>
		<description><![CDATA[Even though I planned providing a release candidate first, which can be seen in the project&#8217;s Mercurial changelog I have released python-argvalidate 0.9.0 today. Tarballs can be obtained from the Python Package Index (pypi), as usual.

So what&#8217;s has changed compared to 0.8.2

Basically a lot of code has been rewritten or reviewed and modified. The most [...]]]></description>
			<content:encoded><![CDATA[<p>Even though I planned providing a release candidate first, which can be seen in the project&#8217;s <a title="Mercurial changelog between 0.8.2 and 0.9.0" href="http://code.sp-its.at/projects/argvalidate/log?action=stop_on_copy&amp;mode=stop_on_copy&amp;rev=23&amp;stop_rev=14&amp;limit=100&amp;verbose=on">Mercurial changelog</a> I have released <a title="python-argvalidate homepage @ code.sp-its.at" href="http://code.sp-its.at/projects/argvalidate">python-argvalidate</a> 0.9.0 today. Tarballs can be obtained from the <a title="Python Package Index" href="http://pypi.python.org">Python Package Index (pypi)</a>, as usual.</p>
<p><span id="more-57"></span></p>
<p><strong>So what&#8217;s has changed compared to 0.8.2<br />
</strong></p>
<p>Basically a lot of code has been rewritten or reviewed and modified. The most important change lies in argvalidate&#8217;s internals though.<br />
Instead of relying on Python internals, those are the<em> func_*</em> and <em>func_code.*</em> attributes of every function argvalidate uses another mechanism for obtaining the information about functions now, the <a title="inspect Module documentation @ docs.python.org" href="http://docs.python.org/library/inspect.html">inspect</a> Module. In short this means that argvalidate should be more resistant to possible changes in the format of these attributes, because the <em>inspect</em> Module that ships with Python should be changed accordingly and it is unlikely that its public interface is going to break.</p>
<p>Which leads me straight to the next point regarding argvalidate: the public interface. The most visible change was the deprecation of the <em>method_args</em>, <em>func_args</em> and <em>return_value</em> decorators. These decorators are still present, but will be removed in one of the next upcoming releases of argvalidate. The functionality of <em>method_args</em> and <em>func_args</em> has been combined into the <a title="argvalidate.accepts @ argvalidate 0.9.0 documentation" href="http://code.sp-its.at/doc/argvalidate/v0.9.0/argvalidate.html#argvalidate.accepts">accepts</a> decorator, whilst the <a title="argvalidate.returns @ argvalidate 0.9.0 documentation" href="http://code.sp-its.at/doc/argvalidate/v0.9.0/argvalidate.html#argvalidate.returns">returns</a> decorator replaces <em>return_value</em>.</p>
<p>accepts now includes some magic for automatically determining whether a function or method has been decorated. Initially the plan was on using inspect&#8217;s <a title="inspect.ismethod Module documentation @ docs.python.org" href="http://docs.python.org/library/inspect.html#inspect.ismethod">ismethod</a> function, which did not work out as when the decorator is called for methods the method has not been bound to the class yet and looks like a simple function to ismethod. However, the magic added checks the first argument&#8217;s name and decides that functions having either &#8220;<em>self</em>&#8221; or &#8220;<em>cls</em>&#8221; as their first parameter are methods, whilst everything else is a simple function.</p>
<p>There is more to say about <em>accepts</em>. Internally some checks which were done at every call to the decorated function in the past are now done only once, when the decorator is invoked. This should reduce the overhead argvalidate adds when the function (and thus the internal wrapper doing the checks) is called, but most likely will slow down decoration itself. However, decoration is only done once, whilst a function is likely to be called several times in its lifetime, which should give us an overall improvement of speed.</p>
<p>The <a title="argvalidate Documentation @ code.sp-its.at" href="http://code.sp-its.at/doc/argvalidate/v0.9.0/">documentation</a> has been updated accordingly and can be found at the usual place.</p>
<p><strong>What&#8217;s up next?</strong></p>
<p>There is no real further <a title="argvalidate roadmap @ code.sp-its.at" href="http://code.sp-its.at/projects/argvalidate/roadmap">roadmap</a> for argvalidate right now. No issues were left open, except for Python 3 <a title="ticket: Python3 compatibility meta @ code.sp-its.at" href="http://code.sp-its.at/projects/argvalidate/ticket/3">testing &amp; support</a>. Further releases are going to be made when needed, that is when you <a title="argvalidate: submit bug report @ code.sp-its.at" href="http://code.sp-its.at/projects/argvalidate/newticket">submit</a> a bug report and it is fixed.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.peijnik.at/2009/03/24/python-argvalidate-090-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
