๐Ÿ“ฝ Streamlit application powered by a PyScaffold project setup

Overview

Project generated with PyScaffold

streamlit-demo

Streamlit application powered by a PyScaffold project setup.

Work in progress: The idea of this repo is to demonstrate how to package a streamlit app using PyScaffold. Since streamlit currently doesn't support apps as proper Python packages, this example is still suboptimal. Following Github issue was created to improve the current situation.

The structure was created with:

putup --dsproject streamlit-demo -p git_overview \
      -d "Streamlit application powered by a PyScaffold project setup." \
      -u https://github.com/pyscaffold/streamlit-demo

then the actual code was taken from git-overview (MIT-licensed) and changed into a proper Python package layout.

The advantages over the original codebase are:

  1. wheel file for distribution can be easily build with tox -e build,
  2. unit tests can be easily added in the tests folder,
  3. extract-repo is now a shell command (available after installation) instead of a script repo.py,
  4. git_overview is a Python package that could be reused by other Python projects after installation,
  5. all the other advantages of a PyScaffold layout...

Installation & Running the dashboard

In order to set up the necessary environment:

  1. create and activate the environment streamlit-demo with the help of conda:
    conda env create -f environment.yml
    conda activate streamlit-demo
    or use environment.lock.yml to recreate an environment with pinned dependencies.

NOTE: The conda environment will have streamlit-demo installed in editable mode. Some changes, e.g. in setup.cfg, might require you to run pip install -e . again.

  1. run the dashboard with:

    streamlit run scripts/show_dashboard.py
  2. or (optionally) build a docker image and run it with:

    docker build -t local/streamlit-demo:latest .
    docker run -p 8501:8501 local/streamlit-demo:latest
  3. open the dashboard at http://localhost:8501.

Project Organization

โ”œโ”€โ”€ AUTHORS.md              <- List of developers and maintainers.
โ”œโ”€โ”€ CHANGELOG.md            <- Changelog to keep track of new features and fixes.
โ”œโ”€โ”€ CONTRIBUTING.md         <- Guidelines for contributing to this project.
โ”œโ”€โ”€ Dockerfile              <- Build a docker container with `docker build .`.
โ”œโ”€โ”€ LICENSE.txt             <- License as chosen on the command-line.
โ”œโ”€โ”€ README.md               <- The top-level README for developers.
โ”œโ”€โ”€ docs                    <- Directory for Sphinx documentation in rst or md.
โ”œโ”€โ”€ environment.yml         <- The conda environment file for reproducibility.
โ”œโ”€โ”€ pyproject.toml          <- Build configuration. Don't change! Use `pip install -e .`
โ”‚                              to install for development or to build `tox -e build`.
โ”œโ”€โ”€ scripts                 <- Entry-script `show_dashboard.py` for streamlit
โ”œโ”€โ”€ setup.cfg               <- Declarative configuration of your project.
โ”œโ”€โ”€ setup.py                <- [DEPRECATED] obsolete way of building and installation.
โ”œโ”€โ”€ src
โ”‚   โ””โ”€โ”€ git_overview        <- Actual Python package `git-overview` with the main functionality.
โ”‚       โ”œโ”€โ”€ __init__.py
โ”‚       โ”œโ”€โ”€ dashboard.py    <- Layout-function of the actual dashboard.
โ”‚       โ”œโ”€โ”€ repo.py         <- Functions to download repo data.
โ”‚       โ””โ”€โ”€ utils.py        <- Some dashboard-related helpers
โ”œโ”€โ”€ tests                   <- Unit tests which can be run with `pytest`.
โ”œโ”€โ”€ .coveragerc             <- Configuration for coverage reports of unit tests.
โ”œโ”€โ”€ .isort.cfg              <- Configuration for git hook that sorts imports.
โ””โ”€โ”€ .pre-commit-config.yaml <- Configuration of pre-commit git hooks.

This structure is in strong contrast to the original one:

โ”œโ”€โ”€ app
โ”‚   โ”œโ”€โ”€ dashboard.py        <- Dashboard entry-point
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ repo.py             <- Script to download repo data
โ”‚   โ””โ”€โ”€ utils.py            <- Some dashboard-related helpers
โ”œโ”€โ”€ Dockerfile
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ requirements.txt

Note

This project has been set up using PyScaffold 4.1.1.post1.dev28+g075b76f and the dsproject extension 0.6.1.post28+g91ab61a.

Owner
PyScaffold
Python project template generator with batteries included
PyScaffold
๋””ํ…์…˜ ์œ ํ‹ธ ๋ชจ์Œ

Object detection utils ์œ ํ‹ธ๋ชจ์Œ ์„ค๋ช… ๋งํฌ convert convert ๊ด€๋ จ์ฝ”๋“œ https://github.com/AI-infinyx/ob_utils/tree/main/convert crawl ๊ตฌ๊ธ€, ๋„ค์ด๋ฒ„, ๋น™ ๋“ฑ ํฌ๋กค๋ง ๊ด€๋ จ https://gith

codetest 41 Jan 22, 2021
Your missing PO formatter and linter

pofmt Your missing PO formatter and linter Features Wrap msgid and msgstr with a constant max width. Can act as a pre-commit hook. Display lint errors

Frost Ming 5 Mar 22, 2022
bamboo-engine ๆ˜ฏไธ€ไธช้€š็”จ็š„ๆต็จ‹ๅผ•ๆ“Ž๏ผŒไป–ๅฏไปฅ่งฃๆž๏ผŒๆ‰ง่กŒ๏ผŒ่ฐƒๅบฆ็”ฑ็”จๆˆทๅˆ›ๅปบ็š„ๆต็จ‹ไปปๅŠก๏ผŒๅนถๆไพ›ไบ†ๅฆ‚ๆš‚ๅœ๏ผŒๆ’ค้”€๏ผŒ่ทณ่ฟ‡๏ผŒๅผบๅˆถๅคฑ่ดฅ๏ผŒ้‡่ฏ•ๅ’Œ้‡ๅ…ฅ็ญ‰็ญ‰็ตๆดป็š„ๆŽงๅˆถ่ƒฝๅŠ›ๅ’Œๅนถ่กŒใ€ๅญๆต็จ‹็ญ‰่ฟ›้˜ถ็‰นๆ€ง๏ผŒๅนถๅฏ้€š่ฟ‡ๆฐดๅนณๆ‰ฉๅฑ•ๆฅ่ฟ›ไธ€ๆญฅๆๅ‡ไปปๅŠก็š„ๅนถๅ‘ๅค„็†่ƒฝๅŠ›ใ€‚

bamboo-engine ๆ˜ฏไธ€ไธช้€š็”จ็š„ๆต็จ‹ๅผ•ๆ“Ž๏ผŒไป–ๅฏไปฅ่งฃๆž๏ผŒๆ‰ง่กŒ๏ผŒ่ฐƒๅบฆ็”ฑ็”จๆˆทๅˆ›ๅปบ็š„ๆต็จ‹ไปปๅŠก๏ผŒๅนถๆไพ›ไบ†ๅฆ‚ๆš‚ๅœ๏ผŒๆ’ค้”€๏ผŒ่ทณ่ฟ‡๏ผŒๅผบๅˆถๅคฑ่ดฅ๏ผŒ้‡่ฏ•ๅ’Œ้‡ๅ…ฅ็ญ‰็ญ‰็ตๆดป็š„ๆŽงๅˆถ่ƒฝๅŠ›ๅ’Œๅนถ่กŒใ€ๅญๆต็จ‹็ญ‰่ฟ›้˜ถ็‰นๆ€ง๏ผŒๅนถๅฏ้€š่ฟ‡ๆฐดๅนณๆ‰ฉๅฑ•ๆฅ่ฟ›ไธ€ๆญฅๆๅ‡ไปปๅŠก็š„ๅนถๅ‘ๅค„็†่ƒฝๅŠ›ใ€‚ ๆ•ดไฝ“่ฎพ่ฎก Quick start 1. ๅฎ‰่ฃ…ไพ่ต– 2. ้กน็›ฎๅˆๅง‹

่…พ่ฎฏ่“้ฒธ 96 Dec 15, 2022
Python Excuse Generator

Excuse Generator Python Excuse Generator This project is an excuse generator that provides the user with an excuse as to why they weren't paying atten

Collin Sanders 5 Jul 07, 2022
DeDRM tools for ebooks

DeDRM_tools DeDRM tools for ebooks This is a fork of Apprentice Harper's version of the DeDRM tools. I've added some of the PRs that still haven't bee

2 Jan 10, 2022
Tenda D151 & D301 - Unauthenticated configuration download

Exploit Title: Tenda D151 & D301 - Unauthenticated configuration download (login included)

Ayoub 3 Jul 14, 2022
Automatic and platform-independent unpacker for Windows binaries based on emulation

_ _ __ _ __ _ | | | | / / (_) \ \ | | | | | |_ __ | | _ | | _ __ __ _ ___| | _____ _ __

514 Dec 21, 2022
Roblox Limited Sniper For Python

Info this is version 2.1 version 3 will support more options (install python: https://www.python.org) the program will buy any limited item with a pri

1 Dec 09, 2021
A Python tool to check ASS subtitles for common mistakes and errors.

A Python tool to check ASS subtitles for common mistakes and errors.

1 Dec 18, 2021
Streamlit apps done following data professor's course on YouTube

streamlit-twelve-apps Streamlit apps done following data professor's course on YouTube Espaรฑol Curso de apps de data science hecho por Data Professor

Federico Bravin 1 Jan 10, 2022
Construรงรฃo de um jogo Dominรณ na linguagem python com base em algoritmos personalizados.

Domino (projecto-python) Construรงรฃo de um jogo Dominรณ na linguaguem python com base em algoritmos personalizados e na: Monogra๏ฌa apresentada ao curso

Nuninha-GC 1 Jan 12, 2022
K2HASH Python library - NoSQL Key Value Store(KVS) library

k2hash_python Overview k2hash_python is an official python driver for k2hash. Install Firstly you must install the k2hash shared library: curl -o- htt

Yahoo! JAPAN 3 Oct 19, 2022
Just some mtk tool for exploitation, reading/writing flash and doing crazy stuff

Just some mtk tool for exploitation, reading/writing flash and doing crazy stuff. For linux, a patched kernel is needed (see Setup folder) (except for read/write flash). For windows, you need to inst

Bjoern Kerler 1.1k Dec 31, 2022
Installer, package manager, build wrapper and version manager for Piccolo

Piccl Installer, package manager, build wrapper and version manager for Piccolo

1 Dec 19, 2021
1cak - An Indonesian web that provide lot of fun.

An unofficial API of 1cak.com 1cak - An Indonesian web that provide lot of fun. Endpoint Lol - 10 Recent stored posts on database Example: https://on

Dicky Mulia Fiqri 5 Sep 27, 2022
A Gura parser implementation for Python

Gura parser This repository contains the implementation of a Gura format parser in Python. Installation pip install gura-parser Usage import gura gur

JWare Solutions 19 Jan 25, 2022
Automate the boilerplate while initializing your Python project

Rubric Automate the boilerplate while initializing your Python project Preface Rubric is an opinionated project initializer for Python. It assum

Redowan Delowar 23 Dec 16, 2022
Cylc: a workflow engine for cycling systems

Cylc: a workflow engine for cycling systems. Repository master branch: core meta-scheduler component of cylc-8 (in development); Repository 7.8.x branch: full cylc-7 system.

The Cylc Workflow Engine 205 Dec 20, 2022
Flask-built web application that simulates a time and cost calculator for charging Electric Vehicles.

ev_charging_calculator Flask-built web application that simulates a time and cost calculator for charging Electric Vehicles. The project aims to simul

1 Nov 03, 2021
Pequenos programas variados que estou praticando e implementando, leia o Read.me!

my-small-programs Pequenos programas variados que estou praticando e implementando! Arquivo: automacao Automacao de processos de rotina com cรณdigo Pyt

Lรฉia Rafaela 43 Nov 22, 2022