summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/icalendar')
-rw-r--r--dev-python/icalendar/Manifest2
-rw-r--r--dev-python/icalendar/files/2.1_p20100409/01_all_UIDGenerator-fix.patch22
-rw-r--r--dev-python/icalendar/files/2.1_p20100409/02_all_vDatetime-tzinfo-fix.patch30
-rw-r--r--dev-python/icalendar/files/2.1_p20100409/03_all_duration-fix.patch33
-rw-r--r--dev-python/icalendar/files/2.1_p20100409/04_all_date-type-test-in-vDDDTypes.patch22
-rw-r--r--dev-python/icalendar/files/2.1_p20100409/05_all_utf8-multi-octet-fix.patch30
-rw-r--r--dev-python/icalendar/files/2.1_p20100409/06_all_test.py-use-set.patch37
-rw-r--r--dev-python/icalendar/files/2.1_p20100409/07_all_vGeo.from_ical-test-fix.patch17
-rw-r--r--dev-python/icalendar/icalendar-3.8.4.ebuild44
-rw-r--r--dev-python/icalendar/icalendar-3.9.0.ebuild51
-rw-r--r--dev-python/icalendar/metadata.xml12
11 files changed, 300 insertions, 0 deletions
diff --git a/dev-python/icalendar/Manifest b/dev-python/icalendar/Manifest
new file mode 100644
index 000000000000..b07b5f045cc8
--- /dev/null
+++ b/dev-python/icalendar/Manifest
@@ -0,0 +1,2 @@
+DIST icalendar-3.8.4.zip 91925 SHA256 7034e184ef3f9010f074410cea11b68fa93ef847f3fb185be41d6bd261c9cbb8 SHA512 5963112ed5d9aa16c85523c7687f5c23085171b84a3f974f5daa84d76e9af5f7171a6f1c342daddbe15531193c47191103fe0f53589aff41787d7ad58a12e0a0 WHIRLPOOL 7cb352564968a121831b82907386f328b25e718439f65bebf575f906fe00f7cfbf4b8bc578b3f201aaa1c7eaa22f9e70eca68278a81e5d802573a301ede75410
+DIST icalendar-3.9.0.tar.gz 62627 SHA256 93d0b94eab23d08f62962542309916a9681f16de3d5eca1c75497f30f1b07792 SHA512 a937882046666212d011cbd5963f43e3c2ebc677c55f1ac425dd77a08201a204498881986208d40e2e93b163f9f51b285cb3a1250f07d01f9b6a968c4e24065d WHIRLPOOL 3cc4fd1ef6170dbb99c1f55e45082374d08931265397df422ee3439ca532f7e2704dd6ed620635b65719f509c4a84682c2f54ef12751e3cd00c4235c116d1336
diff --git a/dev-python/icalendar/files/2.1_p20100409/01_all_UIDGenerator-fix.patch b/dev-python/icalendar/files/2.1_p20100409/01_all_UIDGenerator-fix.patch
new file mode 100644
index 000000000000..4f2b78dc9133
--- /dev/null
+++ b/dev-python/icalendar/files/2.1_p20100409/01_all_UIDGenerator-fix.patch
@@ -0,0 +1,22 @@
+--- src/icalendar/tools.py
++++ src/icalendar/tools.py
+@@ -1,5 +1,6 @@
+ from string import ascii_letters, digits
+ import random
++from datetime import datetime
+
+ """
+ This module contains non-essential tools for iCalendar. Pretty thin so far eh?
+@@ -42,9 +43,9 @@
+ datetime-uniquevalue at host. Like:
+ 20050105T225746Z-HKtJMqUgdO0jDUwm at example.com
+ """
+- from PropertyValues import vText, vDatetime
++ from icalendar.prop import vText, vDatetime
+ unique = unique or self.rnd_string()
+- return vText('%s-%s@%s' % (vDatetime.today().ical(), unique, host_name))
++ return vText('%s-%s@%s' % (vDatetime(datetime.today()).ical(), unique, host_name))
+
+
+ if __name__ == "__main__":
+
diff --git a/dev-python/icalendar/files/2.1_p20100409/02_all_vDatetime-tzinfo-fix.patch b/dev-python/icalendar/files/2.1_p20100409/02_all_vDatetime-tzinfo-fix.patch
new file mode 100644
index 000000000000..7f06b4f68c9e
--- /dev/null
+++ b/dev-python/icalendar/files/2.1_p20100409/02_all_vDatetime-tzinfo-fix.patch
@@ -0,0 +1,30 @@
+From http://codespeak.net/pipermail/icalendar-dev/2009-July/000139.html:
+
+SUMMARY: The encoding mechanism of vDatetime handles tzinfo fields
+incorrectly (specifically with respect to daylight savings time).
+Attached is a simple patch that makes it work.
+
+DETAILS: Currently vDatetime.ical() tries to compute the utcoffset of
+the tzinfo, and then subtract that offset. This approach is valid,
+but the computation of the utcoffset is wrong, because it's done relative
+to datetime.now() instead of the actual datetime object (self.dt)
+to be converted. This is an issue for timezones whose utcoffset varies
+throughout the year, e.g., from daylight savings time.
+Replacing datetime.now() with self.dt would fix the code,
+but I opted to use the builtin 'asttimezone' method
+because it's slightly simpler.
+
+Submitted by Erik Demaine.
+===================================================================
+--- src/icalendar/prop.py.orig 2009-12-14 08:43:50.000000000 -0500
++++ src/icalendar/prop.py 2009-12-20 12:41:28.000000000 -0500
+@@ -309,8 +309,7 @@
+
+ def ical(self):
+ if self.dt.tzinfo:
+- utc_time = self.dt - self.dt.tzinfo.utcoffset(datetime.now())
+- return utc_time.strftime("%Y%m%dT%H%M%SZ")
++ return self.dt.astimezone (UTC).strftime("%Y%m%dT%H%M%SZ")
+ return self.dt.strftime("%Y%m%dT%H%M%S")
+
+ def from_ical(ical):
diff --git a/dev-python/icalendar/files/2.1_p20100409/03_all_duration-fix.patch b/dev-python/icalendar/files/2.1_p20100409/03_all_duration-fix.patch
new file mode 100644
index 000000000000..d6d857a342d1
--- /dev/null
+++ b/dev-python/icalendar/files/2.1_p20100409/03_all_duration-fix.patch
@@ -0,0 +1,33 @@
+--- src/icalendar/prop.py.old Mon Dec 14 13:43:50 2009
++++ src/icalendar/prop.py Tue Jan 19 15:09:58 2010
+@@ -57,7 +57,7 @@
+ TIME_PART = r'T(?:(\d+)H)?(?:(\d+)M)?(?:(\d+)S)?'
+ DATETIME_PART = '(?:%s)?(?:%s)?' % (DATE_PART, TIME_PART)
+ WEEKS_PART = r'(\d+)W'
+-DURATION_REGEX = re.compile(r'([-+]?)P(?:%s|%s)$'
++DURATION_REGEX = re.compile(r'([-+]?)P(?:%s)?(?:%s)?$'
+ % (WEEKS_PART, DATETIME_PART))
+ WEEKDAY_RULE = re.compile('(?P<signal>[+-]?)(?P<relative>[\d]?)'
+ '(?P<weekday>[\w]{2})$')
+@@ -467,14 +467,14 @@
+ """
+ try:
+ match = DURATION_REGEX.match(ical)
++ if not any(match.groups()):
++ raise ValueError()
+ sign, weeks, days, hours, minutes, seconds = match.groups()
+- if weeks:
+- value = timedelta(weeks=int(weeks))
+- else:
+- value = timedelta(days=int(days or 0),
+- hours=int(hours or 0),
+- minutes=int(minutes or 0),
+- seconds=int(seconds or 0))
++ value = timedelta(weeks=int(weeks or 0),
++ days=int(days or 0),
++ hours=int(hours or 0),
++ minutes=int(minutes or 0),
++ seconds=int(seconds or 0))
+ if sign == '-':
+ value = -value
+ return value
diff --git a/dev-python/icalendar/files/2.1_p20100409/04_all_date-type-test-in-vDDDTypes.patch b/dev-python/icalendar/files/2.1_p20100409/04_all_date-type-test-in-vDDDTypes.patch
new file mode 100644
index 000000000000..799576f2f944
--- /dev/null
+++ b/dev-python/icalendar/files/2.1_p20100409/04_all_date-type-test-in-vDDDTypes.patch
@@ -0,0 +1,22 @@
+--- src/icalendar/prop.py.orig 2010-03-29 21:05:47.000000000 -0400
++++ src/icalendar/prop.py 2010-03-29 21:01:47.000000000 -0400
+@@ -585,7 +585,7 @@
+ wrong_type_used = 0
+ if wrong_type_used:
+ raise ValueError ('You must use datetime, date or timedelta')
+- if isinstance(dt, date):
++ if type(dt) is date:
+ self.params = Parameters(dict(value='DATE'))
+
+ self.dt = dt
+--- src/icalendar/cal.py.orig 2009-12-14 08:43:50.000000000 -0500
++++ src/icalendar/cal.py 2010-04-25 09:11:44.000000000 -0400
+@@ -520,7 +520,7 @@
+ >>> event.set('dtstart', datetime(2005,4,4,8,0,0))
+ >>> cal.add_component(event)
+ >>> cal.subcomponents[0].as_string()
+- 'BEGIN:VEVENT\\r\\nDTSTART;VALUE=DATE:20050404T080000\\r\\nSUMMARY:Python meeting about calendaring\\r\\nUID:42\\r\\nEND:VEVENT\\r\\n'
++ 'BEGIN:VEVENT\\r\\nDTSTART:20050404T080000\\r\\nSUMMARY:Python meeting about calendaring\\r\\nUID:42\\r\\nEND:VEVENT\\r\\n'
+
+ Write to disc
+ >>> import tempfile, os
diff --git a/dev-python/icalendar/files/2.1_p20100409/05_all_utf8-multi-octet-fix.patch b/dev-python/icalendar/files/2.1_p20100409/05_all_utf8-multi-octet-fix.patch
new file mode 100644
index 000000000000..e0ac0cf3671e
--- /dev/null
+++ b/dev-python/icalendar/files/2.1_p20100409/05_all_utf8-multi-octet-fix.patch
@@ -0,0 +1,30 @@
+From http://codespeak.net/pipermail/icalendar-dev/2010-April/000152.html:
+
+Lines get folded in the middle of multi-octet sequences (checked out
+code from svn today). Consider this case:
+import icalendar
+ical = icalendar.Calendar()
+ical.add('summary', u'a' + u'ą'*100)
+ical.as_string().decode('utf-8')
+...
+UnicodeDecodeError: 'utf8' codec can't decode bytes in position 90-91:
+invalid data
+
+I have attached a diff of a simple one-line fix.
+
+As I see in the code you actually try not to split a multi-octet
+character but you don't recalculate the slice after finding the new
+end position. Could you confirm this?
+
+Submitted by Rimvydas Naktinis.
+===================================================================
+--- src/icalendar/parser.py (revision 73587)
++++ src/icalendar/parser.py (working copy)
+@@ -456,6 +456,7 @@
+ else:
+ end -= 1
+
++ slice = self[start:end]
+ new_lines.append(slice)
+ if end == l_line:
+ # Done
diff --git a/dev-python/icalendar/files/2.1_p20100409/06_all_test.py-use-set.patch b/dev-python/icalendar/files/2.1_p20100409/06_all_test.py-use-set.patch
new file mode 100644
index 000000000000..cef265e3b34d
--- /dev/null
+++ b/dev-python/icalendar/files/2.1_p20100409/06_all_test.py-use-set.patch
@@ -0,0 +1,37 @@
+--- test.py.orig 2010-04-25 09:19:36.000000000 -0400
++++ test.py 2010-04-25 09:26:23.000000000 -0400
+@@ -77,7 +77,6 @@
+ import traceback
+ import linecache
+ import pdb
+-from sets import Set
+
+ __metaclass__ = type
+
+@@ -261,7 +260,7 @@
+ """Returns a set of test case classes used in a test suite."""
+ if not isinstance(suite, unittest.TestSuite):
+ raise TypeError('not a TestSuite', suite)
+- results = Set()
++ results = set()
+ for test in suite._tests:
+ if isinstance(test, unittest.TestCase):
+ results.add(test.__class__)
+@@ -293,7 +292,7 @@
+ if test_suite is None:
+ continue
+ if cfg.warn_omitted:
+- all_classes = Set(get_all_test_cases(module))
++ all_classes = set(get_all_test_cases(module))
+ classes_in_suite = get_test_classes_from_testsuite(test_suite)
+ difference = all_classes - classes_in_suite
+ for test_class in difference:
+@@ -320,7 +319,7 @@
+ def get_test_hooks(test_files, cfg, tracer=None):
+ """Returns a list of test hooks from a given list of test modules."""
+ results = []
+- dirs = Set(map(os.path.dirname, test_files))
++ dirs = set(map(os.path.dirname, test_files))
+ for dir in list(dirs):
+ if os.path.basename(dir) == 'ftests':
+ dirs.add(os.path.join(os.path.dirname(dir), 'tests'))
diff --git a/dev-python/icalendar/files/2.1_p20100409/07_all_vGeo.from_ical-test-fix.patch b/dev-python/icalendar/files/2.1_p20100409/07_all_vGeo.from_ical-test-fix.patch
new file mode 100644
index 000000000000..0195e63da31c
--- /dev/null
+++ b/dev-python/icalendar/files/2.1_p20100409/07_all_vGeo.from_ical-test-fix.patch
@@ -0,0 +1,17 @@
+This fixes doctests with Python 2.7. With improved float handling,
+float('37.86013') == 37.86013. This seems to be the only way to
+handle this test across Python versions.
+===================================================================
+--- src/icalendar/prop.py 2010-08-03 21:19:06.000000000 -0400
++++ src/icalendar/prop.py 2010-08-03 21:20:48.000000000 -0400
+@@ -1196,8 +1196,8 @@
+ '1.2;3.0'
+
+ >>> g = vGeo.from_ical('37.386013;-122.082932')
+- >>> g
+- (37.386012999999998, -122.082932)
++ >>> g == (float('37.386013'), float('-122.082932'))
++ True
+
+ >>> vGeo(g).ical()
+ '37.386013;-122.082932'
diff --git a/dev-python/icalendar/icalendar-3.8.4.ebuild b/dev-python/icalendar/icalendar-3.8.4.ebuild
new file mode 100644
index 000000000000..d6093221cce0
--- /dev/null
+++ b/dev-python/icalendar/icalendar-3.8.4.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="collective-${PN}"
+
+DESCRIPTION="Package used for parsing and generating iCalendar files (RFC 2445)"
+HOMEPAGE="http://github.com/collective/icalendar"
+SRC_URI="mirror://pypi/i/${PN}/${P}.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86 ~x86-fbsd"
+IUSE="doc test"
+DOCS="README.rst"
+
+RDEPEND="dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/python-dateutil:0[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}] )"
+
+python_compile_all() {
+ if use doc; then
+ pushd docs > /dev/null
+ emake text
+ popd > /dev/null
+ DOCS=( ${DOCS} docs/_build/text/*.txt )
+ fi
+}
+
+python_test() {
+ # From tox.ini
+ coverage run --source=src/icalendar --omit=*/tests/* --module \
+ pytest src/icalendar || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/icalendar/icalendar-3.9.0.ebuild b/dev-python/icalendar/icalendar-3.9.0.ebuild
new file mode 100644
index 000000000000..7f34ffd772ff
--- /dev/null
+++ b/dev-python/icalendar/icalendar-3.9.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4} pypy )
+
+inherit distutils-r1
+
+MY_PN="collective-${PN}"
+
+DESCRIPTION="Package used for parsing and generating iCalendar files (RFC 2445)"
+HOMEPAGE="http://github.com/collective/icalendar"
+SRC_URI="mirror://pypi/i/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~x86-fbsd"
+IUSE="doc test"
+DOCS="README.rst"
+
+RDEPEND="dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ test? ( dev-python/python-dateutil:0[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/coverage[${PYTHON_USEDEP}] )"
+
+python_prepare_all() {
+ # reset conf.py to not read version from an installed instance
+ sed -e "s:pkg_resources.get_distribution('icalendar').version:'3.9.0':" \
+ -i docs/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ pushd docs > /dev/null
+ emake text
+ popd > /dev/null
+ DOCS=( ${DOCS} docs/_build/text/*.txt )
+ fi
+}
+
+python_test() {
+ # From tox.ini
+ coverage run --source=src/icalendar --omit=*/tests/* --module \
+ pytest src/icalendar || die "test failed under ${EPYTHON}"
+}
diff --git a/dev-python/icalendar/metadata.xml b/dev-python/icalendar/metadata.xml
new file mode 100644
index 000000000000..4cc5905947ad
--- /dev/null
+++ b/dev-python/icalendar/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <use>
+ <flag name="doc">Generate examples and other extra documentation</flag>
+ </use>
+ <upstream>
+ <remote-id type="pypi">icalendar</remote-id>
+ <remote-id type="github">collective/icalendar</remote-id>
+ </upstream>
+</pkgmetadata>