{"id":13736898,"url":"https://github.com/Appsilon/py_shiny_semantic","last_synced_at":"2025-05-08T13:31:49.583Z","repository":{"id":77567361,"uuid":"577321746","full_name":"Appsilon/py_shiny_semantic","owner":"Appsilon","description":"Semantic UI made available in Shiny-for-Python","archived":false,"fork":false,"pushed_at":"2023-12-15T02:30:02.000Z","size":3116,"stargazers_count":11,"open_issues_count":5,"forks_count":0,"subscribers_count":15,"default_branch":"main","last_synced_at":"2025-05-07T21:04:16.275Z","etag":null,"topics":["appsilon","fomantic-ui","python","semantic-ui","shiny-for-python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Appsilon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-12-12T13:35:38.000Z","updated_at":"2025-04-17T22:06:44.000Z","dependencies_parsed_at":"2023-12-15T03:42:22.898Z","dependency_job_id":null,"html_url":"https://github.com/Appsilon/py_shiny_semantic","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Appsilon%2Fpy_shiny_semantic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Appsilon%2Fpy_shiny_semantic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Appsilon%2Fpy_shiny_semantic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Appsilon%2Fpy_shiny_semantic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Appsilon","download_url":"https://codeload.github.com/Appsilon/py_shiny_semantic/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253077323,"owners_count":21850300,"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","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":["appsilon","fomantic-ui","python","semantic-ui","shiny-for-python"],"created_at":"2024-08-03T03:01:30.905Z","updated_at":"2025-05-08T13:31:47.731Z","avatar_url":"https://github.com/Appsilon.png","language":"Python","funding_links":[],"categories":["Shiny for Python"],"sub_categories":["Python - UI Components"],"readme":"# Semantic UI in Shiny-for-Python\n\n![stability-alpha](https://img.shields.io/badge/stability-alpha-f4d03f.svg)\n\n_Create rich web applications in PyShiny using styles and components from Semantic UI._\n\n## Demo applications and examples\n\n- Semantic Components Showcase\n  - [Live Demo](https://connect.appsilon.com/py_shiny_semantic/)\n  - [Source Code](https://github.com/Appsilon/py_shiny_semantic_examples/tree/main/semantic-components)\n- T-Test Simulation Clone\n  - [Live Demo](https://connect.appsilon.com/py_shiny_ttest)\n  - [Source Code](https://github.com/Appsilon/py_shiny_semantic_examples/tree/main/semantic-ttest)\n\n## About the project\n\nThis is an early [Shiny-for-Python](https://shiny.rstudio.com/py/) implementation of [the official community fork of Semantic UI](https://fomantic-ui.com/).\n\nThe repository contains a python package `shiny_semantic` and a PyShiny application (found in `example` folder) that serves as a simple demo of the implemented components.\n\nThe application is deployed on RSConnect and can be found at https://connect.appsilon.com/py_shiny_semantic/.\n\n## About Fomantic UI\n\n[Fomantic UI](https://fomantic-ui.com/) is a well-maintained community fork of a more widely known and mature [Semantic UI](https://semantic-ui.com/). This project uses JS, CSS and icons from Fomantic UI while referring to the name of the original library.\n\nThe structure of `shiny_semantic` follows the one of Fomantic UI -- this way users may easily refer to corresponding sections in the original documentation to learn about possible classes, styles and behaviors of the components.\n\n## How to install\n\n`shiny_semantic` is available from the official [PyPI distribution](https://pypi.org/project/shiny-semantic), and can be installed using pip. Please remember, that it is considered to be best practice to install packages in isolated virtual environments (see the next section).\n\n```\npip install shiny_semantic\n```\n\nThis will install both `shiny` and `shiny_semantic` - it is enough to start creating a Shiny application in Python.\n\n## Development\n\nIn this project we used only those python tools that already come with a standard python distribution and should be immediately available to the developers. For package management we used `pip`, for virtual environment we used `venv`, and for unit tests we used `unittest`.\n\nPlease note, that some systems (e.g. macOS) have Python installed by default, and it may be accessible with `python3` rather than just `python`. As soon as you init and source a venv, you will be able to call python with just `python`.\n\nTo start development, run the following command:\n\n```shell\npython -m venv .venv # creates virtual environment\nsource .venv/bin/activate # activates virtual environment\npip install -e \".[dev]\n```\n\nThis project uses [pre-commit](https://pre-commit.com/) to ensure the quality of code style. Once the dependencies are restored, run the following command once:\n\n```shell\npre-commit install\n```\n\nTo run the app in the hot-reload mode (the app automatically reloads every time it detects changes in the python source code), run the following command:\n\n```\nshiny run --reload example\n```\n\n## How to update the package\n\nThis project leverages [bumpver](https://github.com/mbarkhau/bumpver) to handle package versioning. To make sure that `bumpver` works, run the following commands:\n\n```shell\npip install bumpver\nbumpver update --patch --dry --no-fetch\n```\n\nThis should provide the developer with a preview of changed lines across multiple files - where package version is mentioned. When local updates are fininshed, the developer might run:\n\n```shell\nbumpver update --patch # or --minor or --major, depending on the PR goal\n```\n\nThis command will change the abovementioned string versions, create a commit with \"bump version\" message, create a git tag and will push changes to the remote. Developers will find a new version under \"Releases\" section on the Github page.\n\n## How to build and publish the package\n\n```shell\npip install build twine\n\n# It is best to remove local dist folder, so that `twine` is not confused on which version to use\nrm -rf dist\n\npython -m build\ntwine check dist/*\n\n# Currently, the package is published by pavel.demin@appsilon.com\ntwine upload dist/*\n```\n\n## How to update the Fomantic components\n\nThe easiest way to replace the Fomantic assets with the new ones, is as follows:\n\n1. Navigate to https://www.jsdelivr.com/package/npm/fomantic-ui. This resource is recommended by the Fomantic team - it contains the latest version of the library files\n2. Download the entire folder as a _.tgz_ archive\n3. Unpack the archive\n4. Find _dist_ folder, grab the minimized versions of CSS and JS files and move them into _shiny_semantic/www/semantic/_\n5. In the same _dist_ folder, locate the _themes_ subfolder - open it\n6. Move the _default_ folder into _shiny_semantic/www/semantic/themes_ - this way Fomantic JS and CSS will be able to seamlessly pick up fonts and icons.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAppsilon%2Fpy_shiny_semantic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAppsilon%2Fpy_shiny_semantic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAppsilon%2Fpy_shiny_semantic/lists"}