# streamlit-aggrid
[![Open in Streamlit][share_badge]][share_link] [![GitHub][github_badge]][github_link] [![PyPI][pypi_badge]][pypi_link]
---
**Note**
Folks, I wish I had more time to work on this.. But, I'm still bound to those 24 hours a day have, and vey busy days.
I'm writing this on my free time, most features I'm adding are what I found necessary to implement on the projects I'm
using Streamlit Ag-Grid. I check the issues here and the PR once in a while, and try to focus on what's more requested.
I'm working on documentation and some examples too. [Check Here](https://staggrid-examples.streamlit.app/)
> "I'm just a Latin American young man
> No money in the bank no important relatives
> And coming from the countryside" [♫](https://www.youtube.com/watch?v=2HlpJaatYH4)
---
**AgGrid** is an awesome grid for web frontend. More information in [https://www.ag-grid.com/](https://www.ag-grid.com/). Consider purchasing a license from Ag-Grid if you are going to use enterprise features!
Comment on [discuss.streamlit.io](https://discuss.streamlit.io/t/ag-grid-component-with-input-support/) If you like it or [Buy me a beer 🍺!](https://www.paypal.com/donate?hosted_button_id=8HGLA4JZBYFPQ)
<br>
Live example [on Streamlit Cloud](https://pablocfonseca-streamlit-aggrid-examples-example-jyosi3.streamlitapp.com/). Some basic documentation is available: https://streamlit-aggrid.readthedocs.io
# Install
```
pip install streamlit-aggrid
```
# Quick Use
Create an example.py file
```python
from st_aggrid import AgGrid
import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/fivethirtyeight/data/master/airline-safety/airline-safety.csv')
AgGrid(df)
```
Run :
```shell
streamlit run example.py
```
# Demo
Grid data is sent back to streamlit and can be reused in other components. In the example below a chart is updated on grid edition.
![example image](https://github.com/PablocFonseca/streamlit-aggrid/raw/main/group_selection_example.gif)
# Development Notes
Version 0.3.4
- Added quickfilter
- Added Excel Export Module
- Bugfixes (an probably introduced new ones :/)
- Code cleanup
- Updated Ag-Grit to 29.1.0 (including ag-grid-react) which will cause direct HTML returns to stop rendering ([#198](https://github.com/PablocFonseca/streamlit-aggrid/issues/198)). Use a [cellRenderer](https://www.ag-grid.com/javascript-data-grid/component-cell-renderer/) instead.
Version 0.3.3
- Fixes [#132](https://github.com/PablocFonseca/streamlit-aggrid/issues/132)
- Fixes [#131](https://github.com/PablocFonseca/streamlit-aggrid/issues/131) and [#130](https://github.com/PablocFonseca/streamlit-aggrid/issues/130)
- Added Sparklines [#118](https://github.com/PablocFonseca/streamlit-aggrid/issues/118)
- Changed Grid Return to support [#117](https://github.com/PablocFonseca/streamlit-aggrid/issues/117)
- Rebuilt streamlit theme
Version 0.3.0
- Merged some PR (Thanks everybody!) check PR at github!
- Added class parsing in React Side, so more advanced CellRenderers can be used. (Thanks [kjakaitis](https://github.com/kjakaitis))
- Added gridOptionsBuilder.configure_first_column_as_index() to, well, style the first columns as an index (MultiIndex to come!)
- Improved serialization performance by using simpler pandas to_json method (PR #62, #85)
- Added option to render plain json instead of pd.dataframes
- gridOptions may be loaded from file paths or strings
- gridReturn is now a @dataclass with rowIndex added to selected_rows, (previous version returned only the selected data, now you can know which row was selected)
- Changed GridReturnMode behavior. Now update_on accepts a list of gridEvents that will trigger a streamlit refresh, making it possible to subscribe to any [gridEvent](https://www.ag-grid.com/javascript-data-grid/grid-events/).
- Removed dot-env and simplejson dependencies.
- Other smaller fixes and typos corrections.
Version 0.2.3
- small fixes
- Merged PR #44 and #25 (thanks [msabramo](https://github.com/msabramo) and [ljnsn](https://github.com/ljnsn))
- Merged PR #58 - allow nesting dataframes. Included an example in exampes folder.
Version 0.2.2
- Updated frontend dependencies to latest version
- Corrected text color for better viz when using streamlit theme (thanks [jasonpmcculloch](https://github.com/jasonpmcculloch))
- Switched default theme to Balham Light ('light'), if you want to use streamlit theme set `theme='streamlit'` on agGrid call
Version 0.2.0
- Support Themes
- Incorporated Pull Requests with fixes and pre-select rows (Thanks [randomseed42](https://github.com/randomseed42) and [msabramo](https://github.com/msabramo))
- You can use strings instead of importing GridUpdateMode and DataReturnMode enumerators
- it works fine with st.forms!
- new theme example in example folder
Version 0.1.9
- Small fixes
- Organized examples folder
Version 0.1.8
- Fixes a bug that breaks the grid when NaN or Inf values are present in the data
Version 0.1.7
- Fixes a bug that happened when converting data back from the grid with only one row
- Added license_key parameter on AgGrid call.
Version 0.1.6
- Fixes issue [#3](https://github.com/PablocFonseca/streamlit-aggrid/issues/3)
- Adds support for timedelta columns check [example][share_link]
Version 0.1.5
- small bug fixes
- there is an option to avoid grid re-initialization on app update (check fixed_key_example.py on examples folder or [here](https://share.streamlit.io/pablocfonseca/streamlit-aggrid/main/examples/fixed_key_example.py))
Version 0.1.3
- Fixed bug where cell was blank after edition.
- Added enable_enterprise_modules argument to AgGrid call for enabling/disabling [enterprise features](https://www.ag-grid.com/documentation/javascript/licensing/)
- It is now possible to inject js functions on gridOptions. Enabling advanced customizations such as conditional formatting (check 4<sup>th</sup> column on the [example](share_link))
Version 0.1.2
- added customCurrencyFormat as column type
Version 0.1.0:
- I worked a little bit more on making the example app functional.
- Couple configuration options for update mode (How frontend updates streamlit) and for data returns (grid should return data filtered? Sorted?)
- Some basic level of row selection
- Added some docstrings specially on gridOptionsBuilder methods
- Lacks performance for production. JS Client code is slow...
[share_badge]: https://static.streamlit.io/badges/streamlit_badge_black_white.svg
[share_link]: https://share.streamlit.io/pablocfonseca/streamlit-aggrid/main/examples/example.py
[github_badge]: https://badgen.net/badge/icon/GitHub?icon=github&color=black&label
[github_link]: https://github.com/PablocFonseca/streamlit-aggrid
[pypi_badge]: https://badgen.net/pypi/v/streamlit-aggrid?icon=pypi&color=black&label?
[pypi_link]: https://www.pypi.org/project/streamlit-aggrid/
Raw data
{
"_id": null,
"home_page": "https://github.com/PablocFonseca/streamlit-aggrid",
"name": "streamlit-aggrid-download",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "",
"author": "Pablo Fonseca",
"author_email": "pablo.fonseca+pip@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/8c/2a/7b810d7623d684f129fe87db2147eb538eb002a1b2232ed600fd7337e4ee/streamlit-aggrid-download-0.2.1.tar.gz",
"platform": null,
"description": "# streamlit-aggrid\n\n[![Open in Streamlit][share_badge]][share_link] [![GitHub][github_badge]][github_link] [![PyPI][pypi_badge]][pypi_link]\n\n---\n\n**Note**\n\nFolks, I wish I had more time to work on this.. But, I'm still bound to those 24 hours a day have, and vey busy days.\nI'm writing this on my free time, most features I'm adding are what I found necessary to implement on the projects I'm\nusing Streamlit Ag-Grid. I check the issues here and the PR once in a while, and try to focus on what's more requested.\nI'm working on documentation and some examples too. [Check Here](https://staggrid-examples.streamlit.app/)\n\n> \"I'm just a Latin American young man \n> No money in the bank no important relatives \n> And coming from the countryside\" [\u266b](https://www.youtube.com/watch?v=2HlpJaatYH4)\n\n---\n\n**AgGrid** is an awesome grid for web frontend. More information in [https://www.ag-grid.com/](https://www.ag-grid.com/). Consider purchasing a license from Ag-Grid if you are going to use enterprise features!\n\nComment on [discuss.streamlit.io](https://discuss.streamlit.io/t/ag-grid-component-with-input-support/) If you like it or [Buy me a beer \ud83c\udf7a!](https://www.paypal.com/donate?hosted_button_id=8HGLA4JZBYFPQ)\n\n<br>\nLive example [on Streamlit Cloud](https://pablocfonseca-streamlit-aggrid-examples-example-jyosi3.streamlitapp.com/). Some basic documentation is available: https://streamlit-aggrid.readthedocs.io\n\n# Install\n\n```\npip install streamlit-aggrid\n\n```\n\n# Quick Use\n\nCreate an example.py file\n\n```python\nfrom st_aggrid import AgGrid\nimport pandas as pd\n\ndf = pd.read_csv('https://raw.githubusercontent.com/fivethirtyeight/data/master/airline-safety/airline-safety.csv')\nAgGrid(df)\n```\n\nRun :\n\n```shell\nstreamlit run example.py\n```\n\n# Demo\n\nGrid data is sent back to streamlit and can be reused in other components. In the example below a chart is updated on grid edition.\n\n![example image](https://github.com/PablocFonseca/streamlit-aggrid/raw/main/group_selection_example.gif)\n\n# Development Notes\n\nVersion 0.3.4\n\n- Added quickfilter\n- Added Excel Export Module\n- Bugfixes (an probably introduced new ones :/)\n- Code cleanup\n- Updated Ag-Grit to 29.1.0 (including ag-grid-react) which will cause direct HTML returns to stop rendering ([#198](https://github.com/PablocFonseca/streamlit-aggrid/issues/198)). Use a [cellRenderer](https://www.ag-grid.com/javascript-data-grid/component-cell-renderer/) instead.\n\nVersion 0.3.3\n\n- Fixes [#132](https://github.com/PablocFonseca/streamlit-aggrid/issues/132)\n- Fixes [#131](https://github.com/PablocFonseca/streamlit-aggrid/issues/131) and [#130](https://github.com/PablocFonseca/streamlit-aggrid/issues/130)\n- Added Sparklines [#118](https://github.com/PablocFonseca/streamlit-aggrid/issues/118)\n- Changed Grid Return to support [#117](https://github.com/PablocFonseca/streamlit-aggrid/issues/117)\n- Rebuilt streamlit theme\n\nVersion 0.3.0\n\n- Merged some PR (Thanks everybody!) check PR at github!\n- Added class parsing in React Side, so more advanced CellRenderers can be used. (Thanks [kjakaitis](https://github.com/kjakaitis))\n- Added gridOptionsBuilder.configure_first_column_as_index() to, well, style the first columns as an index (MultiIndex to come!)\n- Improved serialization performance by using simpler pandas to_json method (PR #62, #85)\n- Added option to render plain json instead of pd.dataframes\n- gridOptions may be loaded from file paths or strings\n- gridReturn is now a @dataclass with rowIndex added to selected_rows, (previous version returned only the selected data, now you can know which row was selected)\n- Changed GridReturnMode behavior. Now update_on accepts a list of gridEvents that will trigger a streamlit refresh, making it possible to subscribe to any [gridEvent](https://www.ag-grid.com/javascript-data-grid/grid-events/).\n- Removed dot-env and simplejson dependencies.\n- Other smaller fixes and typos corrections.\n\nVersion 0.2.3\n\n- small fixes\n- Merged PR #44 and #25 (thanks [msabramo](https://github.com/msabramo) and [ljnsn](https://github.com/ljnsn))\n- Merged PR #58 - allow nesting dataframes. Included an example in exampes folder.\n\nVersion 0.2.2\n\n- Updated frontend dependencies to latest version\n- Corrected text color for better viz when using streamlit theme (thanks [jasonpmcculloch](https://github.com/jasonpmcculloch))\n- Switched default theme to Balham Light ('light'), if you want to use streamlit theme set `theme='streamlit'` on agGrid call\n\nVersion 0.2.0\n\n- Support Themes\n- Incorporated Pull Requests with fixes and pre-select rows (Thanks [randomseed42](https://github.com/randomseed42) and [msabramo](https://github.com/msabramo))\n- You can use strings instead of importing GridUpdateMode and DataReturnMode enumerators\n- it works fine with st.forms!\n- new theme example in example folder\n\nVersion 0.1.9\n\n- Small fixes\n- Organized examples folder\n\nVersion 0.1.8\n\n- Fixes a bug that breaks the grid when NaN or Inf values are present in the data\n\nVersion 0.1.7\n\n- Fixes a bug that happened when converting data back from the grid with only one row\n- Added license_key parameter on AgGrid call.\n\nVersion 0.1.6\n\n- Fixes issue [#3](https://github.com/PablocFonseca/streamlit-aggrid/issues/3)\n- Adds support for timedelta columns check [example][share_link]\n\nVersion 0.1.5\n\n- small bug fixes\n- there is an option to avoid grid re-initialization on app update (check fixed_key_example.py on examples folder or [here](https://share.streamlit.io/pablocfonseca/streamlit-aggrid/main/examples/fixed_key_example.py))\n\nVersion 0.1.3\n\n- Fixed bug where cell was blank after edition.\n- Added enable_enterprise_modules argument to AgGrid call for enabling/disabling [enterprise features](https://www.ag-grid.com/documentation/javascript/licensing/)\n- It is now possible to inject js functions on gridOptions. Enabling advanced customizations such as conditional formatting (check 4<sup>th</sup> column on the [example](share_link))\n\nVersion 0.1.2\n\n- added customCurrencyFormat as column type\n\nVersion 0.1.0:\n\n- I worked a little bit more on making the example app functional.\n- Couple configuration options for update mode (How frontend updates streamlit) and for data returns (grid should return data filtered? Sorted?)\n- Some basic level of row selection\n- Added some docstrings specially on gridOptionsBuilder methods\n- Lacks performance for production. JS Client code is slow...\n\n[share_badge]: https://static.streamlit.io/badges/streamlit_badge_black_white.svg\n[share_link]: https://share.streamlit.io/pablocfonseca/streamlit-aggrid/main/examples/example.py\n[github_badge]: https://badgen.net/badge/icon/GitHub?icon=github&color=black&label\n[github_link]: https://github.com/PablocFonseca/streamlit-aggrid\n[pypi_badge]: https://badgen.net/pypi/v/streamlit-aggrid?icon=pypi&color=black&label?\n[pypi_link]: https://www.pypi.org/project/streamlit-aggrid/\n",
"bugtrack_url": null,
"license": "",
"summary": "Streamlit component implementation of ag-grid",
"version": "0.2.1",
"project_urls": {
"Homepage": "https://github.com/PablocFonseca/streamlit-aggrid"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a7b464ea9089b88c070aa24d3711acda4724e7b37011c07b5571f0186c00655f",
"md5": "baa90b411b3f60fd95ba162b626b194b",
"sha256": "921bf2ee1c570f3a54e72f4f30725569844b4a9ad5e862eff43c4711c5ac3908"
},
"downloads": -1,
"filename": "streamlit_aggrid_download-0.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "baa90b411b3f60fd95ba162b626b194b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 3456814,
"upload_time": "2023-06-04T15:56:22",
"upload_time_iso_8601": "2023-06-04T15:56:22.414760Z",
"url": "https://files.pythonhosted.org/packages/a7/b4/64ea9089b88c070aa24d3711acda4724e7b37011c07b5571f0186c00655f/streamlit_aggrid_download-0.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8c2a7b810d7623d684f129fe87db2147eb538eb002a1b2232ed600fd7337e4ee",
"md5": "ce2d983ab46d610ee93b77b6e1ca2741",
"sha256": "666d966e955b7ac82673648be4bbfbdcef1fdee95ee5dcf69337018701bb74e3"
},
"downloads": -1,
"filename": "streamlit-aggrid-download-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "ce2d983ab46d610ee93b77b6e1ca2741",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 3418104,
"upload_time": "2023-06-04T15:56:28",
"upload_time_iso_8601": "2023-06-04T15:56:28.942218Z",
"url": "https://files.pythonhosted.org/packages/8c/2a/7b810d7623d684f129fe87db2147eb538eb002a1b2232ed600fd7337e4ee/streamlit-aggrid-download-0.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-06-04 15:56:28",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "PablocFonseca",
"github_project": "streamlit-aggrid",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "streamlit-aggrid-download"
}