Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@ jobs:
name: Publish to PyPI
needs: [validate, test-install, github-release]
runs-on: ubuntu-latest
environment: pypi
permissions:
id-token: write
steps:
Expand Down
1 change: 1 addition & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Timestamp: "2026-02-15 14:00:26 (ywatanabe)"
# File: ./.pre-commit-config.yaml
repos: []
# repos:
# - repo: local
# hooks:
Expand Down
12 changes: 6 additions & 6 deletions scripts/assets/workflow.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Timestamp: "2026-02-16 09:09:47 (ywatanabe)"
# Timestamp: "2026-02-16 12:40:23 (ywatanabe)"
# File: /home/ywatanabe/proj/scitex-python/scripts/assets/workflow.py


Expand Down Expand Up @@ -34,16 +34,16 @@ def _add_analysis_boxes(d, C, CT):
"Core Modules",
subtitle="Infrastructure of All Python Scripts in SciTeX",
content=[
"@scitex.session",
"scitex.plt",
"(figrecipe)",
"scitex.stats",
"scitex.io",
"scitex.config",
"scitex.logger",
"@scitex.session",
"scitex.template",
"scitex.repro",
"scitex.rng",
"scitex.plt",
"(figrecipe)",
"scitex.stats",
"scitex.template",
],
fill_color=CT["blue"],
border_color=C["blue"],
Expand Down
82 changes: 41 additions & 41 deletions scripts/assets/workflow_out/workflow.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"meta": {
"title": "",
"description": "",
"exported_at": "2026-02-16T10:44:22.100200"
"exported_at": "2026-02-16T12:40:50.253456"
},
"figure": {
"size_px": [
Expand Down Expand Up @@ -507,14 +507,14 @@
"id": "ax_00_text_08",
"axes_id": "ax_00",
"element_type": "text",
"label": "\u00b7 scitex.io",
"text": "\u00b7 scitex.io",
"label": "\u00b7 @scitex.session",
"text": "\u00b7 @scitex.session",
"geometry_px": {
"coord_space": "axes",
"bbox": {
"x0": 3119,
"x0": 3099,
"y0": 517,
"x1": 3166,
"x1": 3186,
"y1": 527
},
"anchor": {
Expand Down Expand Up @@ -548,14 +548,14 @@
"id": "ax_00_text_09",
"axes_id": "ax_00",
"element_type": "text",
"label": "\u00b7 scitex.config",
"text": "\u00b7 scitex.config",
"label": "\u00b7 scitex.plt",
"text": "\u00b7 scitex.plt",
"geometry_px": {
"coord_space": "axes",
"bbox": {
"x0": 3108,
"x0": 3117,
"y0": 534,
"x1": 3176,
"x1": 3167,
"y1": 544
},
"anchor": {
Expand Down Expand Up @@ -589,14 +589,14 @@
"id": "ax_00_text_10",
"axes_id": "ax_00",
"element_type": "text",
"label": "\u00b7 scitex.logger",
"text": "\u00b7 scitex.logger",
"label": "\u00b7 (figrecipe)",
"text": "\u00b7 (figrecipe)",
"geometry_px": {
"coord_space": "axes",
"bbox": {
"x0": 3108,
"x0": 3114,
"y0": 551,
"x1": 3177,
"x1": 3170,
"y1": 561
},
"anchor": {
Expand Down Expand Up @@ -630,14 +630,14 @@
"id": "ax_00_text_11",
"axes_id": "ax_00",
"element_type": "text",
"label": "\u00b7 @scitex.session",
"text": "\u00b7 @scitex.session",
"label": "\u00b7 scitex.stats",
"text": "\u00b7 scitex.stats",
"geometry_px": {
"coord_space": "axes",
"bbox": {
"x0": 3099,
"x0": 3111,
"y0": 567,
"x1": 3186,
"x1": 3173,
"y1": 577
},
"anchor": {
Expand Down Expand Up @@ -671,14 +671,14 @@
"id": "ax_00_text_12",
"axes_id": "ax_00",
"element_type": "text",
"label": "\u00b7 scitex.template",
"text": "\u00b7 scitex.template",
"label": "\u00b7 scitex.io",
"text": "\u00b7 scitex.io",
"geometry_px": {
"coord_space": "axes",
"bbox": {
"x0": 3102,
"x0": 3119,
"y0": 584,
"x1": 3183,
"x1": 3166,
"y1": 594
},
"anchor": {
Expand Down Expand Up @@ -712,14 +712,14 @@
"id": "ax_00_text_13",
"axes_id": "ax_00",
"element_type": "text",
"label": "\u00b7 scitex.repro",
"text": "\u00b7 scitex.repro",
"label": "\u00b7 scitex.config",
"text": "\u00b7 scitex.config",
"geometry_px": {
"coord_space": "axes",
"bbox": {
"x0": 3110,
"x0": 3108,
"y0": 601,
"x1": 3174,
"x1": 3176,
"y1": 611
},
"anchor": {
Expand Down Expand Up @@ -753,14 +753,14 @@
"id": "ax_00_text_14",
"axes_id": "ax_00",
"element_type": "text",
"label": "\u00b7 scitex.rng",
"text": "\u00b7 scitex.rng",
"label": "\u00b7 scitex.logger",
"text": "\u00b7 scitex.logger",
"geometry_px": {
"coord_space": "axes",
"bbox": {
"x0": 3115,
"x0": 3108,
"y0": 618,
"x1": 3169,
"x1": 3177,
"y1": 628
},
"anchor": {
Expand Down Expand Up @@ -794,14 +794,14 @@
"id": "ax_00_text_15",
"axes_id": "ax_00",
"element_type": "text",
"label": "\u00b7 scitex.plt",
"text": "\u00b7 scitex.plt",
"label": "\u00b7 scitex.repro",
"text": "\u00b7 scitex.repro",
"geometry_px": {
"coord_space": "axes",
"bbox": {
"x0": 3117,
"x0": 3110,
"y0": 634,
"x1": 3167,
"x1": 3174,
"y1": 644
},
"anchor": {
Expand Down Expand Up @@ -835,14 +835,14 @@
"id": "ax_00_text_16",
"axes_id": "ax_00",
"element_type": "text",
"label": "\u00b7 (figrecipe)",
"text": "\u00b7 (figrecipe)",
"label": "\u00b7 scitex.rng",
"text": "\u00b7 scitex.rng",
"geometry_px": {
"coord_space": "axes",
"bbox": {
"x0": 3114,
"x0": 3115,
"y0": 651,
"x1": 3170,
"x1": 3169,
"y1": 661
},
"anchor": {
Expand Down Expand Up @@ -876,14 +876,14 @@
"id": "ax_00_text_17",
"axes_id": "ax_00",
"element_type": "text",
"label": "\u00b7 scitex.stats",
"text": "\u00b7 scitex.stats",
"label": "\u00b7 scitex.template",
"text": "\u00b7 scitex.template",
"geometry_px": {
"coord_space": "axes",
"bbox": {
"x0": 3111,
"x0": 3102,
"y0": 668,
"x1": 3173,
"x1": 3183,
"y1": 678
},
"anchor": {
Expand Down
Binary file modified scripts/assets/workflow_out/workflow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 6 additions & 6 deletions scripts/assets/workflow_out/workflow.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
figrecipe: '1.0'
type: diagram
created: '2026-02-16T10:44:59.395331'
created: '2026-02-16T12:41:31.895253'
dpi: 200
diagram:
title: SciTeX Ecosystem
Expand Down Expand Up @@ -59,16 +59,16 @@ diagram:
title: Core Modules
subtitle: Infrastructure of All Python Scripts in SciTeX
content:
- '@scitex.session'
- scitex.plt
- (figrecipe)
- scitex.stats
- scitex.io
- scitex.config
- scitex.logger
- '@scitex.session'
- scitex.template
- scitex.repro
- scitex.rng
- scitex.plt
- (figrecipe)
- scitex.stats
- scitex.template
emphasis: normal
shape: rounded
fill_color: !!python/tuple
Expand Down
2 changes: 2 additions & 0 deletions src/scitex/cli/scholar/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@

from ._crossref_scitex import crossref_scitex
from ._fetch import fetch
from ._gui import gui
from ._jobs import jobs
from ._library import config, library
from ._openalex_scitex import openalex_scitex
Expand Down Expand Up @@ -260,6 +261,7 @@ def list_python_apis(ctx, verbose, max_depth, as_json):
scholar.add_command(crossref_scitex)
scholar.add_command(openalex_scitex)
scholar.add_command(fetch)
scholar.add_command(gui)
scholar.add_command(library)
scholar.add_command(config)
scholar.add_command(jobs)
Expand Down
45 changes: 45 additions & 0 deletions src/scitex/cli/scholar/_gui.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
"""CLI command for launching Scholar GUI."""

from __future__ import annotations

import click


@click.command()
@click.option("--port", type=int, default=5051, help="Port to serve on (default: 5051)")
@click.option("--host", default="127.0.0.1", help="Host to bind (default: 127.0.0.1)")
@click.option("--no-browser", is_flag=True, help="Don't open browser automatically")
@click.option("--db", type=click.Path(), default=None, help="CrossRef database path")
def gui(port, host, no_browser, db):
r"""Launch Scholar GUI in browser.

\b
Interactive web interface for:
- Citation graph visualization
- Paper library management
- Literature search
- Metadata enrichment

\b
Examples:
scitex scholar gui
scitex scholar gui --port 8080
scitex scholar gui --db /path/to/crossref.db
"""
try:
from flask import Flask as _ # noqa: F401
except ImportError:
click.secho("Flask is required: pip install flask", fg="red", err=True)
raise SystemExit(1)

from scitex.scholar.gui import launch

launch(
port=port,
host=host,
open_browser=not no_browser,
db_path=db,
)


# EOF
Loading
Loading