stepping


Namestepping JSON
Version 0.0.3 PyPI version JSON
download
home_page
SummaryIncremental View Maintenance for Python backends
upload_time2023-10-14 11:20:36
maintainer
docs_urlNone
author
requires_python>=3.11
license
keywords ivm postgres sqlite
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # `stepping`

Based on the paper: [DBSP: Automatic Incremental View Maintenance for Rich Query Languages](https://github.com/vmware/database-stream-processor/blob/e6cdbb538bbce8adb90018ff75f8ae8251b3e206/doc/theory/main.pdf).

# [📚 Documentation 📚](https://stepping.site)

## Installation

```bash
pip install stepping
```

### Development installation

```bash
git clone git@github.com:leontrolski/stepping.git
python -m venv .env
source .env/bin/activate
pip install -e '.[dev]'
pytest
mypy src tests
```

## Nice-to-haves

- In `interleave_changes`, use indexed `ZSetPython` under the hood.
- Skip out the middle man with `Grouped` and just use an indexed `ZSet`? Does this lead to performance benefits in `st.group`?
- Instead of `create_tables=True` can we emit SQL and write it.
- Revisit `st.compile(...)`.
- Can `run.iteration` make nicer error messages?
- Python 3.12. Use built in `batched`. Can we use the new `Unpack` syntax for nicer action types?
- Look at 11.8 "Window aggregates"
- Replace `integrate_delay` with a nice transform. Similarly, transform shared delays.
- Decide whether to make `...SQL` classes protocols.
- Test arbitrary depth grouped nesting and joining in a grouped setting (Does this even make sense to do?).

# Uploading to Pypi

```bash
# bump version
python -m pip install build twine
python -m build
twine check dist/*
twine upload dist/*
```

# Deploy docs

```bash
flyctl launch
flyctl deploy
flyctl ips list -a stepping-docs
# set A record to @, IPv4
# set AAAA record to @, IPv6
flyctl certs create -a stepping-docs stepping.site

cd docs/doks
npm install
npm run start
npm run build
cd ..; flyctl deploy; cd -

cd docs
python ../scripts/md.py ../ $(find -L ../docs-md -name '**.md')
```

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "stepping",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": "Oliver Russell <ojhrussell@gmail.com>",
    "keywords": "IVM,postgres,sqlite",
    "author": "",
    "author_email": "Oliver Russell <ojhrussell@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/82/17/db8d852631883768cf731f48ef1c6290990ede3c44a9a20feac43477b71b/stepping-0.0.3.tar.gz",
    "platform": null,
    "description": "# `stepping`\n\nBased on the paper: [DBSP: Automatic Incremental View Maintenance for Rich Query Languages](https://github.com/vmware/database-stream-processor/blob/e6cdbb538bbce8adb90018ff75f8ae8251b3e206/doc/theory/main.pdf).\n\n# [\ud83d\udcda Documentation \ud83d\udcda](https://stepping.site)\n\n## Installation\n\n```bash\npip install stepping\n```\n\n### Development installation\n\n```bash\ngit clone git@github.com:leontrolski/stepping.git\npython -m venv .env\nsource .env/bin/activate\npip install -e '.[dev]'\npytest\nmypy src tests\n```\n\n## Nice-to-haves\n\n- In `interleave_changes`, use indexed `ZSetPython` under the hood.\n- Skip out the middle man with `Grouped` and just use an indexed `ZSet`? Does this lead to performance benefits in `st.group`?\n- Instead of `create_tables=True` can we emit SQL and write it.\n- Revisit `st.compile(...)`.\n- Can `run.iteration` make nicer error messages?\n- Python 3.12. Use built in `batched`. Can we use the new `Unpack` syntax for nicer action types?\n- Look at 11.8 \"Window aggregates\"\n- Replace `integrate_delay` with a nice transform. Similarly, transform shared delays.\n- Decide whether to make `...SQL` classes protocols.\n- Test arbitrary depth grouped nesting and joining in a grouped setting (Does this even make sense to do?).\n\n# Uploading to Pypi\n\n```bash\n# bump version\npython -m pip install build twine\npython -m build\ntwine check dist/*\ntwine upload dist/*\n```\n\n# Deploy docs\n\n```bash\nflyctl launch\nflyctl deploy\nflyctl ips list -a stepping-docs\n# set A record to @, IPv4\n# set AAAA record to @, IPv6\nflyctl certs create -a stepping-docs stepping.site\n\ncd docs/doks\nnpm install\nnpm run start\nnpm run build\ncd ..; flyctl deploy; cd -\n\ncd docs\npython ../scripts/md.py ../ $(find -L ../docs-md -name '**.md')\n```\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Incremental View Maintenance for Python backends",
    "version": "0.0.3",
    "project_urls": {
        "documentation": "https://stepping.site",
        "homepage": "https://stepping.site",
        "repository": "https://github.com/leontrolski/stepping.git"
    },
    "split_keywords": [
        "ivm",
        "postgres",
        "sqlite"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "43069e7d3d3c039937f9f1de549bf9ad42b8e2013d3d2af04246a01332930c77",
                "md5": "8a56a8f5957738576c9b9dacd89a6d4b",
                "sha256": "cc41932a392c4c7498b2793697185db3176fff8ded374f772e7a114ede30361b"
            },
            "downloads": -1,
            "filename": "stepping-0.0.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8a56a8f5957738576c9b9dacd89a6d4b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 49059,
            "upload_time": "2023-10-14T11:20:27",
            "upload_time_iso_8601": "2023-10-14T11:20:27.341937Z",
            "url": "https://files.pythonhosted.org/packages/43/06/9e7d3d3c039937f9f1de549bf9ad42b8e2013d3d2af04246a01332930c77/stepping-0.0.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8217db8d852631883768cf731f48ef1c6290990ede3c44a9a20feac43477b71b",
                "md5": "48fb2f43d98c71e82f106f5695a2ffec",
                "sha256": "cb0599da474a8a5aaa33660743ae9e7763110df8ab77d42ea8d96c66202fcd69"
            },
            "downloads": -1,
            "filename": "stepping-0.0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "48fb2f43d98c71e82f106f5695a2ffec",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 49558,
            "upload_time": "2023-10-14T11:20:36",
            "upload_time_iso_8601": "2023-10-14T11:20:36.239488Z",
            "url": "https://files.pythonhosted.org/packages/82/17/db8d852631883768cf731f48ef1c6290990ede3c44a9a20feac43477b71b/stepping-0.0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-14 11:20:36",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "leontrolski",
    "github_project": "stepping",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "stepping"
}
        
Elapsed time: 0.27085s