mirror of
https://github.com/Justuser3310/ss14_chemistry_site.git
synced 2025-01-19 01:08:48 +00:00
Сделано: определение частей, проверка что части одинаковы, распределение частей.
This commit is contained in:
parent
06944c9dcd
commit
3d3988fe64
70
site.py
70
site.py
@ -1,10 +1,5 @@
|
||||
import streamlit as st
|
||||
|
||||
df = {
|
||||
'first column': [1, 2, 3, 4],
|
||||
'second column': [10, 20, 30, 40]
|
||||
}
|
||||
|
||||
## LOAD DB ##
|
||||
|
||||
#{
|
||||
@ -24,29 +19,86 @@ df = {
|
||||
#
|
||||
# Список составных: ["Кислород", "Сахар", "Углерод"]
|
||||
|
||||
from db import *
|
||||
|
||||
db = read_db()
|
||||
els = list(db.keys())
|
||||
|
||||
#############
|
||||
|
||||
|
||||
#### UI ####
|
||||
|
||||
# Set columns
|
||||
react, star, amount = st.columns([73, 7, 20])
|
||||
|
||||
with react:
|
||||
option = st.selectbox(
|
||||
option_react = st.selectbox(
|
||||
label = '0',
|
||||
options = df['first column'],
|
||||
options = els,
|
||||
index = None,
|
||||
placeholder = 'Реакция',
|
||||
label_visibility = 'collapsed'
|
||||
label_visibility = 'collapsed',
|
||||
)
|
||||
|
||||
with star:
|
||||
st.button(':orange[:star:]')
|
||||
|
||||
with amount:
|
||||
option = st.selectbox(
|
||||
option_amount = st.selectbox(
|
||||
label = '0',
|
||||
options = [100],
|
||||
index = 0,
|
||||
placeholder = 'Объём',
|
||||
label_visibility = 'collapsed'
|
||||
)
|
||||
|
||||
|
||||
#### CALCULATE RECIPE ####
|
||||
|
||||
if option_react:
|
||||
parts = 0
|
||||
part = 0
|
||||
vol = option_amount
|
||||
|
||||
# Определяем 1 часть
|
||||
for i in db[option_react]:
|
||||
parts += i[2]
|
||||
part = vol // parts
|
||||
|
||||
# Название: количество (локальные части)
|
||||
parted = {}
|
||||
# Проверяем конфликты с сложными частями: 48 != 50
|
||||
lparts = 0 ; lpart = 0
|
||||
for i in db[option_react]:
|
||||
if i[0] == 1:
|
||||
# Перебираем составные
|
||||
for el in db[i[1]]:
|
||||
lparts += el[2]
|
||||
# 50//3 ~ 16 16 * 3 = 48
|
||||
lpart = (part//lparts) * lparts
|
||||
if lpart < part:
|
||||
part = lpart
|
||||
|
||||
parted[i[1]] = part//lparts
|
||||
# part = 48
|
||||
# parted["Инапровалин"] = 16
|
||||
|
||||
|
||||
comps = {}
|
||||
# Распределяем (пока не учитывает части и глубину)
|
||||
for i in db[option_react]:
|
||||
if i[0] == 0:
|
||||
comps[i[1]] = part
|
||||
elif i[0] == 1:
|
||||
# Перебираем составные
|
||||
for el in db[i[1]]:
|
||||
if el[1] not in comps:
|
||||
print("############")
|
||||
print(part)
|
||||
print(parted[i[1]])
|
||||
comps[el[1]] = parted[i[1]]
|
||||
else:
|
||||
comps[el[1]] += parted[i[1]]
|
||||
|
||||
comps
|
||||
|
Loading…
Reference in New Issue
Block a user