A tool for converting between USEFS and iCalendar files.
Project description
介绍
USEFS_ICS 是一个简单的 Python 程序,旨在将使用 USEFS(通用日程计划表交换格式架构) 的 YAML、TOML 或 JSON 格式文件转换为标准 iCalendar .ics 格式的日历文件,允许使用者将日程计划表导入至日历软件或带有日历/提醒同步功能的手环/手表等。
[!Important] 尽管此工具力求最大兼容性,但在转换过程中仍可能无法做到完全兼容。请仔细阅读以下关于转换的说明。
特性
- 双向转换: 支持 USEFS (YAML, TOML, JSON) 到 ICS 以及 ICS 到 USEFS (JSON) 格式的转换。
- 时区支持: 在将 USEFS 转换为 ICS 时,允许指定时区,确保日期和时间信息正确。 默认使用
Asia/Shanghai时区。 - 灵活的输入格式: 支持 YAML、TOML 和 JSON 格式的 USEFS 文件作为输入。
- 可读性强的输出: 生成格式化的 JSON 格式 USEFS 文件,方便阅读和编辑。 生成的ICS文件遵循iCalendar协议,兼容主流日历软件
- 简单易用: 通过命令行界面进行操作,简单直接。
- 可靠性: 在格式转换过程中,会对关键数据进行校验,最大限度的保证了数据的准确性
安装
请使用以下代码从 PyPI 安装最新版本的 USEFS_ICS :
pip install USEFS_ICS
用法
usefs_ics <conversion_type> <from_file> <to_file> [file_type] [timezone]
<conversion_type>: 指定转换类型,可以是2ICS(USEFS to ICS) 或2USEFS(ICS to USEFS)。<from_file>: 输入文件路径。<to_file>: 输出文件路径。[file_type]: (仅在 2ICS 转换时需要)指定 USEFS 文件的类型,可以是yaml、toml或json。[timezone]: (可选,仅在 2ICS 转换时使用)时区,默认为Asia/Shanghai。 如果未提供,则使用Asia/Shanghai作为默认时区。 如果提供了无效的时区,则将使用 UTC。
示例
-
将 USEFS 文件 (YAML 格式) 转换为 ICS 文件:
usefs_ics 2ICS my_data.yaml output.ics yaml
-
将 ICS 文件转换为 USEFS 文件 (JSON 格式):
usefs_ics 2USEFS my_calendar.ics output.json
-
将 USEFS 文件转换为 ICS 文件,并指定时区:
usefs_ics 2ICS my_data.json output.ics json Asia/Tokyo
目前不兼容的转换
由于 USEFS 和 ICS 格式在结构和支持的特性方面存在差异,因此在转换过程中仍可能无法做到完全兼容。请注意以下事项:
从 ICS 转换为 USEFS (2USEFS)
- 不兼容的集合信息: ICS 格式不直接支持日程集合的概念。 因此,所有 ICS 日程都将转换为 USEFS 文件中一个名为
从ICS导入的默认集合中的items。 原有的组织结构会丢失。 - 周期性规则: 复杂的重复规则 (RRULE) 可能无法完全转换。 基本的重复规则(例如每天、每周)将被保留,但更复杂的规则可能会丢失或转换为近似的 USEFS 表示形式。
- 时区信息: 虽然日期和时间会被正确转换,但来自 ICS 文件的时区信息在转换到 USEFS 时可能会简化。
- 参与者和组织者信息: 参与者 (ATTENDEE) 和组织者 (ORGANIZER) 信息不会被转换到 USEFS 格式。
- USEFS 不支持的属性 USEFS具有 short_name, enable, cycle, importance 这些属性,在从ICS转换为USEFS时,无法进行设置
从 USEFS 转换为 ICS (2ICS)
- USEFS 的 RRULE USEFS具有字符串形式的RRULE规则,在转换到ICS的时候会被忽略,
- USEFS 中的集合信息 转换到ICS文件中时,不会保留原有集合的信息,而是会被平铺到同一个日历中。
- 自定义属性: USEFS 中使用 properties 的键值对结构会被忽略,目前只会读取 location 和 room
- ENABLE 与 Cycle 字段的转换: 启用规则 (ENABLE) 和循环周期 (CYCLE) 字段目前不会被完全转换为相应的 ICS RRULE 规则。
建议在执行转换后仔细检查结果文件,以确保数据尽可能准确。 对于关键数据,请考虑手动调整转换后的文件。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file usefs_ics-0.1.1.tar.gz.
File metadata
- Download URL: usefs_ics-0.1.1.tar.gz
- Upload date:
- Size: 8.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d8128c13d96a1fea6175a259052c1eb093ebd2b604e7a91a360d30b4b312247
|
|
| MD5 |
9c77dccffa9aaf3568ad4e812ccdf087
|
|
| BLAKE2b-256 |
7cbb40a80928562a93ba5be9413aa9be12ea93b66625a7469efeb9162bacbafc
|
File details
Details for the file USEFS_ICS-0.1.1-py3-none-any.whl.
File metadata
- Download URL: USEFS_ICS-0.1.1-py3-none-any.whl
- Upload date:
- Size: 8.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
683097890af1bd45da966998ace182cac5247252cb944e0d05d8a3dec47ebcd5
|
|
| MD5 |
06651ae37e49a1e0a0bc2ed296ad2968
|
|
| BLAKE2b-256 |
d264322e930b304f3f3644dc3c1a3180a9ec279a46387a142328cbf65ba94dbe
|