Metadata-Version: 2.5
Name: pyCEURmake
Version: 0.5.4
Dynamic: Summary
Project-URL: Home, https://github.com/WolfgangFahl/pyCEURmake
Project-URL: Documentation, https://wiki.bitplan.com/index.php/PyCEURmake
Project-URL: Source, https://github.com/WolfgangFahl/PyCEURmake
Author-email: Tim Holzheim <tim.holzheim@rwth-aachen.de>, Wolfgang Fahl <wf@bitplan.com>
Maintainer-email: Wolfgang Fahl <wf@bitplan.com>, Tim Holzheim <tim.holzheim@rwth-aachen.de>
License-Expression: Apache-2.0
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Requires-Dist: beautifulsoup4>=4.11.2
Requires-Dist: geograpy3>=0.3.0
Requires-Dist: lxml-html-clean
Requires-Dist: lxml>=5.4.0
Requires-Dist: neo4j
Requires-Dist: ngwidgets>=0.30.8
Requires-Dist: py-3rdparty-mediawiki>=0.18.1
Requires-Dist: py-ez-wikidata>=0.3.2
Requires-Dist: pybasemkit>=0.1.6
Requires-Dist: pylodentitymanager>=0.17.0
Requires-Dist: pylodstorage>=0.18.7
Requires-Dist: pyparsing>=3.0.9
Requires-Dist: requests
Requires-Dist: scholar-auth[nicegui]>=0.0.2
Requires-Dist: spacy
Requires-Dist: sqlmodel>=0.0.16
Requires-Dist: tabulate
Requires-Dist: tqdm
Requires-Dist: wdgrid>=0.3.0
Requires-Dist: xmltodict>=0.13.0
Provides-Extra: test
Requires-Dist: mypy; extra == 'test'
Requires-Dist: pytest; extra == 'test'
Requires-Dist: pytest-cov; extra == 'test'
Requires-Dist: ruff; extra == 'test'
Requires-Dist: tox; extra == 'test'
Description-Content-Type: text/markdown

# pyCEURmake

CEUR make python implementation for https://ceur-ws.org/

| | |
| :--- | :--- |
| **PyPi** | [![PyPI Status](https://img.shields.io/pypi/v/pyCEURmake.svg)](https://pypi.python.org/pypi/pyCEURmake/) [![License](https://img.shields.io/github/license/WolfgangFahl/pyCEURmake.svg)](https://www.apache.org/licenses/LICENSE-2.0) [![pypi](https://img.shields.io/pypi/pyversions/pyCEURmake)](https://pypi.org/project/pyCEURmake/) [![format](https://img.shields.io/pypi/format/pyCEURmake)](https://pypi.org/project/pyCEURmake/) [![downloads](https://img.shields.io/pypi/dd/pyCEURmake)](https://pypi.org/project/pyCEURmake/) |
| **GitHub** | [![Github Actions Build](https://github.com/WolfgangFahl/pyCEURmake/actions/workflows/build.yml/badge.svg)](https://github.com/WolfgangFahl/pyCEURmake/actions/workflows/build.yml) [![Release](https://img.shields.io/github/v/release/WolfgangFahl/pyCEURmake)](https://github.com/WolfgangFahl/pyCEURmake/releases) [![Contributors](https://img.shields.io/github/contributors/WolfgangFahl/pyCEURmake)](https://github.com/WolfgangFahl/pyCEURmake/graphs/contributors) [![Last Commit](https://img.shields.io/github/last-commit/WolfgangFahl/pyCEURmake)](https://github.com/WolfgangFahl/pyCEURmake/commits/) [![GitHub issues](https://img.shields.io/github/issues/WolfgangFahl/pyCEURmake.svg)](https://github.com/WolfgangFahl/pyCEURmake/issues) [![GitHub closed issues](https://img.shields.io/github/issues-closed/WolfgangFahl/pyCEURmake.svg)](https://github.com/WolfgangFahl/pyCEURmake/issues/?q=is%3Aissue+is%3Aclosed) |
| **Code** | [![style-black](https://img.shields.io/badge/%20style-black-000000.svg)](https://github.com/psf/black) [![imports-isort](https://img.shields.io/badge/%20imports-isort-%231674b1)](https://pycqa.github.io/isort/) [![Join the discussion at https://github.com/WolfgangFahl/pyCEURmake/discussions](https://img.shields.io/github/discussions/WolfgangFahl/pyCEURmake)](https://github.com/WolfgangFahl/pyCEURmake/discussions) |
| **Docs** | [![API Docs](https://img.shields.io/badge/API-Documentation-blue)](https://WolfgangFahl.github.io/pyCEURmake/) [![formatter-docformatter](https://img.shields.io/badge/%20formatter-docformatter-fedcba.svg)](https://github.com/PyCQA/docformatter) [![style-google](https://img.shields.io/badge/%20style-google-3666d6.svg)](https://google.github.io/styleguide/pyguide.html#s3.8-comments-and-docstrings) |
| **Cite** | [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.20034998.svg)](https://doi.org/10.5281/zenodo.20034998) |

## Cite as

If you use pyCEURmake in your research, please cite it via its Zenodo concept DOI
(which always resolves to the latest version):

> Fahl, W., Holzheim, T., & Ayan9801.
> *pyCEURmake — Python implementation for CEUR Workshop Proceedings.*
> Zenodo. https://doi.org/10.5281/zenodo.20034998

Machine-readable metadata is available in [`CITATION.cff`](./CITATION.cff);
GitHub's "Cite this repository" button and Zenodo pick it up automatically.
For a specific release, use the version DOI shown on the corresponding
[Zenodo record](https://doi.org/10.5281/zenodo.20034998).

## Docs and Tutorials
[Wiki](https://wiki.bitplan.com/index.php/PyCEURmake)

## Demos
[CEUR-Volume Browser at RWTH Aachen i5](http://cvb.wikidata.dbis.rwth-aachen.de/)
## Installation
```
pipx install pyCEURmake
```
## Usage
```
usage: ceur-ws [-h] [-a] [-d] [--debugLocalPath DEBUGLOCALPATH]
               [--debugPort DEBUGPORT] [--debugRemotePath DEBUGREMOTEPATH]
               [--debugServer DEBUGSERVER] [-f] [-q] [-v] [-V]
               [--apache APACHE] [-c] [-l] [-i INPUT] [-rol] [--host HOST]
               [--port PORT] [-s] [-dbu] [-nq] [-den DBLP_ENDPOINT_NAME]
               [--list] [-rc] [-uv] [-wen WIKIDATA_ENDPOINT_NAME] [-wdu]

CEUR-WS Volume browser

options:
  -h, --help            show this help message and exit
  -a, --about           show version info and open documentation
  -d, --debug           enable debug output
  --debugLocalPath DEBUGLOCALPATH
                        remote debug Server path mapping - localPath - path on
                        machine where python runs
  --debugPort DEBUGPORT
                        remote debug Port [default: 5678]
  --debugRemotePath DEBUGREMOTEPATH
                        remote debug Server path mapping - remotePath - path
                        on debug server
  --debugServer DEBUGSERVER
                        remote debug Server
  -f, --force           force overwrite or unsafe actions
  -q, --quiet           suppress all output
  -v, --verbose         increase output verbosity
  -V, --version         show program's version number and exit
  --apache APACHE       create an apache configuration file for the given
                        domain
  -c, --client          start client
  -l, --local           run with local file system access
  -i INPUT, --input INPUT
                        input file
  -rol, --render_on_load
                        render on load
  --host HOST           the host to serve / listen from (default: localhost)
  --port PORT           the port to serve from (default: 9998)
  -s, --serve           start webserver
  -dbu, --dblp_update   update dblp cache
  -nq, --namedqueries   generate named queries [default: False]
  -den DBLP_ENDPOINT_NAME, --dblp_endpoint_name DBLP_ENDPOINT_NAME
                        name of dblp endpoint to use dblp-qlever
  --list                list all volumes [default: False]
  -rc, --recreate       recreate caches e.g. volume table
  -uv, --update         update volumes by parsing index.html adding recently
                        published volumes
  -wen WIKIDATA_ENDPOINT_NAME, --wikidata_endpoint_name WIKIDATA_ENDPOINT_NAME
                        name of wikidata endpoint to use wikidata
  -wdu, --wikidata_update
                        update tables from wikidata
```

### List

List all volumes:

```bash
ceur-ws --list | tail
Vol-4193
Vol-4194
Vol-4195
Vol-4196
Vol-4197
Vol-4198
Vol-4199
Vol-4200
Vol-4201
Vol-4202
```

### Serve

Start the local CEUR-WS volume browser (default port 9998):

```bash
ceur-ws --serve
```

See also the public demo:
[CEUR-Volume Browser at RWTH Aachen i5](http://cvb.wikidata.dbis.rwth-aachen.de/)

### Version

Show the current version:

```bash
ceur-ws --version
```

## Model

![pyCEURmake dblp model](https://www.plantuml.com/plantuml/proxy?cache=no&src=https://raw.githubusercontent.com/WolfgangFahl/pyCEURmake/main/docs/model.puml&version=1)

Source: [`docs/model.puml`](./docs/model.puml)

## Wikidata Community Contributions

`ceur-wd-contributions` analyses community contributions to CEUR-WS
related items on Wikidata. It fetches revision histories for items in
the configured Wikidata classes and produces per-user statistics and
optional pie charts.

```
usage: ceur-wd-contributions [-h] [-a] [-d] [--debugLocalPath DEBUGLOCALPATH]
                             [--debugPort DEBUGPORT] [--debugRemotePath DEBUGREMOTEPATH]
                             [--debugServer DEBUGSERVER] [-f] [-q] [-v] [-V]
                             [--class CLASS_QIDS] [--config CONFIG] [--endpoint ENDPOINT]
                             [--format {markdown,latex,json}] [--threshold THRESHOLD]
                             [--plot DIR] [--progress] [--sample N]

CEUR-WS Wikidata community contribution analysis

options:
  -h, --help            show this help message and exit
  -a, --about           show version info and open documentation
  -d, --debug           enable debug output
  --debugLocalPath DEBUGLOCALPATH
                        remote debug Server path mapping - localPath - path on machine
                        where python runs
  --debugPort DEBUGPORT
                        remote debug Port [default: 5678]
  --debugRemotePath DEBUGREMOTEPATH
                        remote debug Server path mapping - remotePath - path on debug
                        server
  --debugServer DEBUGSERVER
                        remote debug Server
  -f, --force           force overwrite or unsafe actions
  -q, --quiet           suppress all output
  -v, --verbose         increase output verbosity
  -V, --version         show program's version number and exit
  --class CLASS_QIDS    restrict analysis to this Wikidata class QID (repeatable).
                        Default: all classes from config.
  --config CONFIG       path to a WdContributionsConfig YAML file (defaults to bundled
                        resource)
  --endpoint ENDPOINT   override SPARQL endpoint URL from config
  --format {markdown,latex,json}
                        output format for the statistics table [default: markdown]
  --threshold THRESHOLD
                        in plots, aggregate users below this percent of total into
                        'others' [default: 1.0]
  --plot DIR            also render community-contribution pie charts (PNG) into DIR
  --progress            show tqdm progress bars during revision fetch
  --sample N            cap analysis to N QIDs per class (useful for testing)
```

### Options explained

- `--class CLASS_QIDS`: restrict the analysis to one or more Wikidata
  class QIDs (repeatable). Defaults to all classes listed in the config.
- `--config CONFIG`: path to a `WdContributionsConfig` YAML file.
  Defaults to the bundled resource shipped with pyCEURmake.
- `--endpoint ENDPOINT`: override the SPARQL endpoint URL from the
  config (for example to target a private Wikidata mirror).
- `--format {markdown,latex,json}`: output format for the statistics
  table; defaults to `markdown`.
- `--threshold THRESHOLD`: in pie charts, aggregate users contributing
  less than this percent of the total into an `others` slice. Default
  `1.0`.
- `--plot DIR`: render community-contribution pie charts as PNG files
  into the given directory (in addition to the text table).
- `--progress`: show `tqdm` progress bars while fetching revisions.
- `--sample N`: cap the analysis to `N` QIDs per class, useful for
  quick test runs before a full analysis.

