indico-cli 0.4.1__tar.gz → 0.4.3__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.
- {indico_cli-0.4.1 → indico_cli-0.4.3}/PKG-INFO +29 -2
- {indico_cli-0.4.1 → indico_cli-0.4.3}/README.md +28 -1
- indico_cli-0.4.3/indico_cli/_version.py +24 -0
- {indico_cli-0.4.1 → indico_cli-0.4.3}/indico_cli/cli.py +4 -2
- {indico_cli-0.4.1 → indico_cli-0.4.3}/indico_cli/indico_api.py +377 -198
- {indico_cli-0.4.1 → indico_cli-0.4.3}/skills/indico-skill/SKILL.md +9 -2
- indico_cli-0.4.3/tests/test_get_files.py +61 -0
- indico_cli-0.4.3/tests/test_write_commands.py +201 -0
- {indico_cli-0.4.1 → indico_cli-0.4.3}/uv.lock +74 -0
- indico_cli-0.4.1/indico_cli/_version.py +0 -34
- {indico_cli-0.4.1 → indico_cli-0.4.3}/.gitignore +0 -0
- {indico_cli-0.4.1 → indico_cli-0.4.3}/.gitlab-ci.yml +0 -0
- {indico_cli-0.4.1 → indico_cli-0.4.3}/CLAUDE.md +0 -0
- {indico_cli-0.4.1 → indico_cli-0.4.3}/LICENSE +0 -0
- {indico_cli-0.4.1 → indico_cli-0.4.3}/docs/superpowers/plans/2026-03-24-search-results-and-error-messages.md +0 -0
- {indico_cli-0.4.1 → indico_cli-0.4.3}/docs/superpowers/specs/2026-03-24-search-results-and-error-messages-design.md +0 -0
- {indico_cli-0.4.1 → indico_cli-0.4.3}/indico_cli/__init__.py +0 -0
- {indico_cli-0.4.1 → indico_cli-0.4.3}/indico_cli/utils.py +0 -0
- {indico_cli-0.4.1 → indico_cli-0.4.3}/pyproject.toml +0 -0
- {indico_cli-0.4.1 → indico_cli-0.4.3}/tests/__init__.py +0 -0
- {indico_cli-0.4.1 → indico_cli-0.4.3}/tests/test_error_messages.py +0 -0
- {indico_cli-0.4.1 → indico_cli-0.4.3}/tests/test_format_search_result.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: indico-cli
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.3
|
|
4
4
|
Summary: CLI tool for interacting with Indico event management systems
|
|
5
5
|
Project-URL: Repository, https://gitlab.cern.ch/cern-agent-skills/indico-cli
|
|
6
6
|
License: MIT
|
|
@@ -60,6 +60,9 @@ API tokens can be generated at `<your-indico-url>/user/preferences/api`. Require
|
|
|
60
60
|
# Full-text search across all content types
|
|
61
61
|
indico-cli search-by-term --term "machine learning"
|
|
62
62
|
|
|
63
|
+
# Full-text search with date range
|
|
64
|
+
indico-cli search-by-term --term "Smith" --type contribution --from-date 2025-01-01 --to-date 2025-03-31
|
|
65
|
+
|
|
63
66
|
# Search events in a category
|
|
64
67
|
indico-cli search-events --category-id 4648 --from-date 2025-01-01
|
|
65
68
|
|
|
@@ -90,6 +93,12 @@ indico-cli files --event-id 137346 --no-download
|
|
|
90
93
|
indico-cli download --url "https://indico.cern.ch/event/.../file.pdf"
|
|
91
94
|
```
|
|
92
95
|
|
|
96
|
+
The `files` command covers every file source attached to an event:
|
|
97
|
+
|
|
98
|
+
- **Event materials** — legacy `event.material[]` entries.
|
|
99
|
+
- **Event folder attachments** — generic files uploaded directly to the event page (not under any contribution). Typical for short meetings like the LHC morning meeting, where a single slide deck is attached to the event itself.
|
|
100
|
+
- **Contribution attachments** — files attached to individual contributions/talks.
|
|
101
|
+
|
|
93
102
|
### Create Events
|
|
94
103
|
|
|
95
104
|
```bash
|
|
@@ -105,7 +114,25 @@ indico-cli create-event-with-agenda --title "Workshop" --category-id 4648 \
|
|
|
105
114
|
|
|
106
115
|
### All Commands
|
|
107
116
|
|
|
108
|
-
|
|
117
|
+
| Command | Description |
|
|
118
|
+
|---------|-------------|
|
|
119
|
+
| `configure` | Save Indico base URL and API token, and verify the connection. |
|
|
120
|
+
| `user-info` | Show the current user's name, email, and admin status. |
|
|
121
|
+
| `search-events` | List events in a category, with optional date range and public-only filter. |
|
|
122
|
+
| `search-by-term` | Full-text search across categories, events, contributions, attachments, and notes. |
|
|
123
|
+
| `search-categories` | Browse sub-categories of a given category. |
|
|
124
|
+
| `event-details` | Show event metadata, optionally with contributions and sessions. |
|
|
125
|
+
| `contributions` | List contributions (and optionally subcontributions) of an event. |
|
|
126
|
+
| `files` | List and download all files attached to an event — event-level materials, event-page folder attachments, and contribution attachments. |
|
|
127
|
+
| `download` | Download a single attachment by its URL. |
|
|
128
|
+
| `create-event` | Create a new event (lecture, meeting, or conference). |
|
|
129
|
+
| `create-session` | Create a session inside an event. |
|
|
130
|
+
| `create-contribution` | Create a contribution inside an event, optionally in a given session. |
|
|
131
|
+
| `add-timetable-entry` | Add a session block or contribution entry to the event timetable. |
|
|
132
|
+
| `delete-timetable-entry` | Remove an entry from the event timetable. |
|
|
133
|
+
| `create-event-with-agenda` | Create an event and populate its timetable from a JSON agenda file. |
|
|
134
|
+
|
|
135
|
+
Run `indico-cli --help` for the same list, or `indico-cli <command> --help` for command-specific options.
|
|
109
136
|
|
|
110
137
|
## Claude Code Skill
|
|
111
138
|
|
|
@@ -37,6 +37,9 @@ API tokens can be generated at `<your-indico-url>/user/preferences/api`. Require
|
|
|
37
37
|
# Full-text search across all content types
|
|
38
38
|
indico-cli search-by-term --term "machine learning"
|
|
39
39
|
|
|
40
|
+
# Full-text search with date range
|
|
41
|
+
indico-cli search-by-term --term "Smith" --type contribution --from-date 2025-01-01 --to-date 2025-03-31
|
|
42
|
+
|
|
40
43
|
# Search events in a category
|
|
41
44
|
indico-cli search-events --category-id 4648 --from-date 2025-01-01
|
|
42
45
|
|
|
@@ -67,6 +70,12 @@ indico-cli files --event-id 137346 --no-download
|
|
|
67
70
|
indico-cli download --url "https://indico.cern.ch/event/.../file.pdf"
|
|
68
71
|
```
|
|
69
72
|
|
|
73
|
+
The `files` command covers every file source attached to an event:
|
|
74
|
+
|
|
75
|
+
- **Event materials** — legacy `event.material[]` entries.
|
|
76
|
+
- **Event folder attachments** — generic files uploaded directly to the event page (not under any contribution). Typical for short meetings like the LHC morning meeting, where a single slide deck is attached to the event itself.
|
|
77
|
+
- **Contribution attachments** — files attached to individual contributions/talks.
|
|
78
|
+
|
|
70
79
|
### Create Events
|
|
71
80
|
|
|
72
81
|
```bash
|
|
@@ -82,7 +91,25 @@ indico-cli create-event-with-agenda --title "Workshop" --category-id 4648 \
|
|
|
82
91
|
|
|
83
92
|
### All Commands
|
|
84
93
|
|
|
85
|
-
|
|
94
|
+
| Command | Description |
|
|
95
|
+
|---------|-------------|
|
|
96
|
+
| `configure` | Save Indico base URL and API token, and verify the connection. |
|
|
97
|
+
| `user-info` | Show the current user's name, email, and admin status. |
|
|
98
|
+
| `search-events` | List events in a category, with optional date range and public-only filter. |
|
|
99
|
+
| `search-by-term` | Full-text search across categories, events, contributions, attachments, and notes. |
|
|
100
|
+
| `search-categories` | Browse sub-categories of a given category. |
|
|
101
|
+
| `event-details` | Show event metadata, optionally with contributions and sessions. |
|
|
102
|
+
| `contributions` | List contributions (and optionally subcontributions) of an event. |
|
|
103
|
+
| `files` | List and download all files attached to an event — event-level materials, event-page folder attachments, and contribution attachments. |
|
|
104
|
+
| `download` | Download a single attachment by its URL. |
|
|
105
|
+
| `create-event` | Create a new event (lecture, meeting, or conference). |
|
|
106
|
+
| `create-session` | Create a session inside an event. |
|
|
107
|
+
| `create-contribution` | Create a contribution inside an event, optionally in a given session. |
|
|
108
|
+
| `add-timetable-entry` | Add a session block or contribution entry to the event timetable. |
|
|
109
|
+
| `delete-timetable-entry` | Remove an entry from the event timetable. |
|
|
110
|
+
| `create-event-with-agenda` | Create an event and populate its timetable from a JSON agenda file. |
|
|
111
|
+
|
|
112
|
+
Run `indico-cli --help` for the same list, or `indico-cli <command> --help` for command-specific options.
|
|
86
113
|
|
|
87
114
|
## Claude Code Skill
|
|
88
115
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# file generated by vcs-versioning
|
|
2
|
+
# don't change, don't track in version control
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
__all__ = [
|
|
6
|
+
"__version__",
|
|
7
|
+
"__version_tuple__",
|
|
8
|
+
"version",
|
|
9
|
+
"version_tuple",
|
|
10
|
+
"__commit_id__",
|
|
11
|
+
"commit_id",
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
version: str
|
|
15
|
+
__version__: str
|
|
16
|
+
__version_tuple__: tuple[int | str, ...]
|
|
17
|
+
version_tuple: tuple[int | str, ...]
|
|
18
|
+
commit_id: str | None
|
|
19
|
+
__commit_id__: str | None
|
|
20
|
+
|
|
21
|
+
__version__ = version = '0.4.3'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 4, 3)
|
|
23
|
+
|
|
24
|
+
__commit_id__ = commit_id = None
|
|
@@ -128,11 +128,13 @@ def search_events(ctx, category_id, from_date, to_date, limit, only_public):
|
|
|
128
128
|
@click.option("--type", "type_filter", default=None,
|
|
129
129
|
type=click.Choice(["category", "event", "contribution", "subcontribution", "attachment", "event_note"]),
|
|
130
130
|
help="Filter to a specific content type")
|
|
131
|
+
@click.option("--from-date", default=None, help="Start date filter (YYYY-MM-DD)")
|
|
132
|
+
@click.option("--to-date", default=None, help="End date filter (YYYY-MM-DD)")
|
|
131
133
|
@click.pass_context
|
|
132
|
-
def search_by_term(ctx, term, limit, type_filter):
|
|
134
|
+
def search_by_term(ctx, term, limit, type_filter, from_date, to_date):
|
|
133
135
|
"""Search for events by keyword/term."""
|
|
134
136
|
client = get_client(ctx.obj["base_url"], ctx.obj["token"])
|
|
135
|
-
result = run_async(client.search_events_by_term(term, limit, type_filter))
|
|
137
|
+
result = run_async(client.search_events_by_term(term, limit, type_filter, from_date, to_date))
|
|
136
138
|
click.echo(result)
|
|
137
139
|
|
|
138
140
|
|