diff --git a/Readme.md b/Readme.md index 2d4c29d..213f2bf 100644 --- a/Readme.md +++ b/Readme.md @@ -39,8 +39,14 @@ Requires Python 3.10 or 3.11 (Note: Python 3.12 may have compatibility issues wi ```bash conda create -n owi pip python=3.10 pip install py4lexis --index-url https://opencode.it4i.eu/api/v4/projects/107/packages/pypi/simple -pip install owi --index-url https://opencode.it4i.eu/api/v4/projects/92/packages/pypi/simple -python -m owi.cli --help +pip install owi==0.2.0 --index-url https://opencode.it4i.eu/api/v4/projects/92/packages/pypi/simple +pip install duckdb +pip install ipython +owi --help +``` + +```python +owi duckdb BAdW-LRZ:2023-11-29#0/Access=public --files "*.parquet" ``` ### Install from Repository diff --git a/owi/cli.py b/owi/cli.py index 5184a21..f5cb27b 100644 --- a/owi/cli.py +++ b/owi/cli.py @@ -216,10 +216,12 @@ def remote(ctx, subcmd, args): print(f"Executing command: {subcmd}") print(f"With arguments: {args}") -cmds = [local, stats, ls, pull, events, clean, config, remote, duckdb] -for i in cmds: - cli.add_command(i) +def main(): + cmds = [local, stats, ls, pull, events, clean, config, remote, duckdb] + for i in cmds: + cli.add_command(i) + cli(obj={}) if __name__ == '__main__': - cli(obj={}) + main() \ No newline at end of file diff --git a/owi/core/commands.py b/owi/core/commands.py index f580c82..68af455 100644 --- a/owi/core/commands.py +++ b/owi/core/commands.py @@ -374,7 +374,7 @@ class DirectAccess(BaseCommand): def duckdb_shell(self, specifier, file_select): # Get files and datasets and user ok - self.console.print(f"Fetching filenames for {specifier} selectig files for {file_select}") + self.console.print(f"Fetching filenames for {specifier} selecting files for {file_select}") _datasets = self.owi.datasets.list_irods_datasets() import duckdb as d d.register_filesystem(self.owi.datasets.filesystem) diff --git a/owi/core/irods.py b/owi/core/irods.py index a64fa54..18f1413 100644 --- a/owi/core/irods.py +++ b/owi/core/irods.py @@ -30,3 +30,19 @@ class IRODSOWI(iRODS): def session(self): return self._iRODS__irods +""" +from py4lexis.session import LexisSession +session = LexisSession(in_cli=True) +import fsspec +import irods_fsspec +from py4lexis.lexis_irods import iRODS +irods = iRODS(session) +fs = fsspec.filesystem("irods", session=irods._iRODS__get_irods_session()) +fs.ls("/IT4ILexisV2/public/proj862c5962623246664c1fda27b7afb108") + +pq = fs.glob( '/IT4ILexisV2/public/proj862c5962623246664c1fda27b7afb108/f3ffccb4-dc63-11ee-a201-0242c0a87004/**/*.parquet') +pq = ["irods://"+f for f in pq] +import duckdb +duckdb.register_filesystem(fs) +duckdb.sql(f"SELECT count(*) from read_parquet({pq[0:2]})").df() +""" \ No newline at end of file