mirror of
https://github.com/b4tman/sync_ics2gcal
synced 2025-07-20 20:03:33 +00:00
Compare commits
21 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
474f6ab58f | ||
3fcb4855d5 | |||
|
b34b1a8b20 | ||
|
1f270d65af | ||
|
5af61e92be | ||
|
d8feb095d8 | ||
|
56a84d8a65 | ||
|
6f4f34e1e1 | ||
|
30b01e3418 | ||
|
74faae48eb | ||
|
e68a04c1b3 | ||
|
119202ddcc | ||
|
de9b5fc174 | ||
|
bc9b4f9553 | ||
|
e86767b415 | ||
f1969a68a1 | |||
|
51ccf2fc88 | ||
eaaa3c9191
|
|||
526b75a895 | |||
|
290b86b765 | ||
4b290da71f
|
1
.github/FUNDING.yml
vendored
Normal file
1
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
custom: ['https://boosty.to/0xffff', 'https://www.donationalerts.com/r/b4tman1']
|
6
.github/dependabot.yml
vendored
6
.github/dependabot.yml
vendored
@@ -5,5 +5,11 @@ updates:
|
|||||||
schedule:
|
schedule:
|
||||||
interval: monthly
|
interval: monthly
|
||||||
time: '02:00'
|
time: '02:00'
|
||||||
|
timezone: "Europe/Moscow"
|
||||||
|
day: "saturday"
|
||||||
|
groups:
|
||||||
|
"PyPi updates":
|
||||||
|
patterns:
|
||||||
|
- "*"
|
||||||
open-pull-requests-limit: 10
|
open-pull-requests-limit: 10
|
||||||
target-branch: develop
|
target-branch: develop
|
||||||
|
2
.github/workflows/codeql-analysis.yml
vendored
2
.github/workflows/codeql-analysis.yml
vendored
@@ -16,7 +16,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
# We must fetch at least the immediate parents so that if this is
|
# We must fetch at least the immediate parents so that if this is
|
||||||
# a pull request then we can checkout the head.
|
# a pull request then we can checkout the head.
|
||||||
|
12
.github/workflows/pythonpackage.yml
vendored
12
.github/workflows/pythonpackage.yml
vendored
@@ -15,14 +15,14 @@ jobs:
|
|||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
max-parallel: 4
|
max-parallel: 3
|
||||||
matrix:
|
matrix:
|
||||||
python-version: ['3.9', '3.10', '3.11', '3.12']
|
python-version: ['3.11', '3.12', '3.13']
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- name: Set up Python ${{ matrix.python-version }}
|
- name: Set up Python ${{ matrix.python-version }}
|
||||||
uses: actions/setup-python@v2
|
uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: ${{ matrix.python-version }}
|
python-version: ${{ matrix.python-version }}
|
||||||
- name: Upgrade pip
|
- name: Upgrade pip
|
||||||
@@ -53,7 +53,7 @@ jobs:
|
|||||||
run: poetry run black --check --diff --color .
|
run: poetry run black --check --diff --color .
|
||||||
|
|
||||||
- name: Upload mypy report
|
- name: Upload mypy report
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: mypy_report
|
name: mypy_report-${{ matrix.python-version }}
|
||||||
path: mypy_report/
|
path: mypy_report/
|
||||||
|
4
.github/workflows/pythonpublish.yml
vendored
4
.github/workflows/pythonpublish.yml
vendored
@@ -8,9 +8,9 @@ jobs:
|
|||||||
deploy:
|
deploy:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v2
|
uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: '3.x'
|
python-version: '3.x'
|
||||||
- name: Upgrade pip
|
- name: Upgrade pip
|
||||||
|
4
.github/workflows/reviewdog.yml
vendored
4
.github/workflows/reviewdog.yml
vendored
@@ -11,10 +11,10 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v2
|
uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: 3.x
|
python-version: 3.x
|
||||||
|
|
||||||
|
1357
poetry.lock
generated
1357
poetry.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -11,20 +11,19 @@ keywords = ["icalendar", "sync", "google", "calendar"]
|
|||||||
classifiers = [
|
classifiers = [
|
||||||
'License :: OSI Approved :: MIT License',
|
'License :: OSI Approved :: MIT License',
|
||||||
'Operating System :: OS Independent',
|
'Operating System :: OS Independent',
|
||||||
'Programming Language :: Python :: 3.9',
|
|
||||||
'Programming Language :: Python :: 3.10',
|
|
||||||
'Programming Language :: Python :: 3.11',
|
'Programming Language :: Python :: 3.11',
|
||||||
'Programming Language :: Python :: 3.12',
|
'Programming Language :: Python :: 3.12',
|
||||||
|
'Programming Language :: Python :: 3.13',
|
||||||
]
|
]
|
||||||
|
|
||||||
[tool.poetry.dependencies]
|
[tool.poetry.dependencies]
|
||||||
python = "^3.9"
|
python = "^3.11"
|
||||||
google-auth = "2.34.0"
|
google-auth = "2.40.3"
|
||||||
google-api-python-client = "2.143.0"
|
google-api-python-client = "2.174.0"
|
||||||
icalendar = "5.0.13"
|
icalendar = "6.3.1"
|
||||||
pytz = "2024.1"
|
pytz = "2025.2"
|
||||||
PyYAML = "6.0.2"
|
PyYAML = "6.0.2"
|
||||||
fire = "0.6.0"
|
fire = "0.7.0"
|
||||||
|
|
||||||
[tool.poetry.group.dev]
|
[tool.poetry.group.dev]
|
||||||
optional = true
|
optional = true
|
||||||
@@ -33,21 +32,21 @@ optional = true
|
|||||||
optional = true
|
optional = true
|
||||||
|
|
||||||
[tool.poetry.group.dev.dependencies]
|
[tool.poetry.group.dev.dependencies]
|
||||||
pytest = ">=7.4,<9.0"
|
pytest = ">=8.1,<9.0"
|
||||||
flake8 = ">=5.0.4,<8.0.0"
|
flake8 = ">=7.0.4,<8.0.0"
|
||||||
black = ">=23.7,<25.0"
|
black = ">=25.0,<26.0"
|
||||||
mypy = ">=0.960"
|
mypy = ">=1.16.1"
|
||||||
types-python-dateutil = "^2.8.19"
|
types-python-dateutil = ">=2.9.0.20250516"
|
||||||
types-pytz = ">=2021.3.8"
|
types-pytz = ">=2025.2.0.20250516"
|
||||||
types-PyYAML = "^6.0.12"
|
types-PyYAML = "^6.0.12.20250516"
|
||||||
lxml = ">=4.9.3,<6.0.0"
|
lxml = ">=5.4.0,<7.0.0"
|
||||||
|
|
||||||
[tool.poetry.group.docs.dependencies]
|
[tool.poetry.group.docs.dependencies]
|
||||||
sphinx = ">=7.1,<7.5"
|
sphinx = ">=8.2,<9.0"
|
||||||
myst-parser = ">=2,<4"
|
myst-parser = ">=4,<5"
|
||||||
sphinx-rtd-theme = ">=1.2.2,<3.0.0"
|
sphinx-rtd-theme = ">=3.0.2,<4.0.0"
|
||||||
sphinx-copybutton = "^0.5.2"
|
sphinx-copybutton = "^0.5.2"
|
||||||
sphinx-design = ">=0.5,<0.7"
|
sphinx-design = ">=0.6,<0.7"
|
||||||
|
|
||||||
[tool.poetry.scripts]
|
[tool.poetry.scripts]
|
||||||
sync-ics2gcal = "sync_ics2gcal.sync_calendar:main"
|
sync-ics2gcal = "sync_ics2gcal.sync_calendar:main"
|
||||||
|
@@ -21,7 +21,7 @@ def get_start_date(date: ConfigDate) -> datetime.datetime:
|
|||||||
if isinstance(date, datetime.datetime):
|
if isinstance(date, datetime.datetime):
|
||||||
return date
|
return date
|
||||||
if "now" == date:
|
if "now" == date:
|
||||||
result = datetime.datetime.utcnow()
|
result = datetime.datetime.now(datetime.UTC)
|
||||||
else:
|
else:
|
||||||
result = dateutil.parser.parse(date)
|
result = dateutil.parser.parse(date)
|
||||||
return result
|
return result
|
||||||
|
@@ -119,7 +119,7 @@ def test_compare() -> None:
|
|||||||
@pytest.mark.parametrize("no_time", [True, False], ids=["date", "dateTime"])
|
@pytest.mark.parametrize("no_time", [True, False], ids=["date", "dateTime"])
|
||||||
def test_filter_events_by_date(no_time: bool) -> None:
|
def test_filter_events_by_date(no_time: bool) -> None:
|
||||||
msk = timezone("Europe/Moscow")
|
msk = timezone("Europe/Moscow")
|
||||||
now = utc.localize(datetime.datetime.utcnow())
|
now = datetime.datetime.now(datetime.UTC)
|
||||||
msk_now = msk.normalize(now.astimezone(msk))
|
msk_now = msk.normalize(now.astimezone(msk))
|
||||||
|
|
||||||
part_len = 5
|
part_len = 5
|
||||||
@@ -152,7 +152,7 @@ def test_filter_events_by_date(no_time: bool) -> None:
|
|||||||
|
|
||||||
def test_filter_events_to_update() -> None:
|
def test_filter_events_to_update() -> None:
|
||||||
msk = timezone("Europe/Moscow")
|
msk = timezone("Europe/Moscow")
|
||||||
now = utc.localize(datetime.datetime.utcnow())
|
now = datetime.datetime.now(datetime.UTC)
|
||||||
msk_now = msk.normalize(now.astimezone(msk))
|
msk_now = msk.normalize(now.astimezone(msk))
|
||||||
|
|
||||||
one_hour = datetime.datetime(1, 1, 1, 2) - datetime.datetime(1, 1, 1, 1)
|
one_hour = datetime.datetime(1, 1, 1, 2) - datetime.datetime(1, 1, 1, 1)
|
||||||
@@ -179,7 +179,7 @@ def test_filter_events_no_updated() -> None:
|
|||||||
test filtering events that not have 'updated' field
|
test filtering events that not have 'updated' field
|
||||||
such events should always pass the filter
|
such events should always pass the filter
|
||||||
"""
|
"""
|
||||||
now = datetime.datetime.utcnow()
|
now = datetime.datetime.now()
|
||||||
yesterday = now - datetime.timedelta(days=-1)
|
yesterday = now - datetime.timedelta(days=-1)
|
||||||
|
|
||||||
count = 10
|
count = 10
|
||||||
|
Reference in New Issue
Block a user