{"id":30112534,"url":"https://github.com/pgarrett-scripps/streamlit_notify","last_synced_at":"2026-04-06T06:01:40.323Z","repository":{"id":297528140,"uuid":"994948291","full_name":"pgarrett-scripps/Streamlit_Notify","owner":"pgarrett-scripps","description":"Queues and displays Streamlit Status Elements after rerun","archived":false,"fork":false,"pushed_at":"2025-06-27T00:20:47.000Z","size":4608,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-27T00:40:20.439Z","etag":null,"topics":["streamlit","streamlit-component","streamlit-components"],"latest_commit_sha":null,"homepage":"https://streamlit-notify.readthedocs.io/en/latest/usage.html","language":"Python","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/pgarrett-scripps.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELONG.md","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}},"created_at":"2025-06-02T18:22:42.000Z","updated_at":"2025-06-27T00:20:50.000Z","dependencies_parsed_at":"2025-06-06T00:40:22.740Z","dependency_job_id":null,"html_url":"https://github.com/pgarrett-scripps/Streamlit_Notify","commit_stats":null,"previous_names":["pgarrett-scripps/streamlit_notify"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/pgarrett-scripps/Streamlit_Notify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgarrett-scripps%2FStreamlit_Notify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgarrett-scripps%2FStreamlit_Notify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgarrett-scripps%2FStreamlit_Notify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgarrett-scripps%2FStreamlit_Notify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pgarrett-scripps","download_url":"https://codeload.github.com/pgarrett-scripps/Streamlit_Notify/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgarrett-scripps%2FStreamlit_Notify/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269688024,"owners_count":24459399,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-10T02:00:08.965Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["streamlit","streamlit-component","streamlit-components"],"created_at":"2025-08-10T06:47:22.883Z","updated_at":"2026-04-06T06:01:40.224Z","avatar_url":"https://github.com/pgarrett-scripps.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Streamlit-Notify\n\nA Streamlit component that provides status elements that persist across reruns.\n\nDemo App: https://st-notify.streamlit.app/\n\n![Demo](gif/demo.gif)\n\n## Installation\n\n```bash\npip install streamlit-notify\n```\n\n## Development\n\n```bash\npip install -r requirements-dev.txt\npre-commit install # now pre-commit will run automatically on git commit\n```\n\nIt is also possible to run pre-commit via: `pre-commit run --all-files`\n\n## Documentation\n\nFull documentation is available at [Read the Docs](https://streamlit-notify.readthedocs.io/).\n\nTo build the documentation locally:\n\n```bash\ncd docs\npip install -r requirements.txt\nmake html\n```\n\nThen open `docs/build/html/index.html` in your browser.\n\n## Supported Status Elements\n\n- `stn.toast`: Toast notifications\n- `stn.balloons`: Balloon animations\n- `stn.snow`: Snow animations\n- `stn.success`: Success messages\n- `stn.info`: Info messages\n- `stn.error`: Error messages\n- `stn.warning`: Warning messages\n- `stn.exception`: Exception messages\n\n## How It Works\n\nThis package wraps standard Streamlit status element to enable queueing. Notifications are stored in Streamlit's session state and displayed during the next rerun cycle.\n\n## Basic Usage\n\n```python\nimport streamlit as st\nimport streamlit_notify as stn\n\n# Display all queued notifications at the beginning of your app. This will also clear the list.\nstn.notify()\n\n# Add a notification that will be displayed on the next rerun\nif st.button(\"Show Toast\"):\n    stn.toast(\"This is a toast message\", icon=\"✅\")\n    st.rerun()\n\nif st.button(\"Show Balloons\"):\n    stn.balloons()\n    st.rerun()\n\nif st.button(\"Show Success Message\"):\n    stn.success(\"Operation successful!\")\n    st.rerun()\n```\n\n#### Priority Support\n\n```python\n# Higher priority notifications are displayed first\nstn.info(\"High priority message\", priority=10)\nstn.info(\"Low priority message\", priority=-5)\n```\n\n#### Passing User Data\n\n```python\n# Higher priority notifications are displayed first\nstn.info(\"High priority message\", data=\"Hello World\")\nstn.info(\"Low priority message\", data={'Hello': 'World'})\n```\n\n#### Getting all notifications\n\n```python\n# returns a dict mapping notification types to list of notifications\nnotifications = stn.get_notifications()\nerror_notifications = notifications['error']\ntoast_notifications = notifications['toast']\n\n# or you can get the notifications directly from the stn widget\nerror_notifications = stn.error.get_notifications()\n```\n\n#### Clearing notifications\n\n```python\n# clears all notifications\nstn.clear_notifications()\n\n# clears notifications of only a specific type\nstn.error.clear_notifications()\n```\n\n#### Checking if any notifications need to be shown\n\n```python\n# check if any notifications exist across all types\nstn.has_notifications()\n\n# check only specific type\nstn.error.has_notifications()\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpgarrett-scripps%2Fstreamlit_notify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpgarrett-scripps%2Fstreamlit_notify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpgarrett-scripps%2Fstreamlit_notify/lists"}