typikon 0.2.0__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.
- typikon-0.2.0/.forgejo/workflows/ci.yml +70 -0
- typikon-0.2.0/.forgejo/workflows/release.yml +96 -0
- typikon-0.2.0/.gitignore +8 -0
- typikon-0.2.0/Cargo.lock +382 -0
- typikon-0.2.0/Cargo.toml +37 -0
- typikon-0.2.0/LICENSE +338 -0
- typikon-0.2.0/PKG-INFO +331 -0
- typikon-0.2.0/README.md +311 -0
- typikon-0.2.0/data/LICENSE +12 -0
- typikon-0.2.0/data/menologion.json +2059 -0
- typikon-0.2.0/data/tradition-greek.json +7 -0
- typikon-0.2.0/data/tradition-slavic.json +10 -0
- typikon-0.2.0/docs/cli.png +0 -0
- typikon-0.2.0/docs/releasing.md +120 -0
- typikon-0.2.0/examples/dump.rs +19 -0
- typikon-0.2.0/pyproject.toml +40 -0
- typikon-0.2.0/python/typikon/__init__.py +36 -0
- typikon-0.2.0/python/typikon/_typikon.pyi +70 -0
- typikon-0.2.0/python/typikon/py.typed +0 -0
- typikon-0.2.0/src/calendars.rs +262 -0
- typikon-0.2.0/src/config.rs +108 -0
- typikon-0.2.0/src/day.rs +251 -0
- typikon-0.2.0/src/export/csv.rs +80 -0
- typikon-0.2.0/src/export/ics.rs +130 -0
- typikon-0.2.0/src/export/json.rs +38 -0
- typikon-0.2.0/src/export/mod.rs +7 -0
- typikon-0.2.0/src/fasting.rs +134 -0
- typikon-0.2.0/src/jurisdictions.rs +222 -0
- typikon-0.2.0/src/lib.rs +14 -0
- typikon-0.2.0/src/main.rs +492 -0
- typikon-0.2.0/src/menaia.rs +272 -0
- typikon-0.2.0/src/menologion.rs +246 -0
- typikon-0.2.0/src/paschalion.rs +142 -0
- typikon-0.2.0/src/python.rs +333 -0
- typikon-0.2.0/src/rules/mod.rs +72 -0
- typikon-0.2.0/src/rules/orthodox.rs +264 -0
- typikon-0.2.0/src/rules/ruthenian.rs +168 -0
- typikon-0.2.0/src/seasons.rs +112 -0
- typikon-0.2.0/tests/python/test_typikon.py +114 -0
- typikon-0.2.0/tests/typikon.rs +627 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
name: ci
|
|
2
|
+
|
|
3
|
+
# Deliberately not triggered by pull_request.
|
|
4
|
+
#
|
|
5
|
+
# The forge this runs on is public and takes pull requests from strangers, and a
|
|
6
|
+
# runner executes whatever the workflow checks out. Triggering on pull_request
|
|
7
|
+
# would mean a stranger's first contribution runs code on the runner host before
|
|
8
|
+
# anyone has read it. Triggering only on push means the runner only ever executes
|
|
9
|
+
# code that someone with push rights put there.
|
|
10
|
+
#
|
|
11
|
+
# The cost is that a pull request gets no automatic check. Run it by pushing the
|
|
12
|
+
# branch yourself once you have read the diff.
|
|
13
|
+
on:
|
|
14
|
+
push:
|
|
15
|
+
branches: ['**']
|
|
16
|
+
tags-ignore: ['**']
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
test:
|
|
20
|
+
runs-on: docker
|
|
21
|
+
container:
|
|
22
|
+
image: rust:1.98-bookworm
|
|
23
|
+
steps:
|
|
24
|
+
- uses: actions/checkout@v4
|
|
25
|
+
|
|
26
|
+
- name: Cache cargo
|
|
27
|
+
uses: actions/cache@v4
|
|
28
|
+
with:
|
|
29
|
+
path: |
|
|
30
|
+
~/.cargo/registry
|
|
31
|
+
~/.cargo/git
|
|
32
|
+
target
|
|
33
|
+
key: cargo-${{ runner.os }}-${{ hashFiles('Cargo.lock') }}
|
|
34
|
+
restore-keys: cargo-${{ runner.os }}-
|
|
35
|
+
|
|
36
|
+
# No `cargo fmt --check`. The tables in this crate are aligned by hand —
|
|
37
|
+
# MONTHS, JURISDICTIONS — and rustfmt wants one entry per line, which loses
|
|
38
|
+
# the shape that makes them readable. A gate that fights the house style is
|
|
39
|
+
# a gate that gets ignored.
|
|
40
|
+
- name: Lint
|
|
41
|
+
run: |
|
|
42
|
+
rustup component add clippy
|
|
43
|
+
cargo clippy --all-targets -- -D warnings
|
|
44
|
+
|
|
45
|
+
- name: Rust tests
|
|
46
|
+
run: cargo test
|
|
47
|
+
|
|
48
|
+
# The CLI and the bindings are the same engine, so they have to agree. This
|
|
49
|
+
# is the check that caught the bindings resolving their own default
|
|
50
|
+
# jurisdiction while the CLI read the configured one.
|
|
51
|
+
- name: Python bindings
|
|
52
|
+
run: |
|
|
53
|
+
apt-get update && apt-get install -y --no-install-recommends python3 python3-venv python3-dev
|
|
54
|
+
python3 -m venv /tmp/venv
|
|
55
|
+
/tmp/venv/bin/pip install --quiet maturin pytest mypy
|
|
56
|
+
cargo build --release
|
|
57
|
+
/tmp/venv/bin/maturin build --release --out dist
|
|
58
|
+
/tmp/venv/bin/pip install --quiet --no-index --find-links dist typikon
|
|
59
|
+
/tmp/venv/bin/python -m pytest tests/python -q
|
|
60
|
+
|
|
61
|
+
- name: Type stubs
|
|
62
|
+
run: |
|
|
63
|
+
cat > /tmp/typecheck.py <<'EOF'
|
|
64
|
+
import datetime, typikon
|
|
65
|
+
d: typikon.Day = typikon.describe(datetime.date(2026, 4, 12))
|
|
66
|
+
day: datetime.date = d.date
|
|
67
|
+
feast: str | None = d.feast
|
|
68
|
+
n: int = d.days_to_pascha
|
|
69
|
+
EOF
|
|
70
|
+
/tmp/venv/bin/python -m mypy --strict /tmp/typecheck.py
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
name: release
|
|
2
|
+
|
|
3
|
+
# Tag-driven. Cargo.toml carries the version; the tag only points at it, and the
|
|
4
|
+
# first job refuses to go on if the two disagree — a release tagged v0.3.0 that
|
|
5
|
+
# publishes 0.2.0 is not recoverable, because PyPI will not let a version be
|
|
6
|
+
# reused even after it is yanked.
|
|
7
|
+
on:
|
|
8
|
+
push:
|
|
9
|
+
tags: ['v*']
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
verify:
|
|
13
|
+
runs-on: docker
|
|
14
|
+
container:
|
|
15
|
+
image: rust:1.98-bookworm
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
|
+
- name: Tag must match Cargo.toml
|
|
19
|
+
run: |
|
|
20
|
+
tag="${GITHUB_REF_NAME#v}"
|
|
21
|
+
crate=$(grep -m1 '^version = ' Cargo.toml | cut -d'"' -f2)
|
|
22
|
+
echo "tag=$tag crate=$crate"
|
|
23
|
+
[ "$tag" = "$crate" ] || { echo "::error::tag $tag != Cargo.toml $crate"; exit 1; }
|
|
24
|
+
- name: Tests
|
|
25
|
+
run: cargo test
|
|
26
|
+
|
|
27
|
+
build:
|
|
28
|
+
needs: verify
|
|
29
|
+
runs-on: docker
|
|
30
|
+
container:
|
|
31
|
+
image: rust:1.98-bookworm
|
|
32
|
+
strategy:
|
|
33
|
+
matrix:
|
|
34
|
+
target: [x86_64-unknown-linux-gnu, aarch64-unknown-linux-gnu]
|
|
35
|
+
steps:
|
|
36
|
+
- uses: actions/checkout@v4
|
|
37
|
+
- name: Build wheel
|
|
38
|
+
run: |
|
|
39
|
+
apt-get update && apt-get install -y --no-install-recommends python3 python3-venv
|
|
40
|
+
python3 -m venv /tmp/venv
|
|
41
|
+
/tmp/venv/bin/pip install --quiet maturin[zig]
|
|
42
|
+
# --zig cross-compiles against an older glibc than the build image
|
|
43
|
+
# ships, so the wheel is not silently pinned to bookworm's.
|
|
44
|
+
/tmp/venv/bin/maturin build --release --zig \
|
|
45
|
+
--target ${{ matrix.target }} --out dist
|
|
46
|
+
- uses: actions/upload-artifact@v3
|
|
47
|
+
with:
|
|
48
|
+
name: wheels-${{ matrix.target }}
|
|
49
|
+
path: dist
|
|
50
|
+
|
|
51
|
+
sdist:
|
|
52
|
+
needs: verify
|
|
53
|
+
runs-on: docker
|
|
54
|
+
container:
|
|
55
|
+
image: rust:1.98-bookworm
|
|
56
|
+
steps:
|
|
57
|
+
- uses: actions/checkout@v4
|
|
58
|
+
- name: Build sdist
|
|
59
|
+
run: |
|
|
60
|
+
apt-get update && apt-get install -y --no-install-recommends python3 python3-venv
|
|
61
|
+
python3 -m venv /tmp/venv
|
|
62
|
+
/tmp/venv/bin/pip install --quiet maturin
|
|
63
|
+
/tmp/venv/bin/maturin sdist --out dist
|
|
64
|
+
- uses: actions/upload-artifact@v3
|
|
65
|
+
with:
|
|
66
|
+
name: sdist
|
|
67
|
+
path: dist
|
|
68
|
+
|
|
69
|
+
publish:
|
|
70
|
+
needs: [build, sdist]
|
|
71
|
+
runs-on: docker
|
|
72
|
+
container:
|
|
73
|
+
image: python:3.12-bookworm
|
|
74
|
+
steps:
|
|
75
|
+
- uses: actions/download-artifact@v3
|
|
76
|
+
with:
|
|
77
|
+
path: dist
|
|
78
|
+
- name: Collect
|
|
79
|
+
run: |
|
|
80
|
+
mkdir -p upload
|
|
81
|
+
find dist -name '*.whl' -o -name '*.tar.gz' | xargs -I{} cp {} upload/
|
|
82
|
+
ls -l upload
|
|
83
|
+
- name: Publish
|
|
84
|
+
env:
|
|
85
|
+
# A PROJECT-SCOPED token, not an account-wide one. PyPI's trusted
|
|
86
|
+
# publishing is OIDC and supports GitHub, GitLab, Google Cloud Build and
|
|
87
|
+
# ActiveState — not Forgejo — so this forge has to hold a long-lived
|
|
88
|
+
# credential. Scoping it to this one project is the whole of the
|
|
89
|
+
# mitigation available: if the forge is compromised, the blast radius is
|
|
90
|
+
# releases of typikon rather than every package the account owns.
|
|
91
|
+
TWINE_USERNAME: __token__
|
|
92
|
+
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
|
|
93
|
+
run: |
|
|
94
|
+
pip install --quiet twine
|
|
95
|
+
twine check upload/*
|
|
96
|
+
twine upload --non-interactive upload/*
|
typikon-0.2.0/.gitignore
ADDED
typikon-0.2.0/Cargo.lock
ADDED
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
# This file is automatically @generated by Cargo.
|
|
2
|
+
# It is not intended for manual editing.
|
|
3
|
+
version = 3
|
|
4
|
+
|
|
5
|
+
[[package]]
|
|
6
|
+
name = "anstream"
|
|
7
|
+
version = "1.0.0"
|
|
8
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
9
|
+
checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d"
|
|
10
|
+
dependencies = [
|
|
11
|
+
"anstyle",
|
|
12
|
+
"anstyle-parse",
|
|
13
|
+
"anstyle-query",
|
|
14
|
+
"anstyle-wincon",
|
|
15
|
+
"colorchoice",
|
|
16
|
+
"is_terminal_polyfill",
|
|
17
|
+
"utf8parse",
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
[[package]]
|
|
21
|
+
name = "anstyle"
|
|
22
|
+
version = "1.0.14"
|
|
23
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
24
|
+
checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000"
|
|
25
|
+
|
|
26
|
+
[[package]]
|
|
27
|
+
name = "anstyle-parse"
|
|
28
|
+
version = "1.0.0"
|
|
29
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
30
|
+
checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e"
|
|
31
|
+
dependencies = [
|
|
32
|
+
"utf8parse",
|
|
33
|
+
]
|
|
34
|
+
|
|
35
|
+
[[package]]
|
|
36
|
+
name = "anstyle-query"
|
|
37
|
+
version = "1.1.5"
|
|
38
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
39
|
+
checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
|
|
40
|
+
dependencies = [
|
|
41
|
+
"windows-sys",
|
|
42
|
+
]
|
|
43
|
+
|
|
44
|
+
[[package]]
|
|
45
|
+
name = "anstyle-wincon"
|
|
46
|
+
version = "3.0.11"
|
|
47
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
48
|
+
checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d"
|
|
49
|
+
dependencies = [
|
|
50
|
+
"anstyle",
|
|
51
|
+
"once_cell_polyfill",
|
|
52
|
+
"windows-sys",
|
|
53
|
+
]
|
|
54
|
+
|
|
55
|
+
[[package]]
|
|
56
|
+
name = "autocfg"
|
|
57
|
+
version = "1.5.1"
|
|
58
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
59
|
+
checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
|
|
60
|
+
|
|
61
|
+
[[package]]
|
|
62
|
+
name = "clap"
|
|
63
|
+
version = "4.6.7"
|
|
64
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
65
|
+
checksum = "aa8876b300ab35ba921adea3dfd70157a46249b33f95c9084ae5709785478946"
|
|
66
|
+
dependencies = [
|
|
67
|
+
"clap_builder",
|
|
68
|
+
"clap_derive",
|
|
69
|
+
]
|
|
70
|
+
|
|
71
|
+
[[package]]
|
|
72
|
+
name = "clap_builder"
|
|
73
|
+
version = "4.6.7"
|
|
74
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
75
|
+
checksum = "ec0797fb7aeb1406c84efac526901f7ec3ead2124f946b494e72879d4b54704d"
|
|
76
|
+
dependencies = [
|
|
77
|
+
"anstream",
|
|
78
|
+
"anstyle",
|
|
79
|
+
"clap_lex",
|
|
80
|
+
"strsim",
|
|
81
|
+
]
|
|
82
|
+
|
|
83
|
+
[[package]]
|
|
84
|
+
name = "clap_derive"
|
|
85
|
+
version = "4.6.7"
|
|
86
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
87
|
+
checksum = "f9c751b79415d4e559e3d1fcf128e09e720eb673a06d26cf6f392d37d75b66e0"
|
|
88
|
+
dependencies = [
|
|
89
|
+
"heck",
|
|
90
|
+
"proc-macro2",
|
|
91
|
+
"quote",
|
|
92
|
+
"syn 3.0.6",
|
|
93
|
+
]
|
|
94
|
+
|
|
95
|
+
[[package]]
|
|
96
|
+
name = "clap_lex"
|
|
97
|
+
version = "1.1.1"
|
|
98
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
99
|
+
checksum = "1c133bc6a41be0d194c306b5506d15e6feeea7b1d6604bd3f8310dfb2ca96486"
|
|
100
|
+
|
|
101
|
+
[[package]]
|
|
102
|
+
name = "colorchoice"
|
|
103
|
+
version = "1.0.5"
|
|
104
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
105
|
+
checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570"
|
|
106
|
+
|
|
107
|
+
[[package]]
|
|
108
|
+
name = "heck"
|
|
109
|
+
version = "0.5.0"
|
|
110
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
111
|
+
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
|
112
|
+
|
|
113
|
+
[[package]]
|
|
114
|
+
name = "indoc"
|
|
115
|
+
version = "2.0.7"
|
|
116
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
117
|
+
checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
|
|
118
|
+
dependencies = [
|
|
119
|
+
"rustversion",
|
|
120
|
+
]
|
|
121
|
+
|
|
122
|
+
[[package]]
|
|
123
|
+
name = "is_terminal_polyfill"
|
|
124
|
+
version = "1.70.2"
|
|
125
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
126
|
+
checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695"
|
|
127
|
+
|
|
128
|
+
[[package]]
|
|
129
|
+
name = "itoa"
|
|
130
|
+
version = "1.0.18"
|
|
131
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
132
|
+
checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
|
|
133
|
+
|
|
134
|
+
[[package]]
|
|
135
|
+
name = "libc"
|
|
136
|
+
version = "0.2.189"
|
|
137
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
138
|
+
checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2"
|
|
139
|
+
|
|
140
|
+
[[package]]
|
|
141
|
+
name = "memchr"
|
|
142
|
+
version = "2.8.3"
|
|
143
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
144
|
+
checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
|
|
145
|
+
|
|
146
|
+
[[package]]
|
|
147
|
+
name = "memoffset"
|
|
148
|
+
version = "0.9.1"
|
|
149
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
150
|
+
checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
|
|
151
|
+
dependencies = [
|
|
152
|
+
"autocfg",
|
|
153
|
+
]
|
|
154
|
+
|
|
155
|
+
[[package]]
|
|
156
|
+
name = "once_cell"
|
|
157
|
+
version = "1.21.4"
|
|
158
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
159
|
+
checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
|
|
160
|
+
|
|
161
|
+
[[package]]
|
|
162
|
+
name = "once_cell_polyfill"
|
|
163
|
+
version = "1.70.2"
|
|
164
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
165
|
+
checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe"
|
|
166
|
+
|
|
167
|
+
[[package]]
|
|
168
|
+
name = "portable-atomic"
|
|
169
|
+
version = "1.15.0"
|
|
170
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
171
|
+
checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85"
|
|
172
|
+
|
|
173
|
+
[[package]]
|
|
174
|
+
name = "proc-macro2"
|
|
175
|
+
version = "1.0.107"
|
|
176
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
177
|
+
checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
|
|
178
|
+
dependencies = [
|
|
179
|
+
"unicode-ident",
|
|
180
|
+
]
|
|
181
|
+
|
|
182
|
+
[[package]]
|
|
183
|
+
name = "pyo3"
|
|
184
|
+
version = "0.27.2"
|
|
185
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
186
|
+
checksum = "ab53c047fcd1a1d2a8820fe84f05d6be69e9526be40cb03b73f86b6b03e6d87d"
|
|
187
|
+
dependencies = [
|
|
188
|
+
"indoc",
|
|
189
|
+
"libc",
|
|
190
|
+
"memoffset",
|
|
191
|
+
"once_cell",
|
|
192
|
+
"portable-atomic",
|
|
193
|
+
"pyo3-build-config",
|
|
194
|
+
"pyo3-ffi",
|
|
195
|
+
"pyo3-macros",
|
|
196
|
+
"unindent",
|
|
197
|
+
]
|
|
198
|
+
|
|
199
|
+
[[package]]
|
|
200
|
+
name = "pyo3-build-config"
|
|
201
|
+
version = "0.27.2"
|
|
202
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
203
|
+
checksum = "b455933107de8642b4487ed26d912c2d899dec6114884214a0b3bb3be9261ea6"
|
|
204
|
+
dependencies = [
|
|
205
|
+
"target-lexicon",
|
|
206
|
+
]
|
|
207
|
+
|
|
208
|
+
[[package]]
|
|
209
|
+
name = "pyo3-ffi"
|
|
210
|
+
version = "0.27.2"
|
|
211
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
212
|
+
checksum = "1c85c9cbfaddf651b1221594209aed57e9e5cff63c4d11d1feead529b872a089"
|
|
213
|
+
dependencies = [
|
|
214
|
+
"libc",
|
|
215
|
+
"pyo3-build-config",
|
|
216
|
+
]
|
|
217
|
+
|
|
218
|
+
[[package]]
|
|
219
|
+
name = "pyo3-macros"
|
|
220
|
+
version = "0.27.2"
|
|
221
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
222
|
+
checksum = "0a5b10c9bf9888125d917fb4d2ca2d25c8df94c7ab5a52e13313a07e050a3b02"
|
|
223
|
+
dependencies = [
|
|
224
|
+
"proc-macro2",
|
|
225
|
+
"pyo3-macros-backend",
|
|
226
|
+
"quote",
|
|
227
|
+
"syn 2.0.119",
|
|
228
|
+
]
|
|
229
|
+
|
|
230
|
+
[[package]]
|
|
231
|
+
name = "pyo3-macros-backend"
|
|
232
|
+
version = "0.27.2"
|
|
233
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
234
|
+
checksum = "03b51720d314836e53327f5871d4c0cfb4fb37cc2c4a11cc71907a86342c40f9"
|
|
235
|
+
dependencies = [
|
|
236
|
+
"heck",
|
|
237
|
+
"proc-macro2",
|
|
238
|
+
"pyo3-build-config",
|
|
239
|
+
"quote",
|
|
240
|
+
"syn 2.0.119",
|
|
241
|
+
]
|
|
242
|
+
|
|
243
|
+
[[package]]
|
|
244
|
+
name = "quote"
|
|
245
|
+
version = "1.0.47"
|
|
246
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
247
|
+
checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
|
|
248
|
+
dependencies = [
|
|
249
|
+
"proc-macro2",
|
|
250
|
+
]
|
|
251
|
+
|
|
252
|
+
[[package]]
|
|
253
|
+
name = "rustversion"
|
|
254
|
+
version = "1.0.23"
|
|
255
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
256
|
+
checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"
|
|
257
|
+
|
|
258
|
+
[[package]]
|
|
259
|
+
name = "serde"
|
|
260
|
+
version = "1.0.229"
|
|
261
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
262
|
+
checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"
|
|
263
|
+
dependencies = [
|
|
264
|
+
"serde_core",
|
|
265
|
+
"serde_derive",
|
|
266
|
+
]
|
|
267
|
+
|
|
268
|
+
[[package]]
|
|
269
|
+
name = "serde_core"
|
|
270
|
+
version = "1.0.229"
|
|
271
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
272
|
+
checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"
|
|
273
|
+
dependencies = [
|
|
274
|
+
"serde_derive",
|
|
275
|
+
]
|
|
276
|
+
|
|
277
|
+
[[package]]
|
|
278
|
+
name = "serde_derive"
|
|
279
|
+
version = "1.0.229"
|
|
280
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
281
|
+
checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
|
|
282
|
+
dependencies = [
|
|
283
|
+
"proc-macro2",
|
|
284
|
+
"quote",
|
|
285
|
+
"syn 3.0.6",
|
|
286
|
+
]
|
|
287
|
+
|
|
288
|
+
[[package]]
|
|
289
|
+
name = "serde_json"
|
|
290
|
+
version = "1.0.151"
|
|
291
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
292
|
+
checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14"
|
|
293
|
+
dependencies = [
|
|
294
|
+
"itoa",
|
|
295
|
+
"memchr",
|
|
296
|
+
"serde",
|
|
297
|
+
"serde_core",
|
|
298
|
+
"zmij",
|
|
299
|
+
]
|
|
300
|
+
|
|
301
|
+
[[package]]
|
|
302
|
+
name = "strsim"
|
|
303
|
+
version = "0.11.1"
|
|
304
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
305
|
+
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
|
|
306
|
+
|
|
307
|
+
[[package]]
|
|
308
|
+
name = "syn"
|
|
309
|
+
version = "2.0.119"
|
|
310
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
311
|
+
checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
|
|
312
|
+
dependencies = [
|
|
313
|
+
"proc-macro2",
|
|
314
|
+
"quote",
|
|
315
|
+
"unicode-ident",
|
|
316
|
+
]
|
|
317
|
+
|
|
318
|
+
[[package]]
|
|
319
|
+
name = "syn"
|
|
320
|
+
version = "3.0.6"
|
|
321
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
322
|
+
checksum = "8593e8e72159ed2257d083c7a454a85cbf854f37a0966d8d483aff8c8a3ebcee"
|
|
323
|
+
dependencies = [
|
|
324
|
+
"proc-macro2",
|
|
325
|
+
"quote",
|
|
326
|
+
"unicode-ident",
|
|
327
|
+
]
|
|
328
|
+
|
|
329
|
+
[[package]]
|
|
330
|
+
name = "target-lexicon"
|
|
331
|
+
version = "0.13.5"
|
|
332
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
333
|
+
checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
|
|
334
|
+
|
|
335
|
+
[[package]]
|
|
336
|
+
name = "typikon"
|
|
337
|
+
version = "0.2.0"
|
|
338
|
+
dependencies = [
|
|
339
|
+
"clap",
|
|
340
|
+
"pyo3",
|
|
341
|
+
"serde",
|
|
342
|
+
"serde_json",
|
|
343
|
+
]
|
|
344
|
+
|
|
345
|
+
[[package]]
|
|
346
|
+
name = "unicode-ident"
|
|
347
|
+
version = "1.0.26"
|
|
348
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
349
|
+
checksum = "d245f478577f809a851594d02313b640fb437e0bb33866753cff937863096954"
|
|
350
|
+
|
|
351
|
+
[[package]]
|
|
352
|
+
name = "unindent"
|
|
353
|
+
version = "0.2.4"
|
|
354
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
355
|
+
checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3"
|
|
356
|
+
|
|
357
|
+
[[package]]
|
|
358
|
+
name = "utf8parse"
|
|
359
|
+
version = "0.2.2"
|
|
360
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
361
|
+
checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
|
|
362
|
+
|
|
363
|
+
[[package]]
|
|
364
|
+
name = "windows-link"
|
|
365
|
+
version = "0.2.1"
|
|
366
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
367
|
+
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
|
|
368
|
+
|
|
369
|
+
[[package]]
|
|
370
|
+
name = "windows-sys"
|
|
371
|
+
version = "0.61.2"
|
|
372
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
373
|
+
checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
|
|
374
|
+
dependencies = [
|
|
375
|
+
"windows-link",
|
|
376
|
+
]
|
|
377
|
+
|
|
378
|
+
[[package]]
|
|
379
|
+
name = "zmij"
|
|
380
|
+
version = "1.0.23"
|
|
381
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
382
|
+
checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
|
typikon-0.2.0/Cargo.toml
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
[package]
|
|
2
|
+
name = "typikon"
|
|
3
|
+
version = "0.2.0"
|
|
4
|
+
edition = "2021"
|
|
5
|
+
rust-version = "1.74"
|
|
6
|
+
description = "The Orthodox liturgical day: feasts, seasons and the fast, computed rather than fetched"
|
|
7
|
+
license = "GPL-2.0-only"
|
|
8
|
+
repository = "https://git.pumpin.online/funkpower/typikon"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
keywords = ["orthodox", "liturgical", "calendar", "byzantine", "pascha"]
|
|
11
|
+
categories = ["command-line-utilities", "date-and-time"]
|
|
12
|
+
|
|
13
|
+
[dependencies]
|
|
14
|
+
serde = { version = "1", features = ["derive"] }
|
|
15
|
+
serde_json = "1"
|
|
16
|
+
clap = { version = "4", features = ["derive"] }
|
|
17
|
+
pyo3 = { version = "0.27.2", features = ["extension-module", "abi3-py39"], optional = true }
|
|
18
|
+
|
|
19
|
+
[profile.release]
|
|
20
|
+
strip = true
|
|
21
|
+
lto = true
|
|
22
|
+
codegen-units = 1
|
|
23
|
+
|
|
24
|
+
[[bin]]
|
|
25
|
+
name = "typikon"
|
|
26
|
+
path = "src/main.rs"
|
|
27
|
+
|
|
28
|
+
[lib]
|
|
29
|
+
name = "typikon"
|
|
30
|
+
path = "src/lib.rs"
|
|
31
|
+
crate-type = ["cdylib", "rlib"]
|
|
32
|
+
|
|
33
|
+
[features]
|
|
34
|
+
# Only maturin turns this on. pyo3's extension-module feature leaves the Python
|
|
35
|
+
# symbols to be resolved by the interpreter at load time, so a normal `cargo
|
|
36
|
+
# build` of the CLI would fail to link if it were on by default.
|
|
37
|
+
python = ["dep:pyo3"]
|