ics-query 0.4.23__tar.gz → 0.4.32__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. {ics_query-0.4.23 → ics_query-0.4.32}/.github/workflows/tests.yml +36 -18
  2. ics_query-0.4.32/.pre-commit-config.yaml +17 -0
  3. {ics_query-0.4.23 → ics_query-0.4.32}/PKG-INFO +13 -6
  4. {ics_query-0.4.23 → ics_query-0.4.32}/README.md +7 -0
  5. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/_version.py +9 -4
  6. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/cli.py +1 -1
  7. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/all --tz Singapore one-event.ics -.run +1 -0
  8. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/all three-events.ics -.run +3 -0
  9. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/at 2019-03-04 multiple-calendars.ics -.run +2 -0
  10. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/at 2019-03-04 one-event-twice.ics -.run +2 -0
  11. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/at 2019-03-04 one-event.ics -.run +1 -0
  12. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/at 2019-03-07 multiple-calendars.ics -.run +1 -0
  13. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/at 2024-08-20 Berlin-Los-Angeles.ics -.run +2 -0
  14. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/between 20240823 4d recurring-work-events.ics -.run +2 -0
  15. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/first -c VJOURNAL -c VEVENT one-event.ics -.run +1 -0
  16. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/first -c VJOURNAL simple-journal.ics -.run +1 -0
  17. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/first -c VTODO -c VJOURNAL simple-todo.ics -.run +1 -0
  18. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/first -c VTODO simple-todo.ics -.run +1 -0
  19. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/first recurring-work-events.ics -.run +1 -0
  20. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/test_command_line.py +8 -2
  21. {ics_query-0.4.23 → ics_query-0.4.32}/pyproject.toml +4 -4
  22. {ics_query-0.4.23 → ics_query-0.4.32}/.github/FUNDING.yml +0 -0
  23. {ics_query-0.4.23 → ics_query-0.4.32}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  24. {ics_query-0.4.23 → ics_query-0.4.32}/.github/dependabot.yml +0 -0
  25. {ics_query-0.4.23 → ics_query-0.4.32}/.gitignore +0 -0
  26. {ics_query-0.4.23 → ics_query-0.4.32}/LICENSE +0 -0
  27. {ics_query-0.4.23 → ics_query-0.4.32}/conftest.py +0 -0
  28. {ics_query-0.4.23 → ics_query-0.4.32}/ics-query +0 -0
  29. {ics_query-0.4.23 → ics_query-0.4.32}/ics-query.cmd +0 -0
  30. {ics_query-0.4.23 → ics_query-0.4.32}/ics-query.py +0 -0
  31. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/__init__.py +0 -0
  32. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/__main__.py +0 -0
  33. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/parse.py +0 -0
  34. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/query.py +0 -0
  35. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/__init__.py +0 -0
  36. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/conftest.py +0 -0
  37. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/calendars/Berlin-Los-Angeles.ics +0 -0
  38. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/calendars/empty-calendar.ics +0 -0
  39. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/calendars/empty-file.ics +0 -0
  40. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/calendars/multiple-calendars.ics +0 -0
  41. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/calendars/one-event-twice.ics +0 -0
  42. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/calendars/one-event-without-timezone.ics +0 -0
  43. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/calendars/one-event.ics +0 -0
  44. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/calendars/recurring-work-events.ics +0 -0
  45. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/calendars/simple-journal.ics +0 -0
  46. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/calendars/simple-todo.ics +0 -0
  47. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/calendars/three-events.ics +0 -0
  48. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/first -c VJOURNAL one-event.ics -.run +0 -0
  49. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/first empty-calendar.ics -.run +0 -0
  50. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/runs/first empty-file.ics -.run +0 -0
  51. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/test_parse_date.py +0 -0
  52. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/tests/test_parse_timedelta.py +0 -0
  53. {ics_query-0.4.23 → ics_query-0.4.32}/ics_query/version.py +0 -0
  54. {ics_query-0.4.23 → ics_query-0.4.32}/renovate.json +0 -0
  55. {ics_query-0.4.23 → ics_query-0.4.32}/tox.ini +0 -0
@@ -11,6 +11,36 @@ on:
11
11
 
12
12
  jobs:
13
13
 
14
+ run-tests:
15
+ strategy:
16
+ matrix:
17
+ config:
18
+ # also add to test-version
19
+ # [Python version, tox env, OS]
20
+ - ["3.9", "py39", "ubuntu-latest"]
21
+ - ["3.10", "py310", "ubuntu-latest"]
22
+ - ["3.11", "py311", "ubuntu-latest"]
23
+ - ["3.12", "py312", "ubuntu-latest"]
24
+ - ["3.9", "ruff", "ubuntu-latest"]
25
+ # - ["3.11", "exe", "windows-latest"]
26
+
27
+ runs-on: ${{ matrix.config[2] }}
28
+ name: ${{ matrix.config[1] }}
29
+ if: ${{ !startsWith(github.ref, 'refs/tags/v') && github.ref != 'refs/heads/main' }}
30
+ steps:
31
+ - uses: actions/checkout@v4
32
+ - name: Set up Python
33
+ uses: actions/setup-python@v5
34
+ with:
35
+ python-version: ${{ matrix.config[0] }}
36
+ - name: Install dependencies
37
+ run: |
38
+ python -m pip install --upgrade pip
39
+ pip install tox
40
+ - name: Test
41
+ run: |
42
+ tox -e ${{ matrix.config[1] }}
43
+
14
44
  version:
15
45
  # determine the new version and possibly switch to the new tag that we run on
16
46
  name: "Determine a new version"
@@ -50,7 +80,7 @@ jobs:
50
80
  fi
51
81
  echo "version=$TAG" >> $GITHUB_OUTPUT
52
82
 
53
- run-tests:
83
+ test-version:
54
84
  strategy:
55
85
  matrix:
56
86
  config:
@@ -63,7 +93,7 @@ jobs:
63
93
  - ["3.11", "exe", "windows-latest"]
64
94
 
65
95
  runs-on: ${{ matrix.config[2] }}
66
- name: ${{ matrix.config[1] }}
96
+ name: release-${{ matrix.config[1] }}
67
97
  needs:
68
98
  - version
69
99
  steps:
@@ -96,7 +126,7 @@ jobs:
96
126
  # only deploy on tags, see https://stackoverflow.com/a/58478262/1320237
97
127
  if: ${{ startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main' }}
98
128
  needs:
99
- - run-tests
129
+ - test-version
100
130
  - version
101
131
  runs-on: ubuntu-latest
102
132
  # This environment stores the TWINE_USERNAME and TWINE_PASSWORD
@@ -114,7 +144,7 @@ jobs:
114
144
  - name: Set up Python
115
145
  uses: actions/setup-python@v5
116
146
  with:
117
- python-version: "3.12"
147
+ python-version: "3.13"
118
148
  - name: Install dependencies
119
149
  run: |
120
150
  python -m pip install --upgrade pip
@@ -145,25 +175,13 @@ jobs:
145
175
  fi
146
176
  twine check dist/*
147
177
  twine upload dist/*
148
-
149
- # artifact-check:
150
- # name: artifact check
151
- # runs-on: ubuntu-latest
152
- # needs:
153
- # - run-tests
154
- # steps:
155
- # - uses: actions/download-artifact@v4
156
- # with:
157
- # pattern: dist-*
158
- # path: dist
159
- # - run: ls -R dist
160
-
178
+
161
179
  github-release:
162
180
  name: "Publish GitHub Release"
163
181
  # only deploy on tags, see https://stackoverflow.com/a/58478262/1320237
164
182
  if: ${{ startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main' }}
165
183
  needs:
166
- - run-tests
184
+ - test-version
167
185
  - deploy-tag-to-pypi
168
186
  - version
169
187
  runs-on: ubuntu-latest
@@ -0,0 +1,17 @@
1
+ # SPDX-FileCopyrightText: 2024 Nicco Kunzmann and Open Web Calendar Contributors <https://open-web-calendar.quelltext.eu/>
2
+ #
3
+ # SPDX-License-Identifier: GPL-2.0-only
4
+
5
+ repos:
6
+ - repo: https://github.com/pre-commit/pre-commit-hooks
7
+ rev: v4.5.0
8
+ hooks:
9
+ - id: debug-statements
10
+
11
+ - repo: https://github.com/astral-sh/ruff-pre-commit
12
+ rev: v0.3.5
13
+ hooks:
14
+ - id: ruff
15
+ args: [--config, "pyproject.toml", --fix]
16
+ - id: ruff-format
17
+ args: [--config, "pyproject.toml"]
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ics-query
3
- Version: 0.4.23
3
+ Version: 0.4.32
4
4
  Summary: Find out what happens in ICS calendar files - query and filter RFC 5545 compatible .ics files for events, journals, TODOs and more.
5
5
  Project-URL: Homepage, https://github.com/niccokunzmann/ics-query/
6
6
  Project-URL: Repository, https://github.com/niccokunzmann/ics-query/
7
- Project-URL: source_archive, https://github.com/niccokunzmann/ics-query/archive/6e6ac50318441558eda57e9b267f4c4695c16176.zip
7
+ Project-URL: source_archive, https://github.com/niccokunzmann/ics-query/archive/a11ed5390eb3571ecd3e0af2a1b990812f3de41d.zip
8
8
  Project-URL: Issues, https://github.com/niccokunzmann/ics-query/issues
9
9
  Project-URL: Documentation, https://github.com/niccokunzmann/ics-query/
10
10
  Project-URL: Changelog, https://github.com/niccokunzmann/ics-query/#changelog
@@ -697,12 +697,12 @@ Classifier: Programming Language :: Python :: 3.12
697
697
  Classifier: Topic :: Office/Business :: Scheduling
698
698
  Requires-Python: >=3.9
699
699
  Requires-Dist: click==8.1.8
700
- Requires-Dist: icalendar==6.1.1
700
+ Requires-Dist: icalendar==6.1.3
701
701
  Requires-Dist: python-dateutil==2.9.0.post0
702
- Requires-Dist: recurring-ical-events==3.5.2
702
+ Requires-Dist: recurring-ical-events==3.7.0
703
703
  Requires-Dist: six==1.17.0
704
- Requires-Dist: tzdata==2025.1
705
- Requires-Dist: tzlocal==5.3
704
+ Requires-Dist: tzdata==2025.2
705
+ Requires-Dist: tzlocal==5.3.1
706
706
  Requires-Dist: x-wr-timezone==2.0.1
707
707
  Provides-Extra: test
708
708
  Requires-Dist: pytest; extra == 'test'
@@ -1035,6 +1035,13 @@ while `b` and `c` can change.
1035
1035
 
1036
1036
  This section should set you up for developing `ics-query`.
1037
1037
 
1038
+ To create new commits, you should install [pre-commit](https://pre-commit.com/).
1039
+ Then run:
1040
+
1041
+ ```shell
1042
+ pre-commit install
1043
+ ```
1044
+
1038
1045
  ### Testing
1039
1046
 
1040
1047
  This project's development is driven by tests.
@@ -325,6 +325,13 @@ while `b` and `c` can change.
325
325
 
326
326
  This section should set you up for developing `ics-query`.
327
327
 
328
+ To create new commits, you should install [pre-commit](https://pre-commit.com/).
329
+ Then run:
330
+
331
+ ```shell
332
+ pre-commit install
333
+ ```
334
+
328
335
  ### Testing
329
336
 
330
337
  This project's development is driven by tests.
@@ -1,8 +1,13 @@
1
- # file generated by setuptools_scm
1
+ # file generated by setuptools-scm
2
2
  # don't change, don't track in version control
3
+
4
+ __all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
5
+
3
6
  TYPE_CHECKING = False
4
7
  if TYPE_CHECKING:
5
- from typing import Tuple, Union
8
+ from typing import Tuple
9
+ from typing import Union
10
+
6
11
  VERSION_TUPLE = Tuple[Union[int, str], ...]
7
12
  else:
8
13
  VERSION_TUPLE = object
@@ -12,5 +17,5 @@ __version__: str
12
17
  __version_tuple__: VERSION_TUPLE
13
18
  version_tuple: VERSION_TUPLE
14
19
 
15
- __version__ = version = '0.4.23'
16
- __version_tuple__ = version_tuple = (0, 4, 23)
20
+ __version__ = version = '0.4.32'
21
+ __version_tuple__ = version_tuple = (0, 4, 32)
@@ -210,7 +210,7 @@ def opt_available_timezones(*param_decls: str, **kwargs: t.Any) -> t.Callable:
210
210
 
211
211
 
212
212
  def opt_license(*param_decls: str, **kwargs: t.Any) -> t.Callable:
213
- """List available timezones.
213
+ """Show the license
214
214
 
215
215
  This is copied from the --help option.
216
216
  """
@@ -4,6 +4,7 @@ DTSTART;TZID=Singapore:20190304T150000
4
4
  DTEND;TZID=Singapore:20190304T153000
5
5
  DTSTAMP:20190303T111937
6
6
  UID:UYDQSG9TH4DE0WM3QFL2J
7
+ RECURRENCE-ID;TZID=Singapore:20190304T150000
7
8
  CREATED:20190303T111937
8
9
  LAST-MODIFIED:20190303T111937
9
10
  END:VEVENT
@@ -4,6 +4,7 @@ DTSTART;TZID=Europe/Berlin:20190304T000000
4
4
  DTEND;TZID=Europe/Berlin:20190304T010000
5
5
  DTSTAMP:20190303T111937
6
6
  UID:UYDQSG9TH4DE0WM3QFL2J
7
+ RECURRENCE-ID;TZID=Europe/Berlin:20190304T000000
7
8
  CLASS:PUBLIC
8
9
  CREATED:20190303T111937
9
10
  LAST-MODIFIED:20190303T111937
@@ -15,6 +16,7 @@ DTSTART;TZID=Europe/Berlin:20190307T000000
15
16
  DTEND;TZID=Europe/Berlin:20190307T010000
16
17
  DTSTAMP:20190303T111937
17
18
  UID:UYDQSG9TH4DE0WM3QFL2J
19
+ RECURRENCE-ID;TZID=Europe/Berlin:20190307T000000
18
20
  CLASS:PUBLIC
19
21
  CREATED:20190303T111937
20
22
  LAST-MODIFIED:20190303T111937
@@ -26,6 +28,7 @@ DTSTART;TZID=Europe/Berlin:20190310T000000
26
28
  DTEND;TZID=Europe/Berlin:20190310T010000
27
29
  DTSTAMP:20190303T111937
28
30
  UID:UYDQSG9TH4DE0WM3QFL2J
31
+ RECURRENCE-ID;TZID=Europe/Berlin:20190310T000000
29
32
  CLASS:PUBLIC
30
33
  CREATED:20190303T111937
31
34
  LAST-MODIFIED:20190303T111937
@@ -4,6 +4,7 @@ DTSTART;TZID=Europe/Berlin:20190304T000000
4
4
  DTEND;TZID=Europe/Berlin:20190304T010000
5
5
  DTSTAMP:20190303T111937
6
6
  UID:UYDQSG9TH4DE0WM3QFL2J
7
+ RECURRENCE-ID;TZID=Europe/Berlin:20190304T000000
7
8
  CLASS:PUBLIC
8
9
  CREATED:20190303T111937
9
10
  LAST-MODIFIED:20190303T111937
@@ -15,6 +16,7 @@ DTSTART;TZID=Europe/Berlin:20190304T080000
15
16
  DTEND;TZID=Europe/Berlin:20190304T083000
16
17
  DTSTAMP:20190303T111937
17
18
  UID:UYDQSG9TH4DE0WM3QFL2J
19
+ RECURRENCE-ID;TZID=Europe/Berlin:20190304T080000
18
20
  CREATED:20190303T111937
19
21
  LAST-MODIFIED:20190303T111937
20
22
  END:VEVENT
@@ -4,6 +4,7 @@ DTSTART;TZID=Europe/Berlin:20190304T080000
4
4
  DTEND;TZID=Europe/Berlin:20190304T083000
5
5
  DTSTAMP:20190303T111937
6
6
  UID:UYDQSG9TH4DE0WM3QFL2J
7
+ RECURRENCE-ID;TZID=Europe/Berlin:20190304T080000
7
8
  CREATED:20190303T111937
8
9
  LAST-MODIFIED:20190303T111937
9
10
  END:VEVENT
@@ -13,6 +14,7 @@ DTSTART;TZID=Europe/Berlin:20190304T080000
13
14
  DTEND;TZID=Europe/Berlin:20190304T083000
14
15
  DTSTAMP:20190303T111937
15
16
  UID:UYDQSG9TH4DE0WM3QFL2J
17
+ RECURRENCE-ID;TZID=Europe/Berlin:20190304T080000
16
18
  CREATED:20190303T111937
17
19
  LAST-MODIFIED:20190303T111937
18
20
  END:VEVENT
@@ -4,6 +4,7 @@ DTSTART;TZID=Europe/Berlin:20190304T080000
4
4
  DTEND;TZID=Europe/Berlin:20190304T083000
5
5
  DTSTAMP:20190303T111937
6
6
  UID:UYDQSG9TH4DE0WM3QFL2J
7
+ RECURRENCE-ID;TZID=Europe/Berlin:20190304T080000
7
8
  CREATED:20190303T111937
8
9
  LAST-MODIFIED:20190303T111937
9
10
  END:VEVENT
@@ -4,6 +4,7 @@ DTSTART;TZID=Europe/Berlin:20190307T000000
4
4
  DTEND;TZID=Europe/Berlin:20190307T010000
5
5
  DTSTAMP:20190303T111937
6
6
  UID:UYDQSG9TH4DE0WM3QFL2J
7
+ RECURRENCE-ID;TZID=Europe/Berlin:20190307T000000
7
8
  CLASS:PUBLIC
8
9
  CREATED:20190303T111937
9
10
  LAST-MODIFIED:20190303T111937
@@ -4,6 +4,7 @@ DTSTART;TZID=Europe/Berlin:20240820T060000
4
4
  DTEND;TZID=Europe/Berlin:20240820T070000
5
5
  DTSTAMP:20240823T130444Z
6
6
  UID:b27ea261-f23d-4e03-a7ac-f8cb0d00f07f
7
+ RECURRENCE-ID;TZID=Europe/Berlin:20240820T060000
7
8
  CREATED:20240823T120639Z
8
9
  LAST-MODIFIED:20240823T130444Z
9
10
  TRANSP:OPAQUE
@@ -15,6 +16,7 @@ DTSTART;TZID=America/Los_Angeles:20240820T060000
15
16
  DTEND;TZID=America/Los_Angeles:20240820T070000
16
17
  DTSTAMP:20240823T130711Z
17
18
  UID:6d7ff7f3-4bc4-4d89-afa0-771bd690518a
19
+ RECURRENCE-ID;TZID=America/Los_Angeles:20240820T060000
18
20
  SEQUENCE:1
19
21
  CREATED:20240823T120639Z
20
22
  LAST-MODIFIED:20240823T130711Z
@@ -4,6 +4,7 @@ DTSTART;TZID=Europe/Berlin:20240823T090000
4
4
  DTEND;TZID=Europe/Berlin:20240823T170000
5
5
  DTSTAMP:20240823T082915Z
6
6
  UID:6b85b60c-eb1a-4338-9ece-33541b95bf17
7
+ RECURRENCE-ID;TZID=Europe/Berlin:20240823T090000
7
8
  SEQUENCE:1
8
9
  CREATED:20240823T082829Z
9
10
  LAST-MODIFIED:20240823T082915Z
@@ -16,6 +17,7 @@ DTSTART;TZID=Europe/Berlin:20240826T090000
16
17
  DTEND;TZID=Europe/Berlin:20240826T170000
17
18
  DTSTAMP:20240823T082915Z
18
19
  UID:6b85b60c-eb1a-4338-9ece-33541b95bf17
20
+ RECURRENCE-ID;TZID=Europe/Berlin:20240826T090000
19
21
  SEQUENCE:1
20
22
  CREATED:20240823T082829Z
21
23
  LAST-MODIFIED:20240823T082915Z
@@ -4,6 +4,7 @@ DTSTART;TZID=Europe/Berlin:20190304T080000
4
4
  DTEND;TZID=Europe/Berlin:20190304T083000
5
5
  DTSTAMP:20190303T111937
6
6
  UID:UYDQSG9TH4DE0WM3QFL2J
7
+ RECURRENCE-ID;TZID=Europe/Berlin:20190304T080000
7
8
  CREATED:20190303T111937
8
9
  LAST-MODIFIED:20190303T111937
9
10
  END:VEVENT
@@ -7,6 +7,7 @@ DESCRIPTION:We made it this year too. Probably. What's the point of a re
7
7
  DTSTAMP:19920901T130000Z
8
8
  DTSTART;VALUE=DATE:19920420
9
9
  PRIORITY:1
10
+ RECURRENCE-ID;VALUE=DATE:19920420
10
11
  SUMMARY:Yearly Income Tax Report
11
12
  UID:19920901T130000Z-123409@host.com
12
13
  END:VJOURNAL
@@ -5,6 +5,7 @@ DTSTAMP:19920901T130000Z
5
5
  DTSTART:19920415T133000Z
6
6
  DUE:19920516T045959Z
7
7
  PRIORITY:1
8
+ RECURRENCE-ID:19920415T133000Z
8
9
  SUMMARY:Yearly Income Tax Preparation
9
10
  UID:19920901T130000Z-123408@host.com
10
11
  END:VTODO
@@ -5,6 +5,7 @@ DTSTAMP:19920901T130000Z
5
5
  DTSTART:19920415T133000Z
6
6
  DUE:19920516T045959Z
7
7
  PRIORITY:1
8
+ RECURRENCE-ID:19920415T133000Z
8
9
  SUMMARY:Yearly Income Tax Preparation
9
10
  UID:19920901T130000Z-123408@host.com
10
11
  END:VTODO
@@ -4,6 +4,7 @@ DTSTART;TZID=Europe/Berlin:20240819T090000
4
4
  DTEND;TZID=Europe/Berlin:20240819T170000
5
5
  DTSTAMP:20240823T082915Z
6
6
  UID:6b85b60c-eb1a-4338-9ece-33541b95bf17
7
+ RECURRENCE-ID;TZID=Europe/Berlin:20240819T090000
7
8
  SEQUENCE:1
8
9
  CREATED:20240823T082829Z
9
10
  LAST-MODIFIED:20240823T082915Z
@@ -68,5 +68,11 @@ def test_special_timezones(run):
68
68
  def test_localtime_is_not_in_the_result_string(run):
69
69
  """We do not want 'localtime' to turn up as the result tz name."""
70
70
  result = run("first", "--tz", "localtime", "one-event-without-timezone.ics")
71
- assert f"DTSTART;TZID={get_localzone_name()}:201903" in result.output
72
- assert f"DTEND;TZID={get_localzone_name()}:201903" in result.output
71
+ assert (
72
+ f"DTSTART;TZID={get_localzone_name()}:201903" in result.output
73
+ or "TZID=" not in result.output
74
+ )
75
+ assert (
76
+ f"DTEND;TZID={get_localzone_name()}:201903" in result.output
77
+ or "TZID=" not in result.output
78
+ )
@@ -45,12 +45,12 @@ classifiers = [
45
45
  ]
46
46
 
47
47
  dependencies = [
48
- "icalendar==6.1.1",
49
- "recurring-ical-events==3.5.2",
48
+ "icalendar==6.1.3",
49
+ "recurring-ical-events==3.7.0",
50
50
  "click==8.1.8",
51
51
  "x-wr-timezone==2.0.1",
52
- "tzlocal==5.3",
53
- "tzdata==2025.1",
52
+ "tzlocal==5.3.1",
53
+ "tzdata==2025.2",
54
54
  "python-dateutil==2.9.0.post0",
55
55
  "six==1.17.0",
56
56
  ]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes