{"id":28569666,"url":"https://github.com/abilian/olapy-pyodide","last_synced_at":"2026-02-13T00:35:43.350Z","repository":{"id":145110832,"uuid":"312794815","full_name":"abilian/olapy-pyodide","owner":"abilian","description":null,"archived":false,"fork":false,"pushed_at":"2020-11-14T10:44:45.000Z","size":2795,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-10T04:58:08.537Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/abilian.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-11-14T10:34:33.000Z","updated_at":"2020-11-14T10:44:47.000Z","dependencies_parsed_at":"2023-04-16T07:15:02.107Z","dependency_job_id":null,"html_url":"https://github.com/abilian/olapy-pyodide","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/abilian/olapy-pyodide","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abilian%2Folapy-pyodide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abilian%2Folapy-pyodide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abilian%2Folapy-pyodide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abilian%2Folapy-pyodide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abilian","download_url":"https://codeload.github.com/abilian/olapy-pyodide/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abilian%2Folapy-pyodide/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29389069,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-13T00:02:39.825Z","status":"ssl_error","status_checked_at":"2026-02-13T00:00:20.807Z","response_time":55,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-10T17:15:24.810Z","updated_at":"2026-02-13T00:35:43.344Z","avatar_url":"https://github.com/abilian.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Olapy-Pyodide\n\nThe purpose of OlaPy-Pyodide package is to show you how to use [OlaPy](https://github.com/abilian/olapy) inside your web browser as library \n(not XMLA server), thus all computations happens in the browser, with direct access to Web API technologies like the DOM. \n\nSince there's no server side, Sharing a notebook become very easy as passing around a single HTML file.\n\nhow could this happens? well, thanks to [iodide](https://github.com/iodide-project/iodide) and \n[pyodide](https://github.com/iodide-project/pyodide) projects which feature Python running entirely in the browser, allowing portable and reproducible data science using Python without having to install anything.\n\n### [Online Demo](http://bulma.abilian.com:8000/olapy.html)\n\n\n![OlaPy-Pyodide](https://raw.githubusercontent.com/abilian/olapy-pyodide/main/docs/img/olapy-pyodide.gif)\n\n\nBuild OlaPy with Pyodide by yourself\n------------------------------------\n\nAfter building [pyodide project](https://github.com/iodide-project/pyodide)\n\ncopy the content of [under_packages](https://github.com/abilian/olapy/tree/master/pyodide/build_olapy_by_yourself/under_packages) and [under_build](https://github.com/abilian/olapy/tree/master/pyodide/build_olapy_by_yourself/under_build), under pyodide's build and packages folders\n\nand copy [server.py](https://github.com/abilian/olapy/blob/master/pyodide/build_olapy_by_yourself/server.py) file to pyodide's root folder\n\nnext, in pyodide project run:\n\n    cd packages\n    make\n\n\nfinally to test a demo, you should install gunicorn:\n\n    pip install gunicorn\n\n\n and then run the server from pyodide root folder with:\n\n    gunicorn -D -w 4 -b 0.0.0.0 -t 300 server:app\n\nand go to [http://localhost:8000/olapy.html](http://localhost:8000/olapy.html)\n\nAdd cubes\n---------\n\nYou can add new cubes under the pyodide build folder, for instance \n\n\u003ci\u003e{PYODIDE_ROOT_DIR}/build/olapy-data/cubes/{YOUR_CUBE_FOLDER}/{YOUR_FILES.csv}\u003c/i\u003e\n\nand them from iodide, you pass them to olapy as parameter:\n    \n~~~python\nimport pandas as pd\nimport pyodide\nfrom olapy.core.services.xmla_lib import get_response\n\n# get cube tables\ndataframes = {\n  'Facts' : pd.read_csv(pyodide.open_url(\"olapy-data/cubes/my_cube/Facts.csv\"),sep=';', encoding='utf8'),\n  'Table_name_as_you_want1':pd.read_csv(pyodide.open_url(\"olapy-data/cubes/my_cube/table1.csv\"),sep=';', encoding='utf8'),\n  'Table_name_as_you_want2':pd.read_csv(pyodide.open_url(\"olapy-data/cubes/my_cube/table2.csv\"),sep=';', encoding='utf8')\n}\n\n# discover request parameters\nxmla_request_params = {\n  'cube': 'sales',\n  'request_type': 'DISCOVER_PROPERTIES',\n  'properties': {},\n  'restrictions': {'PropertyName': 'ServerName'},\n  'mdx_query': None,\n}\n\nget_response(xmla_request_params=xmla_request_params, dataframes=dataframes, output='xmla')\n~~~\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabilian%2Folapy-pyodide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabilian%2Folapy-pyodide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabilian%2Folapy-pyodide/lists"}