Metadata-Version: 2.4
Name: osw
Version: 2.0.0
Summary: Python toolset for data processing, queries, wikicode generation and page manipulation
Project-URL: Homepage, https://github.com/OpenSemanticLab/osw-python
Project-URL: Documentation, https://opensemanticlab.github.io/osw-python/
Project-URL: Source, https://github.com/OpenSemanticLab/osw-python
Project-URL: Changelog, https://github.com/OpenSemanticLab/osw-python/blob/main/CHANGELOG.md
Project-URL: Download, https://pypi.org/project/osw/#files
Author-email: OpenSemanticWorld <team@opensemantic.world>
License-Expression: AGPL-3.0-or-later
License-File: LICENSE.txt
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
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.14,>=3.10
Requires-Dist: backports-strenum; python_version < '3.11'
Requires-Dist: black
Requires-Dist: dask
Requires-Dist: datamodel-code-generator==0.51.0
Requires-Dist: httpx
Requires-Dist: isort
Requires-Dist: jsonpath-ng
Requires-Dist: mwclient>=0.11.0
Requires-Dist: numpy
Requires-Dist: oold>=0.15.0
Requires-Dist: opensemantic
Requires-Dist: opensemantic-base>=0.42.7
Requires-Dist: opensemantic-core>=0.57.4
Requires-Dist: pybars3-wheel
Requires-Dist: pydantic[email]>=2.12.0
Requires-Dist: pyld
Requires-Dist: pyyaml
Requires-Dist: rdflib
Requires-Dist: requests
Requires-Dist: sparqlwrapper
Requires-Dist: tqdm
Requires-Dist: typing-extensions
Provides-Extra: all
Requires-Dist: boto3; extra == 'all'
Requires-Dist: deepl; extra == 'all'
Requires-Dist: geopy; extra == 'all'
Requires-Dist: mwparserfromhell; extra == 'all'
Requires-Dist: openpyxl; extra == 'all'
Requires-Dist: psycopg2; extra == 'all'
Requires-Dist: pysimplegui; extra == 'all'
Requires-Dist: sqlalchemy; extra == 'all'
Provides-Extra: dataimport
Requires-Dist: deepl; extra == 'dataimport'
Requires-Dist: geopy; extra == 'dataimport'
Requires-Dist: openpyxl; extra == 'dataimport'
Provides-Extra: db
Requires-Dist: psycopg2; extra == 'db'
Requires-Dist: sqlalchemy; extra == 'db'
Provides-Extra: s3
Requires-Dist: boto3; extra == 's3'
Provides-Extra: tutorial
Requires-Dist: deepl; extra == 'tutorial'
Requires-Dist: geopy; extra == 'tutorial'
Requires-Dist: openpyxl; extra == 'tutorial'
Provides-Extra: ui
Requires-Dist: pysimplegui; extra == 'ui'
Provides-Extra: wikitext
Requires-Dist: mwparserfromhell; extra == 'wikitext'
Provides-Extra: workflow
Requires-Dist: anyio<4.7,>=4.4.0; extra == 'workflow'
Requires-Dist: prefect<3.0,>=2.20.25; extra == 'workflow'
Description-Content-Type: text/markdown

[![PyPI-Server](https://img.shields.io/pypi/v/osw.svg)](https://pypi.org/project/osw/)
[![DOI](https://zenodo.org/badge/458130867.svg)](https://zenodo.org/badge/latestdoi/458130867)
[![Codecov](https://codecov.io/gh/OpenSemanticLab/osw-python/graph/badge.svg)](https://codecov.io/gh/OpenSemanticLab/osw-python)
[![docs](https://img.shields.io/badge/docs-online-blue)](https://opensemanticlab.github.io/osw-python/)
![license](https://img.shields.io/github/license/OpenSemanticLab/osw-python.svg)

# osw

Python toolset for data processing, queries, wikicode generation and page
manipulation within [OpenSemanticLab](https://github.com/OpenSemanticLab).

Work with OpenSemanticLab instances the way you work with Python objects:
load pages as typed pydantic entities, query with semantic search, generate
models from the schemas stored in the wiki, and write changes back.

**Documentation: <https://opensemanticlab.github.io/osw-python/>**

## Installation

```bash
pip install osw
```

Optional extras (`osw[wikitext]`, `osw[DB]`, `osw[S3]`, `osw[dataimport]`,
`osw[UI]`, `osw[all]`) are described in the
[Get Started guide](https://opensemanticlab.github.io/osw-python/get-started/).

## Quickstart

```python
from osw.express import OswExpress

osw = OswExpress(domain="wiki-dev.open-semantic-lab.org")
instances = osw.site.semantic_search("[[Category:Item]]")
print(instances)
```

More runnable scripts live in [examples/](examples/), and the
[Basics tutorial](docs/tutorials/basics.ipynb) walks through the
OpenSemanticLab data model.

## Contributing

Contributions are welcome, see [CONTRIBUTING.md](CONTRIBUTING.md).
Development setup, checks and tests are one command each: `make install`,
`make check`, `make test`.

## Related projects

General features for object-oriented interaction with knowledge graphs live
in the standalone package [oold-python](https://github.com/OO-LD/oold-python).

## License

AGPL-3.0-or-later, see [LICENSE.txt](LICENSE.txt).
