Skip to content

Commit c95fe48

Browse files
author
t00n
committed
Merge branch 'master' of github.com:c4ptaincrunch/ics.py into pr_112
2 parents 9bd8f25 + 79647eb commit c95fe48

29 files changed

+278
-236
lines changed

.travis.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@ sudo: false
33
language: python
44

55
python:
6-
- "2.7"
7-
- "3.3"
86
- "3.4"
97
- "3.5"
8+
- "3.6"
109

1110
install:
1211
- "pip install -U pip setuptools"

AUTHORS.rst

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,38 @@
1+
Authors
2+
-------
3+
14
Ics.py is written and maintained by Nikita Marchant <nikita.marchant@gmail.com>.
25

36

47
Other contributors, listed alphabetically, are:
58

6-
* Gatien Bovyn <gatien.bovyn@gmail.com> -- Tests, grammar/orthography + misc
7-
8-
Many thanks for all contributions!
9-
10-
9+
* `@aureooms <https://github.com/aureooms>`_
10+
* `@ConnyOnny <https://github.com/ConnyOnny>`_
11+
* `@ConnyOnny <https://github.com/ConnyOnny>`_
12+
* `@davidjb <https://github.com/davidjb>`_
13+
* `@etnarek <https://github.com/etnarek>`_
14+
* `@gbovyn <https://github.com/gbovyn>`_
15+
* `@GMLudo <https://github.com/GMLudo>`_
16+
* `@guyzmo <https://github.com/guyzmo>`_
17+
* `@guyzmo <https://github.com/guyzmo>`_
18+
* `@jammon <https://github.com/jammon>`_
19+
* `@mrmadcow <https://github.com/mrmadcow>`_
20+
* `@perette <https://github.com/perette>`_
21+
* `@prashnts <https://github.com/prashnts>`_
22+
* `@rkeilty <https://github.com/rkeilty>`_
23+
* `@tgamauf <https://github.com/tgamauf>`_
24+
* `@Trii <https://github.com/Trii>`_
25+
26+
Many thanks for your contributions!
27+
28+
Included code
29+
--------------
1130

1231
There are also a few modules or functions incorporated from other
1332
authors and projects:
1433

15-
* utils.iso_precision includes something like 10 lines of arrow’s code,
16-
witch are ©Chris Smith under Apache license
34+
* ``utils.iso_precision`` includes something like 10 lines of Arrow's, code,
35+
witch is written by Chris Smith and under Apache license
1736

1837

19-
A big part of the code was written at `UrLab <http://urlab.be>`_, an awesome hackerspace in `ULB <http://ulb.ac.be>`_ in Brussels, Belgium, while beer was helping us with the `Ballmer effect <http://xkcd.com/323/>`_.
38+
A big part of the code was written at `UrLab <http://urlab.be>`_, an awesome hackerspace in `ULB <http://ulb.ac.be>`_ in Brussels, Belgium.

CHANGELOG.rst

Lines changed: 46 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,68 @@
1-
0.4 : (in dev)
2-
Hilights:
1+
============
2+
Ics.py changelog
3+
============
34

4-
- Last version to support Python 2.7 and 3.3
5+
**************
6+
0.5 (in dev)
7+
**************
8+
9+
- Drop support for Python 2.7 and 3.3.
10+
11+
**************
12+
0.4
13+
**************
14+
15+
Last version to support Python 2.7 and 3.3.
16+
17+
This version is by far the one with the most contributors, thank you !
18+
19+
Highlights:
520
- Todo/VTODO support (thanks @tgamauf)
621
- Add event arithmetics (thanks @guyzmo)
7-
- Support for alarms/VALARM (thanks @rkeilty)
8-
9-
Misc:
22+
- Support for alarms/`VALARM` (thanks @rkeilty)
23+
- Support for categories (thanks @perette)
1024

11-
- Make the parser work with tabbed whistspace (thanks @mrmadcow)
25+
Misc:
26+
- Make the parser work with tabbed whitespace (thanks @mrmadcow)
1227
- Better error messages (thanks @guyzmo)
13-
- Support input with missing VERSION (thanks @prashnts)
14-
- Support for Time Transparency/TRANSP (thanks @GMLudo)
28+
- Support input with missing `VERSION` (thanks @prashnts)
29+
- Support for Time Transparency/`TRANSP` (thanks @GMLudo)
1530
- All day events not omit the timezone (thanks @Trii)
1631
- Multi-day events fixes (thanks @ConnyOnny)
17-
- Fix TZID drop when VTIMEZONE is empty (thanks @ConnyOnny)
32+
- Fix `TZID` drop when `VTIMEZONE` is empty (thanks @ConnyOnny)
1833
- Better test coverage (thanks @aureooms)
1934

20-
Thank you also to @davidjb, @etnarek, @jammon
35+
Thank you also to @davidjb, @etnarek, @jammon
2136

22-
0.3.1 :
37+
*******
38+
0.3.1
39+
*******
2340
- Pin arrow to 0.4.2
2441

25-
0.3 :
26-
- Events in an EventList() are now always sorted
42+
*****
43+
0.3
44+
*****
45+
- Events in an `EventList()` are now always sorted
2746
- Freeze the version of Arrow (they made backwards-incompatible changes)
2847
- Add a lot of tests
2948
- Lots of small bugfixes
3049

31-
0.1.3 :
50+
*******
51+
0.1.3
52+
*******
3253
- FIX : broken install. Again.
3354

34-
0.1.2 :
55+
*******
56+
0.1.2
57+
*******
3558
- FIX : broken install
3659

37-
0.1.1 :
38-
- FIX : wrong super() and add output documentation
60+
*******
61+
0.1.1
62+
*******
63+
- FIX : wrong `super()` and add output documentation
3964

40-
0.1:
65+
****
66+
0.1
67+
****
4168
- First version

CONTRIBUTING.rst

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
Wanna contribute? I would love your help :)
22

3-
Feel free to submit patches, issues, feature requests, pull requests on the `GitHub repo <http://github.com/C4ptainCrunch/ics.py>`_, I'll be glad to fix and merge them all.
3+
Feel free to submit patches, issues, feature requests, pull requests on the `GitHub repo <http://github.com/C4ptainCrunch/ics.py>`_,
4+
I'll be glad to fix and merge them all.
45

5-
Also feel free to send me an `email <mailto:nikita.marchant@gmail.com>`_
6+
Please add yourself to ``AUTHORS.rst`` and state your changes in ``CHANGELOG.rst``.

README.rst

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,8 @@ It should be able to parse every calendar that respects the `rfc5545 <http://too
2424
iCalendar (file extension `.ics`) is used by Sunbird, Google Calendar, Apple Calendar, Android…
2525

2626

27-
Ics.py is available for Python>=2.7 *and* Python>=3.3 and is Apache2 Licensed.
27+
Ics.py is available for Python>=3.4 and is Apache2 Licensed.
2828

29-
Note : it is highly likely that Python 2 support will be dropped before the 1.0 release.
3029

3130

3231
Quickstart
@@ -40,17 +39,17 @@ Quickstart
4039
4140
.. code-block:: python
4241
43-
>>> from ics import Calendar, Event
44-
>>> c = Calendar()
45-
>>> e = Event()
46-
>>> e.name = "My cool event"
47-
>>> e.begin = '20140101 00:00:00'
48-
>>> c.events.append(e)
49-
>>> c.events
50-
[<Event 'My cool event' begin:2014-01-01 00:00:00 end:2014-01-01 00:00:01>]
51-
>>> with open('my.ics', 'w') as my_file:
52-
>>> my_file.writelines(c)
53-
>>> # and it's done !
42+
from ics import Calendar, Event
43+
c = Calendar()
44+
e = Event()
45+
e.name = "My cool event"
46+
e.begin = '20140101 00:00:00'
47+
c.events.add(e)
48+
c.events
49+
# [<Event 'My cool event' begin:2014-01-01 00:00:00 end:2014-01-01 00:00:01>]
50+
with open('my.ics', 'w') as my_file:
51+
my_file.writelines(c)
52+
# and it's done !
5453
5554
More examples are available in the `documentation <http://icspy.readthedocs.org/>`_.
5655

dev/release-workflow.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ Release HOWTO
55
* Bump version
66
* pyroma .
77
* check-manifest
8-
* `python setup.py egg_info sdist bdist_wheel bdist_egg register upload` (should test before upload ...)
9-
* `python3 setup.py egg_info bdist_egg register upload`
8+
* `python3 setup.py egg_info bdist_egg bdist_wheel`
9+
* Test the package
10+
* Upload `twine upload dist/*`
1011
* Check PyPI release page for obvious errors
1112
* `git commit`
1213
* `git tag -a v{version} -m 'Version {version}'`
@@ -15,4 +16,3 @@ Release HOWTO
1516
* `git push --tags && git push`
1617
* Build documentation for the tag v{version} on rtfd.org
1718
* Set the default rtfd version to {version}
18-

dev/test

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,5 @@
11
#!/bin/bash
22

3-
### PY2 ###
4-
source ve/bin/activate
5-
python2 setup.py test
6-
deactivate
7-
8-
### PY3 ###
93
source ve3/bin/activate
104
python setup.py test
115
deactivate

doc/about.rst

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,14 @@
11
About
22
=====
33

4-
Authors
5-
-------
6-
74
.. include:: ../AUTHORS.rst
85

96
.. _`apache2`:
107

118
License
129
-------
1310

14-
ics.py is under the Apache 2 software license because… bah! Why not?
11+
``ics.py`` is under the Apache 2 software license.
1512

1613
.. include:: ../LICENSE
1714

@@ -37,4 +34,4 @@ Here is a pizza for you!
3734

3835
.. image:: _static/pizza.jpg
3936

40-
(`Source <https://secure.flickr.com/photos/rdpeyton/3495871394/>`_ ©rdpeyton, CC by-nc-sa)
37+
(`Source <https://secure.flickr.com/photos/rdpeyton/3495871394/>`_ © rdpeyton, CC by-nc-sa)

doc/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060

6161
# General information about the project.
6262
project = u'ics.py'
63-
copyright = u'2013-2015, Nikita Marchant'
63+
copyright = u'see AUTHORS.rst'
6464

6565
# The version info for the project you're documenting, acts as replacement for
6666
# |version| and |release|, also used in various other places throughout the

doc/examples.rst

Lines changed: 30 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -3,54 +3,51 @@ Import a calendar from a file
33

44
.. code-block:: python
55
6-
>>> from ics import Calendar
7-
>>> try:
8-
>>> from urllib2 import urlopen # py2
9-
>>> except ImportError:
10-
>>> from urllib.request import urlopen # py3
11-
>>> url = "https://calendar.google.com/calendar/ical/en.usa%23holiday%40group.v.calendar.google.com/public/basic.ics"
12-
>>> c = Calendar(urlopen(url).read().decode('iso-8859-1'))
13-
14-
>>> import requests # Alternative: use requests
15-
>>> c = Calendar(requests.get(url).text)
16-
17-
>>> c
18-
<Calendar with 42 events>
19-
>>> c.events
20-
[<Event 'SmartMonday #1' begin:2013-12-13 20:00:00 end:2013-12-13 23:00:00>,
21-
<Event 'RFID workshop' begin:2013-12-06 12:00:00 end:2013-12-06 19:00:00>,
22-
...]
23-
>>> e = c.events[10]
24-
>>> "Event '{}' started {}".format(e.name, e.begin.humanize())
25-
"Event 'Mitch Altman soldering workshop' started 6 days ago"
6+
from ics import Calendar
7+
from urllib.request import urlopen
8+
url = "https://goo.gl/fhhrjN"
9+
c = Calendar(urlopen(url).read().decode('iso-8859-1'))
10+
11+
import requests # Alternative: use requests
12+
c = Calendar(requests.get(url).text)
13+
14+
c
15+
# <Calendar with 42 events>
16+
c.events
17+
# [<Event 'SmartMonday #1' begin:2013-12-13 20:00:00 end:2013-12-13 23:00:00>,
18+
# <Event 'RFID workshop' begin:2013-12-06 12:00:00 end:2013-12-06 19:00:00>,
19+
# ...]
20+
e = c.events[10]
21+
"Event '{}' started {}".format(e.name, e.begin.humanize())
22+
# "Event 'Mitch Altman soldering workshop' started 6 days ago"
2623
2724
2825
Create a new calendar and add events
2926
------------------------------------
3027

3128
.. code-block:: python
3229
33-
>>> from ics import Calendar, Event
34-
>>> c = Calendar()
35-
>>> e = Event()
36-
>>> e.name = "My cool event"
37-
>>> e.begin = '20140101 00:00:00'
38-
>>> c.events.append(e)
39-
>>> c.events
40-
[<Event 'My cool event' begin:2014-01-01 00:00:00 end:2014-01-01 00:00:01>]
30+
from ics import Calendar, Event
31+
c = Calendar()
32+
e = Event()
33+
e.name = "My cool event"
34+
e.begin = '20140101 00:00:00'
35+
c.events.add(e)
36+
c.events
37+
# [<Event 'My cool event' begin:2014-01-01 00:00:00 end:2014-01-01 00:00:01>]
4138
4239
Export a Calendar to a file
4340
---------------------------
4441

4542
.. code-block:: python
4643
47-
>>> with open('my.ics', 'w') as f:
48-
>>> f.writelines(c)
49-
>>> # And it's done !
44+
with open('my.ics', 'w') as f:
45+
f.writelines(c)
46+
# And it's done !
5047
5148
iCalendar-formatted data is also available in a string
5249

5350
.. code-block:: python
5451
55-
>>> str(c)
56-
'BEGIN:VCALENDAR\nPRODID:...
52+
str(c)
53+
# 'BEGIN:VCALENDAR\nPRODID:...

doc/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Ics.py : iCalendar for Humans
1010

1111
Ics.py is a pythonic and easy iCalendar (rfc5545) library. It's goals are to read and write ics data in a developer-friendly way.
1212

13-
It is written in Python (>=2.7 and >=3.3) and is :ref:`Apache2 Licensed <apache2>`.
13+
It is written in Python3 only (>=3.4) and is :ref:`Apache2 Licensed <apache2>`.
1414

1515
iCalendar is complicated, you don't like RFCs but you want/have to use the ics format and you love pythonic APIs? ics.py is for you!
1616

ics/__meta__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
__title__ = 'ics'
2-
__version__ = '0.3.1'
2+
__version__ = '0.5.dev0'
33
__author__ = 'Nikita Marchant'
44
__license__ = 'Apache License, Version 2.0'
5-
__copyright__ = 'Copyright 2013 Nikita Marchant'
5+
__copyright__ = 'Copyright 2013-2018 Nikita Marchant and individual contributors'

0 commit comments

Comments
 (0)